3、文件管理、管道、用户及组管理、用户及权限管理

文件管理
  1. cp - 复制文件和目录

    cp SRC DEST
    SRC是文件:
    	如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;
    	如果目录存在:
     	 	 	如果DEST是文件:将SRC中的内容覆盖至DEST中,此时建议为cp命令使用-i选项;
     	 	 	如果DEST是目录:在DEST下新建与原文件同名的文件, 并将SRC中内容填充至新文件中;
     	 	 	
    cp SRC... DEST
     	SRC...:多个文件
     	 	DEST必须存在,且为目录,其它情形均会出错;
     	 	
    cp SRC DEST
     	SRC是目录:
     	 	此时使用选项:-r
     	 	如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
     	 	如果DEST存在:
     	 	 	如果DEST是文件:报错
     	 	 	如果DEST是目录:
    常用选项:
     	-i:交互式
     	-r, -R: 递归复制目录及内部的所有内容;
     	-a: 归档,相当于-dR --preserv=all
     	 	-d:--no-dereference --preserv=links
     	 	--preserv[=ATTR_LIST]
     	 	 	mode: 权限
     	 	 	ownership: 属主属组
     	 	 	timestamp:
     	 	 	links
     	 	 	xattr
     	 	 	context
     	 	 	all
     	-p: --preserv=mode,ownership,timestamp
     	-v: --verbose
     	-f: --force
    
  2. mv - move (rename) files

    SYNOPSIS
           mv [OPTION]... [-T] SOURCE DEST
           mv [OPTION]... SOURCE... DIRECTORY
           mv [OPTION]... -t DIRECTORY SOURCE...
    常用选项:-i 交互式、-f 强制
    
  3. rm - remove files or directories

    rm [OPTION]... FILE...
     	常用选项:
     	 	-i: 交互式
     	 	-f: 强制删除
     	 	-r: 递归
    

bash 基础特性(2)

1、命令别名(alias)

通过alias命令实现:
	(1) alias 显示当前shell进程所有可用的命令别名;
 	(2) alias NAME='VALUE'
 		定义别名NAME,其相当于执行命令VALUE;
 	注意:在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中;
		仅对当前用户:~/.bashrc;
		对所有用户有效:/etc/bashrc
	Note: 编辑配置给出的新配置不会立即生效;
bash 进程重新读取配置文件:
	source /path/to/config_file
 	./path/to/config_file
撤消别名:unalias
 	 	 	unalias [-a] name [name ...]
 	 	Note: 如果别名同原命令的名称,则如果要执行原命令,可使用
"\COMMAND"

2、glob(globbing)bash 中用于实现文件名“通配”

通配符:*,	?, []
(1) * 任意长度的任意字符
[root@laptop-u5s7ejrh mnt]# ls
file1  file2  file3  file.txt  hgfs  summary
[root@laptop-u5s7ejrh mnt]# ls file*
file1  file2  file3  file.txt

(2) ? 任意单个字符
[root@laptop-u5s7ejrh mnt]# ls file?
file1  file2  file3

(3) [] 匹配指定范围内的任意单个字符
[root@laptop-u5s7ejrh mnt]# ls file[0-2]
file1  file2

(4) [^] 匹配指定范围外的任意单个字符
[root@laptop-u5s7ejrh mnt]# ls file[^0-2]
file3

专用字符集合:
	[:digit:]:任意数字,相当于0-9  ls /mnt/file[[:digit:]] -l
	[:lower:]:任意小写字母
	[:upper:]:任意大写字母
	[:alpha:]:任意大小写字母
	[:alnum:]:任意数字或字母
	[:space:][:punct:]:标点符号

练习:

(1)、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录;

ls -d /var/l*[0-9]*[[:lower:]]

(2)、显示 /etc 目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

ls /etc/[0-9]*[^0-9] -d

(3)、显示 /etc/ 目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;

 ls -d /etc/[^[:alpha:]][[:alpha:]]*

(4)、复制 /etc目录下,所有以m开头,以非数字结尾的文件或目录至 /mnt/lv1 目录中;

cp -r /etc/m*[^0-9] /mnt/lv1

(5)、复制/etc目录下,所有以.d结尾的文件或目录至 /mnt/lv1 目录中;

 cp -ar /etc/*.d /mnt/lv1

(6)、复制/etc目录下,所以有 .conf 结尾,且以m,n,r,p开头的文件或目录至/mnt/lv2目录中;

cp -ar /etc/[mnrp]*.conf /mnt/lv2 

3、bash 的快捷键

ctrl + lCtrl+l: 清屏,相当于clear命令;
Ctrl+a:跳转至命令开始处;
Ctrl+e:跳转至命令结尾处;
Ctrl+c:取消命令的执行;
Ctrl+u: 删除命令行首至光标所在处的所有内容;
Ctrl+k: 删除光标所在处至命令行尾部的所有内容;

4、bash 的 I/O 重定向及管道

FD,文件描述符,文件句柄进程使用文件描述符来管理打开的文件。
FD 是访问文件的标识,即链接文件。省去了冗长的绝对路径。
	0 键盘只读,标准输入
	1,2 是终端,标准输出
    3+ 是文件,可读可写
I/O 重定向:改变标准位置
	输出重定向:COMMAND > NEW_POS, COMMAND >> NEW_POS
		>:覆盖重定向,目标文件中的原有内容会被清除;
		>>: 追加重定向,新内容会追加至目标文件尾部;
			# set -C: 禁止将内容覆盖输出至已有文件中;
 				强制覆盖:>|
			# set +C:
		2>: 覆盖重定向错误输出数据流;
		2>>: 追加重定向错误输出数据流;
		标准输出和错误输出各自定向至不同位置:
			COMMAND > /path/to/file.out 2>/path/to/error.out
		合并标准输出和错误输出为同一个数据流进行重定向:&>&>>
		 	COMMAND > /path/to/file.out 2> &1
 			COMMAND >> /path/to/file.out 2>> &1
	输入重定向:<
		tr命令:转换或删除字符
 		tr [OPTION]... SET1 [SET2]
		HERE Documentation:<<
 	 	 	# cat << EOF
 	 	 	# cat > /path/to/somefile << EOF
管道:
	COMMAND1 | COMMAND2 | COMMAND3 |...
	Note:最后一个命令会在当前shell进程的子shell进程中执行;
	tee 三通管道,即交给另一个程序处理,自己另保存一份
例1:
[root@laptop-u5s7ejrh ~]# cat /etc/passwd | tail -1 | tee /mnt/file1 
wuhao:x:1001:1001::/home/wuhao:/bin/bash
[root@laptop-u5s7ejrh ~]# cat /mnt/file1 
wuhao:x:1001:1001::/home/wuhao:/bin/bash
例2:
[root@laptop-u5s7ejrh ~]# cat /etc/passwd | tee /mnt/file2 | tail -1
	注:在此条命令中,file2中保存的是 cat /etc/passwd 内容,然后交给 tail -1 这条命令,最后屏幕上只显示 cat /etc/passwd 中的最后一行内容

文本处理工具

1、 wc - print newline, word, and byte counts for each file

wc [OPTION]... [FILE]...
    -l: lines
    -w: words
    -c: characters

2、cut - remove sections from each line of files

cut [OPTION]... [FILE]...
    -d DELIMITER: 指明分隔符
    -f FILEDS:
        #: 第#个字段
        #,#[,#]:离散的多个字段,例如1,3,6
        #-#:连续的多个字段, 例如1-6
        混合使用:1-3,7
	--output-delimiter=STRING

3、sort - sort lines of text files

sort [OPTION]... [FILE]...
 	-f: 忽略字符大小写
 	-r: 逆序
 	-t DELIMITER: 字段分隔符
 	-k #:以指定字段为标准排序
 	-n: 以数值大小进行排序
 	-u: uniq,排序后去重

4、uniq - report or omit repeated lines

uniq [OPTION]... [INPUT [OUTPUT]]
    -c: 显示每行重复出现的次数;
    -d: 仅显示重复过的行;
    -u: 仅显示不曾重复的行;
注:连续且完全相同方为重复

用户和组管理

1、Linux 组的类别

​ 用户的基本组:组名同用户名,在创建用户时自动生成,仅包含一个用户,私有组

​ 用户的附加组:可以有多个

2、Linux 用户和组的相关的配置文件

(1)/etc/passwd 用户的基本信息文件

root:x:0:0:root:/root:/bin/bash 用户名:x:uid:gid:描述:home:shell
用户名:登录系统的名字
x:密码占位符,具体内容不在此
uid:0 特权用户,1~499 系统用户,1000+ 普通用户   它们表示用户的身份证号
gid:组号
home:登录系统所在目录
shell:命令解释器

(2)/etc/group 组及其属性信息

root:x:0:	组名,组密码,组id,组成员

(3)/etc/shadow 用户密码及其相关属性

root:$6$Mz6QcE5u$iPk4nN00HW/Y3yDnWGTytdk30SkaAKqEnewYm59K4vANZrKsE6NHzFkkPOMFUaLskavmtMvcqQ6A0ecCl3e770:18806:0:99999:7:::
用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限: 最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段

(4)/etc/gshadow 组密码及其相关属性

3、用户和组相关的管理命令

(1)useradd 用户创建

useradd [options] LOGIN
	-u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs
 	-g GID:指明用户所属基本组,可为组名,也可以GID;
 	-c "COMMENT":用户的注释信息;
 	-d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
 	-s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;
 	-G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在;
	-r:创建系统用户
		CentOS 6: ID<500
 		CentOS 7: ID<1000
默认值设定:/etc/default/useradd文件中
		useradd -D
 	 			-s SHELL

练习:创建用户 gentoo,附加组为distro和linux,默认shell为 /bin/csh,注释信息为"Gentoo Distribution"

[root@laptop-u5s7ejrh ~]# useradd gentoo -G distro,linux -s /bin/csh -c "Gentoo Distribution"

(2)groupadd 组的创建

groupadd [OPTION]... group_name
	-g GID: 指明GID号;[GID_MIN, GID_MAX]
 	-r: 创建系统组;
 		CentOS 6: ID<500
 	 	CentOS 7: ID<1000

(3)id 查看用户相关的ID信息

id [OPTION]... [USER]
	-u: UID
 	-g: GID
 	-G: Groups
 	-n: Name

(4)su 用户的切换或以其他用户身份执行命令

su [options...] [-] [user [args...]]
切换用户的方式:
	su UserName:非登录式切换,即不会读取目标用户的配置文件;
 	su -UserName:登录式切换,会读取目标用户的配置文件;完全切换;
注:root su至其他用户无须密码;非root用户切换时需要密码;
换个身份执行命令:
 	su [-] UserName -c 'COMMAND'
 		-l:“su -l UserName”相当于“su -UserName”

(5)usermod 用户属性修改

usermod [options] LOGIN
    -u UID:UID
    -g GID: 新基本组
    -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
 	-s SHELL:新的默认SHELL;
 	-c 'COMMENT':新的注释信息;
 	-d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
 	-l login_name: 新的名字;
 	-L: lock指定用户
 	-U: unlock指定用户
 	-e YYYY-MM-DD: 指明用户账号过期日期;
 	-f INACTIVE: 设定非活动期限;

(6)passwd 给用户添加密码

passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
passwd: 修改自己的密码;
常用选项:
    -l: 锁定指定用户
    -u: 解锁指定用户
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    -i inactivedays:非活动期限;
    --stdin:从标准输入接收用户密码;
   		echo "PASSWORD" | passwd
    --stdin USERNAME
    Note: /dev/null, bit buckets
   		 /dev/zero

(7)userdel 删除用户

userdel [OPTION]... login
	-r: 删除用户家目录;

(8)groupmod 组属性修改

groupmod [OPTION]... group
    -n group_name: 新名字
    -g GID: 新的GID

(9)groupdel 组删除

groupdel GROUP

(10)gpasswd 组密码

gpasswd [OPTION] GROUP
    -a user: 将user添加至指定组中;
    -d user: 删除用户user的以当前组为组名的附加组
    -A user1,user2,...: 设置有管理权限的用户列表
newgrp命令:临时切换基本组;
	如果用户本不属于此组,则需要组密码

(11)chage 修改用户属性

chage [OPTION]... LOGIN
    -d LAST_DAY
    -E, --expiredate EXPIRE_DATE
    -I, --inactive INACTIVE
    -m, --mindays MIN_DAYS
    -M, --maxdays MAX_DAYS
    -W, --warndays WARN_DAYS


用户及权限管理

1、文件的权限主要针对三类对象进行定义

​ owner:属主,u group:属组,g other:其它,o

2、每个文件针对没类访问者都定义了三种权限(括号中为对应的数字表示法):

​ r:读(4) w:写(2) x:执行(1)

3、chmod 修改文件权限

[root@laptop-u5s7ejrh mnt]# chmod 721 file1
[root@laptop-u5s7ejrh mnt]# ll file1
-rwx-w---x. 1 root root 41 Aug  3 02:59 file1
[root@laptop-u5s7ejrh mnt]# chmod u-w,g+r file1
[root@laptop-u5s7ejrh mnt]# ll file1
-r-xrw---x. 1 root root 41 Aug  3 02:59 file1

4、chown 修改文件的属主和属组

[root@laptop-u5s7ejrh home]# ll /mnt/file1
-r-xrw---x. 1 root root 41 Aug  3 02:59 /mnt/file1
[root@laptop-u5s7ejrh home]# chown wuhao.wh /mnt/file1
[root@laptop-u5s7ejrh home]# ll /mnt/file1
-r-xrw---x. 1 wuhao wh 41 Aug  3 02:59 /mnt/file1

5、chgrp 修改文件的属组

[root@laptop-u5s7ejrh home]# chgrp root /mnt/file1
[root@laptop-u5s7ejrh home]# ll /mnt/file1
-r-xrw---x. 1 wuhao root 41 Aug  3 02:59 /mnt/file1

6、umask 文件或目录创建时的遮罩码,表示要减去的权限

Note:创建的是文件,会自动减去它的执行权限,目录则不会
[root@laptop-u5s7ejrh mnt]# umask
0022
[root@laptop-u5s7ejrh ~]# ll /mnt/file1              // 777 - 022 - x = 644
-rw-r--r--. 1 root root 170 Aug  4 04:37 /mnt/file1
[root@laptop-u5s7ejrh ~]# ll -d /mnt                 // 777 - 022 = 754
drwxr-xr-x. 10 root root 181 Aug  4 05:07 /mnt        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值