第二周-博客

本文大纲

  • 文件系统层级结构标准

  • Linux上常见的文件类型

  • bash的基础特性

  • 用户、组和普通权限

  • 一些零散命令的使用


文件系统层级结构标准

FHS是Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录。 下边将详细介绍各目录的功用:

  • /bin:所有用户可用的基本命令程序文件;

  • /sbin:供系统管理使用的工具程序;

  • /boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;

  • /dev:存储特殊文件或设备文件,

    • 设备有两种类型:字符设备(线性设备)、块设备(随机设备);

  • /etc:系统程序的配置文件,只能为静态;

  • 普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;

  • 管理员的家目录;可选;

  • 为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块

    • libc.so.*:动态链接的C库;

    • ld*:运行时链接器/加载器;

    • modules:用于存储内核模块的目录;

  • /lib64:64位系统特有的存放64位共享库的路径;

  • /media:便携式设备挂载点,cdrom, floppy等;

  • /mnt:其它文件系统的临时挂载点;

  • /opt:附加应用程序的安装位置;可选路径;

  • /srv:当前主机为服务提供的数据;

  • /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

  • /usr:usr Hierarchy,这是一个是全局共享的只读数据路径;

    • bin, sbin

    • lib, lib64

    • include:C程序头文件;

    • share:命令手册页和自带文档等架构特有的文件的存储位置

    • local:另一个层级目录;

    • X11R6:X-Window程序的安装位置

    • src:程序源码文件的存储位置

  • /usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;

  • /var:/var Hierarchy,存储常发生变化的数据的目录;

    • cache Application cache data

    • lib Variable state information

    • local Variable data for /usr/local

    • lock Lock files

    • log Log files and directories

    • opt Variable data for /opt

    • run Data relevant to running processes

    • spool Application spool data

    • tmp Temporary files preserved between system reboots

  • /proc:基于内存的虚拟文件系统(伪文件系统),用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward;

  • /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;


Linux上常见的文件类型

  • -:常规文件;即f;

  • d: directory,目录文件;

  • b: block device,块设备文件,支持以“block”为单位进行随机访问

  • c:character device,字符设备文件,支持以“character”为单位进行线性访问

    • 8位二进制:0-255

    • major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序

    • minor number:次设备号,用于标识同一类型中的不同的设备;

  • l:symbolic link,符号链接文件;

  • p: pipe,命名管道;

  • s: socket,套接字文件;


bash的基础特性

bash特性:命令历史、别名、命令补全、路径补全、命令行展开、命令的执行状态结果、引用、快捷键、变量、globing文件名通配、IO重定向、管道、命令hash、多命令执行,最后介绍bash的配置文件

命令别名
  • 命令可以有别名,别名可与原名相同,此时原名被隐藏,若想运行原命令,则使用\COMMAND:

  • 获取所有可用命令别名:
       - alias
  • 定义别名:
      - alias NAME='COMMAND'  - 注意:仅对当前shell进程有效
  • 撤销别名:
      - unalias NAME
命令历史
  • shell进程会在会话中保存此前用户提交执行过的命令

    • 环境变量:HISTCONTROL

    • ignoredups:忽略重复的命令

    • ignorespace:忽略以空白字符开头的命令

    • ignoreboth:以上两者同时生效

    • 快捷键:ESC,.

    • 字符组合:!$

    • !#:再次执行历史列表中第#条命令

    • !!:再次执行上一条命令

    • !STRING:再次执行列表中最近一个以STRING开头的命令

    • 注意:命令的重复执行有时候需要依赖于幂等性

    • HISTSIZE:shell进程可保留的命令历史条数

    • HISTFILE:保存命令历史的文件,默认为.bash_history

    • HISTFILESIZE:保存命令历史的文件大小

    • -c:清空命令历史

    • -d offset:删除指定位置的命令历史

    • -r:从文件中(用户家目录下的.bash_history)读取历史至历史列表中

    • -w:将历史列表中的命令历史追加至文件.bash_history中

    • history #:显示最近的#号条命令

    • history命令:

    • 定制history的功能,可以通过环境变量实现:

    • 调用命令历史列表中的命令:

    • 调用上一条命令的最后一个参数:

    • 控制命令历史的记录方式:

命令补全
  • shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当做命令。

    • 根据PATH变量中设定的路径,自左而右逐个搜索目录路径下的文件名。

    • 给定的打头字串如果能唯一标识某命令程序文件,敲一下tab键则直接补全。

    • 给定的打头字串如果不能唯一标识某命令程序文件,敲两下tab键会给出可选列表。

    • 命令查找机制:

路径补全
  • 在给定的起始路径下,以给定路径下的打头字串来逐一匹配对应路径下的每个文件,若能唯一标识,按一下tab键直接补全,否则,按两下tab键给出可选列表。

命令行展开
  • 参数非常多时,可用命令行展开大量缩减输入量

    • 例:/tmp/{a,b} 即为 /tmp/a 和 /tmp/b

    • ~:自动展开为用户的家目录,或展开为指定用户的家目录

    • {}:可承载以逗号分隔的路径列表,并能够展开为多个路径

命令的执行状态结果
  • bash通过状态返回值来输出此结果

    • 0:成功

    • 1-255:失败

  • 命令执行完成后,其状态返回值被保存在bash特殊变量$?中

引用
  • 弱引用:""

  • 强引用:''

  • 命令引用 :`COMMAND`或者$(COMMAND)

快捷键
  • 跳转至命令行行首:ctrl+a

  • 跳转至命令行行尾:ctrl+e

  • 删除光标至行首的所有字符:ctrl+u

  • 删除光标至行尾的所有字符:ctrl+k

  • 清屏:ctrl+l,相当于命令clear

变量
  • 命名的内存空间

    • 本地变量:作用域为当前shell进程

    • 环境变量:作用域为当前shell进程及其子进程

    • 局部变量:作用域为某函数片段(函数上下文)

    • 位置参数变量:为执行脚本的shell进程提供参数

    • 特殊变量:shell内置的有特殊功用的变量

    • 赋值:name=value

    • 查看:set

    • 撤销:unset name

    • 赋值:export name=value,declare -x name=value

    • 查看:export、declare -x,printenv,env

    • 撤销:unset name

    • $?:保存有命令执行状态返回码

    • $#:参数个数

    • $*:一次取出所有参数列表

    • $@:依次取出所有参数列表

    • 变量赋值:name=value

    • 变量类型:bash把所有变量统统视作字符型,bash中的变量无需事先声明,相当于把声明和赋值的过程同时实现。

    • 变量替换:将变量所出现的位置替换为其所指向内存空间中的数据

    • 变量引用:${var_name},$var_name

    • 变量名:变量名只能包含字母、数字、下划线,而且不能以数字开头,应见名知义

globing文件名通配
  • 整体文件名通配,而非部分

    • *:匹配任意长度的任意字符

    • ?:匹配任意单个字符

    • []:匹配指定范围内的任意单个字符,如[0-9]、[A-Z]…

    • 几种特殊格式:

    • [[:upper:]]:所有大写字符

    • [[:lower:]]:所有小写字母

    • [[:alpha:]]:所有字母

    • [[:digit:]]:所有数字

    • [[:alnum:]]:所有字母和数字

    • [[: space:]]:所有空白字符

    • [[:punct:]]:所有标点符号

    • [^]:匹配指定范围外的任意单个字符

    • [^[:upper:]]

    • [^0-9]

    • 匹配模式:元字符

IO重定向
  • 可用于输入的设备、文件:

    • 键盘、网卡、文件系统上的常规文件

  • 可用于输出的设备、文件:

    • 显示器、网卡、文件系统上的常规文件

  • 程序的数据流有三种:

    • 输入的数据流 <– 标准输入(stdin),键盘

    • 输出的数据流 –> 标准输出(stdout),显示器

    • 错误输出流 –> 错误输出(stderr),显示器

  • fd:file description文件描述符

    • 标准输入:0

    • 标准输出:1

    • 错误输出:2

  • 输出重定向:

    • >:覆盖输出

    • >>:追加输出

    • 2>:错误覆盖输出

    • 2>>:错误追加输出

    • &>:合并正常输出流和错误输出流,覆盖

    • &>>:合并正常输出流和错误输出流,追加

    • set -C:禁止覆盖输出重定向至已存在的文件,此时可用>|强制覆盖输出。

    • set +C:关闭上述特性

  • 输入重定向:

    • <:标准输入

    • <<:here document

    • cat << EOF

    • cat > /PATH/TO/SOMEFILE << EOF

管道
  • 连接程序,实现将前一个的命令输出直接定向给后一个命令当做输入数据流

    • COMMAND1 | COMMAND2

命令hash
  • 缓存此前命令的查找结果,key-value

    • hash:列出

    • hash -d COMMAND:删除

    • hash -r:清空

    • hash命令:

多命令执行
~]# COMMAND1;COMMAND2;COMMAND3;...
  • 逻辑执行:

    • 与:&&

    • 或:||

    • 非:!

配置文件
  • bashrc类:为非交互式登录的shell进程提供配置

    • 用于定义本地变量,定义命令别名

    • 注意:全局类配置仅管理员可以修改

    • ~/.bashrc

    • /etc/bashrc

    • 全局:

    • 用户个人:

    • 功能:

  • profile类:为交互式登录的shell进程提供配置

    • 用于定义环境变量,运行命令或脚本

    • /etc/profile

    • /etc/profile.d/*.sh 用户个人:仅对当前用户生效

    • ~/.bash_profile

    • 全局:对所有用户都生效

    • 功能:

  • 交互式登录:

    • su – USERNAME

    • su -l USERNAME

    • 直接通过某终端输入账号密码登录打开的shell进程

    • 读取配置顺序:/etc/profile -> /etc/profile.d/*.sh -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc

  • 非交互式登录:

    • su USERNAME

    • 图形界面下打开的终端

    • 运行脚本

    • 登录方式

    • 读取配置顺序:~/.bashrc -> /etc/bashrc -> /etc/profile.d/*.sh

  • 让配置文件定义的特性立即生效:

    • (1)、通过命令行重新定义一次

    • (2)、source /PATH/TO/CONF_FILE 或 . /PATH/TO/CONF_FILE


用户、组和普通权限

  • Linux 是一个多用户、多任务的操作系统,因此有必要对用户及组进行分类管理。

一、概念部分:
1、用户
  • 分类:

    • 管理员

    • 普通用户

    • 系统用户

    • 登录用户

  • 标识:User ID,UID

    • 16bits二进制数据:0-65535

    • 管理员:0

    • 普通用户:1-65535

    • 系统用户:1-499(CentOS6),1-999(CentOS7)

    • 登录用户:500-6万(CentOS6),1000-6万(CentOS7)

  • 名称解析:username <–> UID

    • 根据名称解析库进行:/etc/passwd

2、组
  • 分类1:

    • 系统组

    • 登录组

    • 管理员组

    • 普通用户组

  • 标识:Group ID,GID

    • 16bits二进制数据:0-65535

    • 管理员组:0

    • 普通用户组:1-65535

    • 系统组:1-499(CentOS6),1-999(CentOS7)

    • 登录组:500-6万(CentOS6),1000-6万(CentOS7)

  • 名称解析:groupname <–> GID

    • 根据名称解析库进行:/etc/group

  • 分类2:

    • 用户的基本组

    • 用户的附加组

  • 分类3:

    • 私有组:组名同用户名,且只包含一个用户

    • 公有组:组内包含多个用户

3、认证信息
  • 通过登录时提供的信息与事先存储的信息比对,看是否一致。

    • /etc/shadow

    • /etc/gshadow

    • password:文件中的密码通过md5算法进行加密存放

  • 密码使用策略:

    • (1)、使用随机密码

    • (2)、最短长度不低于8位

    • (3)、使用大写字母、小写字母、数字、标点符号中的至少三类组成

    • (4)、定期更换密码

4、加密算法
  • 对称加密:加密和解密使用同一个密码

  • 非对称加密:加密解密使用一对密钥(公钥私钥)

  • 单项加密:只能加密,不能解密,用于提取数据特征码

    • 雪崩效应

    • 定长输出

  • 单项加密算法有:

    • 以上算法均可在计算时可添加salt,表添加随机数进行混淆

    • md5:message digest,128bits

    • sha:secure hash algorithm,160bits

    • sha224

    • sha256

    • sha384

    • sha512

5、/etc/passwd:用户的信息库
  • name:password:UID:GID:GECOS:directory: shell
  • name:用户名

  • password:可以是加密的密码,也可以是占位符x,一般都将加密后的密码放至shadow文件中

  • UID:用户ID

  • GID:用户的基本组ID

  • GECOS:annotation(注释信息)

  • directory:用户家目录

  • shell:用户默认shell,即登录时的默认shell

6、/etc/shadow:用户密码
  • 用户名:加密的密码:最近修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
7、/etc/group:组的信息库
  • group_name:password:GID:user_list
  • user_list:该组的成员用户,以此组为附加组的用户列表

8、安全上下文
  • 进程以发起者的身份运行,进程对文件的访问权限,取决于发起此进程用户的权限。进程属主与目标文件匹配权限的顺序是user、group、others。

9、系统用户
  • 由于管理员权限太大,如果所有服务都由管理员身份运行,势必会给系统安全带来隐患。因此为了能够让后台进程和服务类进程以非管理员身份运行,通常为此创建多个普通用户,这类用户从不登录系统。

10、ugo权限
  • 权限对于文件的意义:

    • r:可获取文件的数据

    • w:可修改文件的数据

    • x:可将次文件运行为进程

  • 权限对于目录的意义:

    • r:可使用ls命令获取其下的所有文件列表

    • w:可修改此目录下的文件列表,即创建和删除文件

    • x:可cd至此目录中,且可使用ls -l获取所有文件详细属性信息

  • 权限组合机制

字母权限 二进制表示 八进制表示
000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
11、umask

文件权限反向掩码,遮罩码

  • 文件:默认不应该有执行权限,如果减得的结果中含有执行权限,则需将其加1。

    • 666-umask

  • 目录:

    • 777-umask

  • 临时修改umask值:#表示数字,比如###表3个数字

    • umask ###

  • 单条命令临时修改umask值:

    • (umask ### mkdir /PATH/TO/SOME_DIR)

  • 永久修改umask值:

    • 家目录下的.profile或.bash_profile

12、特殊权限
  • SUID:用户运行某程序时,如果此程序拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件自己的属主。

    • chmod u+|-s FILE

    • 展示位置:文件属主的执行权限位

    • 若属主原本有执行权限,则为小写s,否则显示为大写S

  • SGID:当目录属组拥有写权限,并拥有SGID时,那么所有属于此目录的属组,且以属组身份在此目录中新建文件或目录时,新文件的属组不是用户的基本组,而是此目录的属组

    • chmod g+|-s FILE

    • 展示位置:文件属组的执行权限位

    • 若属组原本有执行权限,则为小写s,否则显示为大写S

  • Sticky:对于属组或全局可写的目录,组内的所有用户或系统上的所有用户在此目录中都能创建新文件或删除文件;为此类目录添加sticky权限,所有用户都可创建新文件,并只能删除自己的文件。

    • chmod o+|-t FILE

    • 展示位置:其他用户的执行权限位

    • 若其他用户原本有执行权限,则为小写t,否则显示为大写T

    • 系统上的/tmp和/var/tmp目录默认均有Sticky权限

特殊权限 八进制表示 简要说明
000 0 无特殊权限
001 1 有sticky权限
010 2 有SGID权限
011 3 SGID及sticky
100 4 有SUID权限
101 5 SUID及sticky
110 6 SUID及SGID
111 7 SUID、SGID及sticky
  • 数值权限赋值时:最高位为特殊权限标记

    • chmod 1777 FILE

13、facl:file access control list
  • 文件的额外赋值机制:

  • 在基本的ugo权限之外,另一种用于控制指定用户或组对文件拥有权限的机制

  • getfacl:查看指定文件的facl
  • setfacl:
      赋权给用户:
          setfacl -m u:USERNAME:MODE FILE
      赋权给组:
          setfacl -m g:GROUPNAME:MODE FILE 
      撤销赋权:
          setfacl -x u:USERNAME FILE
          setfacl -x g:GROUPNAME FILE
二、命令部分
1、组相关命令

groupadd:添加组 -g:指定GID -r:创建系统组 groupmod:修改组属性 -g:修改GID -n NEW_NAME:修改组名 groupdel:删除组

2、用户相关命令
  • useradd:创建用户
      -u,--uid:指定UID  -g,--gid:指定用户的基本组,此组需事先存在  -G,--groups:指定用户的附加组,多个组之间用逗号隔开  -c,--comment:指定用户的注释信息  -d,--home:指定用户家目录位置,原理是通过复制/etc/skel目录并重命名实现,指定的家目录路径若实现存在,则不会为用户复制环境配置文件  -s,--shell:指定用户默认shell,可用shell列表为/etc/shells文件  -r,--system:创建系统用户  
      useradd -D:显示创建用户的默认配置
          注意:创建用户时的诸多默认设定由文件/etc/login.defs配置,主要设定用户账号限制
      useradd -D 选项:修改默认选项的值
          修改的结果保存在/etc/default/useradd文件中
  • usermod:修改用户属性
      -u,--uid:修改UID  -g,--gid:修改用户的基本组,此组需事先存在  -G,--groups:修改用户的附加组,原来的组会被覆盖  -a,--append:与-G一同使用,表示追加新的附加组  -c,--comment:修改用户的注释信息  -d,--home:修改用户家目录位置,原有的文件不会被转移至新位置  -m,--move-home:只能与-d一同使用,将原来的目录移动为新的家目录  -l,--login NEW_LOGIN:修改用户名  -s,--shell:修改用户默认shell  -L,--lock:锁定用户密码,即在原来密码字符串前添加一个"!"  -U,--unlock:解锁用户密码
  • userdel:删除用户
      -r:删除用户时一并删除用户的家目录
  • id:显示用户的信息
      -u:仅显示UID  -g:仅显示GID  -G:显示用户所有组的ID  -n:仅显示用户名
  • su:switch user切换用户
      登录式切换:读取目标用户的配置文件重新初始化      su - USERNAME      su -l USERNAME
      非登录式切换:不会读取目标用户的配置文件初始化      su USERNAME
      特殊用法:      su -c "COMMAND" USERNAME:以指定用户的身份运行此处指定的命令
          例:~]# su -c "ls /var/tmp/" gentoo
      	    此处的命令不是用命令替换
3、密码相关的命令
  • passwd:修改用户密码
      -l,-u:锁定和解锁用户  -d:清除用户密码串  -e DATE:过期期限,日期  -i DAYS:非活动期限  -n DAYS:最短使用期限  -x DAYS:最长使用期限  -w DAYS:警告期限  --stdin:从标准输入获取并修改密码      例:echo "PASSWORD" | passwd --stdin USERNAME
  • gpasswd:修改组密码
      -a USERNAME:向组中添加用户  -d USERNAME:从组中移除用户  注意:当使用newgrp - GROUP临时切换用户的基本组时,会用到密码,newgrp命令中的"-"会模拟用户重新登录以实现重新初始化其工作环境。
  • chage:修改用户的密码过期信息
4、几个零散命令
  • chsh:修改用户默认shell
  • chfn:修改用户注释信息
  • finger:显示用户注释信息
  • whoami:显示当前用户身份
  • pwck:检测/etc/passwd和/etc/shadow文件的完整性
  • grpck:检测/etc/group和/etc/gshadow文件的完整性
5、权限管理命令
  • chmod:修改权限
      使用示例
      (1)、chmod [ugo] +|-|= [rwx] FILE
      (2)、chmod 0644 FILE
      (3)、chmod --reference=/PATH/TO/SOME_FILE FILE
      选项:
      -R:递归修改
6、从属关系管理命令
  • chown:修改文件属主
      -R:递归修改  chown USERNAME:GROUPNAME FILE:同时修改属主和属组
  • chgrp:修改文件属组

一些零散命令的使用

  • 命令类型:type

    • 外部命令

    • shell内嵌命令

  • type COMMAND:
      内部:builtin
      外部:显示为命令文件路径;
    注意:命令可以有别名;别名可以与原名相同,此时type查看时原名被隐藏;此时如果要运行原命令,则使用\COMMAND;
  • 命令别名:alias

  • 获取所有可用别名的定义:
      ~]# alias
  • 定义别名:
      ~]# alias NAME='COMMAND'
        注意:仅对当前shell进程有效
  • 撤销别名:
      ~]# unalias NAME
  • which命令: which – shows the full path of (shell) commands

    which [options] programname [...]
          --skip-alias:
  • whereis命令: whereis – locate the binary, source, and manual page files for a command

    whereis [options] name...
          -b: 仅搜索二进制程序路径;	-m:仅搜索使用手册文件路径;
  • who命令: who – show who is logged on

    who [OPTION]...
          -b: 系统此次启动的时间;      -r: 运行级别;
  • w命令: w – Show who is logged on and what they are doing.

  • mkdir:make directories

    mkdir [OPTION]... DIRECTORY...
    	-p: 自动按需创建父目录;	-v: verbose,显示详细过程;	-m MODE:直接给定权限;
    	注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;
  • rmdir:remove empty directories

    rmdir [OPTION]... DIRECTORY...
        -p:删除某目录后,如果其父目录为空,则一并删除之;    -v: 显示过程;
  • tree命令:

    tree [options] [directory]
        -L level:指定要显示的层级;
  • more命令:

    more FILE
        特点:翻屏至文件尾部后自动退出;
  • less命令:

    less FILE
  • head命令:

    查看文件的前n行;
      head [options] FILE
          -n #      -#
  • tail命令:

    查看文件的后n行;
      tail [options] FILE
          -n #      -#
          -f:查看文件尾部内容结束后不退出,跟随显示新增的行;
  • stat命令: stat – display file or file system status

    stat FILE...
    
      文件:两类数据
          元数据:metadata
          数据: data
    
      时间戳:
          access time:2016-12-10 16:12:22.776423693 +0800
          modify time:2016-12-10 16:12:22.776423693 +0800
          change time:2016-12-10 16:12:22.776423693 +0800
  • touch命令: touch – change file timestamps

    touch [OPTION]... FILE...
          -c: 指定的文件路径不存在时不予创建;      -a: 仅修改access time;      -m:仅修改modify time;      -t STAMP          [[CC]YY]MMDDhhmm[.ss]
  • cp命令:copy

    源文件;目标文件;

  • 单源复制:cp [OPTION]... [-T] SOURCE DEST
  • 多源复制:cp [OPTION]... SOURCE... DIRECTORY
             cp [OPTION]... -t DIRECTORY SOURCE...
  • 单源复制:cp [OPTION]... [-T] SOURCE DEST
          如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
          如果DEST存在:
              如果DEST是非目录文件:则覆盖目标文件;
              如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
  • 多源复制:cp [OPTION]... SOURCE... DIRECTORY
         	 cp [OPTION]... -t DIRECTORY SOURCE...
    
      如果DEST不存在:错误;
      如果DEST存在:
          如果DEST是非目录文件:错误;
          如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;
  • 常用选项:
      -i:交互式复制,即覆盖之前提醒用户确认;  -f:强制覆盖目标文件;  -r, -R:递归复制目录;  -d:复制符号链接文件本身,而非其指向的源文件;  -a:-dR --preserve=all, archive,用于实现归档;  --preserv=      preserv:单词意为保持
          mode:权限
          ownership:属主和属组
          timestamps: 时间戳
          context:安全标签
          xattr:扩展属性
          links:符号链接
      all:上述所有属性
  • mv命令:move

  • mv [OPTION]... [-T] SOURCE DEST
  • mv [OPTION]... SOURCE... DIRECTORY
  • mv [OPTION]... -t DIRECTORY SOURCE..
  • 常用选项:
      -i:交互式;  -f:force
  • rm命令:remove rm [OPTION]… FILE…

  • 常用选项:
      -i:interactive  -f:force  -r: recursive  
      删除目录:rm -rf /PATH/TO/DIR
      危险操作:rm -rf /*
      
      注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)
  • install命令: install – copy files and set attributes

  • 单源复制:  install [OPTION]... [-T] SOURCE DEST
  • 多源复制:  install [OPTION]... SOURCE... DIRECTORY
      install [OPTION]... -t DIRECTORY SOURCE...
  • 创建目录:  install [OPTION]... -d DIRECTORY...
  • 常用选项:
      -m, --mode=MODE:设定目标文件权限,默认为755;  -o, --owner=OWNER:设定目标文件属主;  -g, --group=GROUP:设定目标文件属组;
  • mktemp命令: mktemp – create a temporary file or directory

    mktemp [OPTION]... [TEMPLATE]
    
      常用选项:
          -d:创建临时目录
    
    注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来;

原创文章,作者:N25_水煮鱼,如若转载,请注明出处:http://www.178linux.com/62931

(0)
N25_水煮鱼N25_水煮鱼
上一篇 2016-12-07
下一篇 2016-12-07

相关推荐

  • 软件包管理

    软件包管理 软件运行和编译 ABI:应用程序二进制接口;直接给编译好的二进制使用; windows与linux不兼容, windows: ELF linux: PE 库级别的虚拟化: linux:WINE windows:Cywin API:定义了和库之间的接口;编写应用程序时调用的函数之类的; 编译程序源代码(.c) –> 预编译(.i)…

    Linux干货 2017-04-21
  • ansible部署KeepAlived动态站点

    一、设计原因 利用ansible可以自动化部署KeepAlived 的双方模型(其中包括两个动态的站点),多组服务器需要一样的部署时 可以利用ansible写的程序来代替重复性的操作。 二、设计拓扑结构及服务器详情   三、详细步骤 1、环境的搭建 (1)安装ansible,同时配置私钥免密码进行通信 [root@localhost ~]# ssh…

    2015-05-13
  • Linux计算机基础及Linux入门

    计算机,Linux发型版,Linux 哲学思想,基本命令,startx ,pwd tty ,shutdown ,ifconfig , echo, export, historybo, poweroff,reboot, date, hwclock, Linux 获取命令帮助信息,Linux发行版的基础目录,

    2017-09-18
  • 八大排序算法

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。     当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。    快速…

    Linux干货 2015-04-07
  • 网络知识及写脚本,一个又一个

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 集线器是属于物理层的设备,可以理解为一根网线中间串接出了多个接口,这么多接口共享这一根网线的带宽, 因此这些接口上的设备在使得网络时就会出现冲突,或者‘道路’挤占的情况。(所有的设备在一个广播域,冲突域中),集线器现在很少使用了。 交换机、网桥都是数据链路层的设备,网桥的出现就是…

    2017-02-10
  • Openssl搭建私有CA认证

    概述 CA英文全称Certification Authority,即数字证书认机构。从广义上来说,CA是负责发放和管理数字证书的权威机构,并作为用户数字认证中受信任的第三方,承担公钥体系(PKI)中公钥的合法性检验的责任,在互联网上,实现用户与用户、用户与企业之间的数字身份认证。 本文通过使用openssl进行搭建私有CA认证体系,从而简单地了解CA的认证过…

    Linux干货 2016-09-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 15:49

    赞~~总结的非常详细~~继续加油~