1、定义一个对所有用户都生效的命令别名

[root@hu ~]# vim ~/.bashrc			==>打开.bashrc文件夹
alias ud='useradd'					==>添加别名

2、显示/etc/passwd中不以/bin/bash结束的行

[root@hu ~]# grep -v "/bin/bash\b" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:996:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
libstoragemgmt:x:992:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:991:988::/var/lib/chrony:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
setroubleshoot:x:990:987::/var/lib/setroubleshoot:/sbin/nologin
sssd:x:989:986:User for sssd:/:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin

3、找出/etc/passwd文件中,包含二位或三位数字的行

[root@hu ~]# grep "\<[0-9]\{2,3\}\>" /etc/passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:996:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
libstoragemgmt:x:992:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:991:988::/var/lib/chrony:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
setroubleshoot:x:990:987::/var/lib/setroubleshoot:/sbin/nologin
sssd:x:989:986:User for sssd:/:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin

4、显示/proc/meminfo文件中以大写或小写s开头的行;用三种方式实现

第一种
[root@hu ~]# grep "^[s,S]" /proc/meminfo
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              7344 kB
Slab:             102424 kB
SReclaimable:      52644 kB
SUnreclaim:        49780 kB

第二种
[root@hu ~]# grep "\<[s,S]" /proc/meminfo
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              7344 kB
Slab:             102432 kB
SReclaimable:      52644 kB
SUnreclaim:        49788 kB

第三种
[root@hu ~]# grep "\b[s,S]" /proc/meminfo
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              7344 kB
Slab:             102480 kB
SReclaimable:      52644 kB
SUnreclaim:        49836 kB

5、使用echo输出一个绝对路径,使用egrep取出路径名,类似于执行dirname /etc/passwd的结果

[root@hu ~]# echo "/recover/cptest/testcp" | grep -Eo "^/(.*)/"
/recover/cptest/

6、找出ifconfig中的ip地址,要求结果只显示ip地址

[root@hu ~]# ifconfig  | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'
192.168.1.104
255.255.255.0
192.168.1.255
127.0.0.1
255.0.0.0
192.168.122.1
255.255.255.0
192.168.122.255

7、vim定制自动缩进四个字符

在末行模式下输入 set ai——即首先保证此行再输入命令前缩进了4个字符,当设置了自动缩进后,敲Enter时
就会按照此行缩进字符自动缩进

8、编写脚本,实现自动添加三个用户,并计算这三个用户的UID之和

useradd ur1 && useradd ur2 && useradd ur3

a=$(id -u ur1 | grep -o "^[0-9]\{1,4\}")

b=$(id -u ur2 | grep -o "^[0-9]\{1,4\}")

c=$(id -u ur3 | grep -o "^[0-9]\{1,4\}")

echo ${sum=$[$a+$b+$c]}

执行结果:

[root@hu recover]# bash test.sh
15024

9、find用法以及常用用法的实例演示
find命令:- search for files in a directory hierarchy

find命令用于在文件系统上查找符合条件的文件而不是文件类容

1、工作特性
	实时查找工具,通过遍历指定起始路径下文件系统层级结构
	完成文件查找
	查找速度略慢
	精确查找
2、使用格式
	find [option]…[path][查找条件][处理动作]
	例:
		[root@hu ~]# find		——>若没加任何条件指查找当前路径下的所有文件路径
		.
		./Music
		./.bash_profile
		./.bash_logout
	path——查找条件:指定具体搜索目标的起始路径,默认为当前目录
	查找条件:指定查找条件——可以是文件名、大小、类型、从属关系、权限等——默认为找出指定路径下的所有文件
	处理动作:对符合查找条件的文件作出的操作——删除等——默认为输出至标准输出
3、查找条件
	表达式组成:表达式由选项(影响整体操作而不是特定文件的处理,并始终返回true),测试(返回true或false值)和操作(具有副作用并返回a)组成。
	A、据文件名查找文件
		-name “patern”:区分文件名大小写
		例:
			[root@hu recover]# find ./ -name "Test.sh"
			[root@hu recover]# find ./ -name "test.sh"
			./test.sh
		-iname “pattern”:不区分文件名大小写
		例:
			[root@hu recover]# find ./ -iname "Test.sh"
			./test.sh
		-regex pattern:基于正则表达式查找文件,匹配范围是整个路径,而非其名字,且不忽略大小写
		-iregex pattern:基于正则表达式查找文件,匹配范围是整个路径,而非其名字,忽略大小写
		find . -regex ".*\(\.txt\|\.pdf\)$"
		find . -iregex ".*\(\.txt\|\.pdf\)$"
		例:
			[root@hu recover]# find / -regex ".*\(\.txt\)$"	==>查找根目录下以.txt结尾的文件路径
			/root/.cache/tracker/db-locale.txt
			/root/.cache/tracker/first-index.txt
	B、根据文件从属关系查找
		-user username——>即查找属主指定用户的所有文件
		例:
			[root@hu recover]# find /home -user hu
			/home/hu
			/home/hu/Music
		-group Groupname——>即查找属组为指定组的所有文件
		-uid——>UID查找指定UID的属主的所有文件
		-gid——>GID查找指定GID的属组的所有文件
		-nouser——>查找没有属主的文件
		-nogroup——>查找没有属组的文件
	C、局文件类型查找
		-type f——>查找普通文件
		例:
			[root@hu recover]# find /home -type f -ls
			791770    4 -rw-r--r--   1 ur1      ur1           193 Nov 20  2015 /home/ur1/.bash_profile
		-type d——>查找目录文件
		-type l——>符号链接文件
		-type b——>块设备文件
		-type c——>字符设备文件
		-type p——>管道文件
		-type s——>套接字文件
4、组合测试
	A、与==> -a——>默认与组合逻辑,必须同时满足两个条件
	例:
		[root@hu recover]# find /tmp -nouser -type f
		[root@hu recover]# find /tmp -nouser -a -type f
	B、或==> -o——>或组合逻辑满足其中条件之一即可
	例:
		[root@hu recover]# find /tmp -nouser -o -type f
		/tmp/mytest.TyTf
		/tmp/.X0-lock
	C、非==> -not 或!——>非组合逻辑与此条件相反的条件
	例:
		[root@hu recover]# find . -not -nouser
		.
		./cptest
		./cptest/testcp
5、根据文件大小查找
	A、使用格式:find /path -size [+|-]#unit——#表示数值,unit为单位
	常用单位有:K、M、G
		a、当无 [+|-]号时;#unit表示范围为(#-1,#]<==>#-1<#≤#
		b、当有 [+|-]号时;
			- #unit表示范围为[0,#-1]<==>0≤#≤#-1
			+ #unit表示范围为(#,∞)<==>#<#≤∞
		例:
			[root@hu recover]# find . -size -10
			.
			./cptest
			./cptest/testcp
			./cptest/cp.txt
			./cptest/test.txt
			./test.patch
			./test1.sh
			./tt
			./test.sh
			./io
			./io/test1.txt
			./io/test.txt
			./cp.txt
			[root@hu recover]# find . -size 10
			[root@hu recover]# find . -size +10
			./.cp.txt.swp
			./.text.txt.swp
6、据时间戳查找
	A、以“天”为单位查找
		-atime [+|-]#
		-mtime [+|-]#
		-ctime [+|-]#
		#:[#,#-1)——#≤#<#-1
		+#:(#,0]——#<#≤0
		-#:(∞,#)——∞<#<#
		例:
			[root@hu recover]# find . -atime -7
			.
			./cptest
			./cptest/testcp
	B、以“分钟”为单位
		-amin [+|-]#
		-mmin [+|-]#
		-cmin [+|-]#
		[+|-]#同上
7、据权限查找
	-perm [/ | -]mode
	A、mode —精确查找
	例:
		[root@hu recover]# find . -perm 755 -ls
		261629    4 drwxr-xr-x   5 root     root         4096 Dec  1 04:53 .
		264277    4 drwxr-xr-x   2 root     root         4096 Nov 29 08:46 ./cptest
		261660    4 -rwxr-xr-x   1 root     root          205 Nov 30 09:18 ./test1.sh
		261653    4 drwxr-xr-x   2 root     root         4096 Dec  1 01:14 ./tt
	B、/mode —任何一类用户(u、g、o)的权限中的任何一位(r、w、x)符合权限既满足条件(权限之间为或关系)
	例:
		[root@hu recover]# find . -perm /755 -ls
		261629    4 drwxr-xr-x   5 root     root         4096 Dec  1 04:53 .
		264277    4 drwxr-xr-x   2 root     root         4096 Nov 29 08:46 ./cptest
		264280    0 -rw-r--r--   1 root     root            0 Nov 24 10:01 ./cptest/testcp
		261649    0 -rw-r--r--   1 root     root            0 Nov 29 08:46 ./cptest/cp.txt
		261652    4 -rw-r--r--   1 root     root           39 Nov 29 08:46 ./cptest/test.txt
		261633    4 -rw-r--r--   1 root     root           24 Nov 30 09:19 ./test.patch
		261630   12 -rw-r--r--   1 root     root        12288 Dec  1 05:12 ./.cp.txt.swp
		261660    4 -rwxr-xr-x   1 root     root          205 Nov 30 09:18 ./test1.sh
		261653    4 drwxr-xr-x   2 root     root         4096 Dec  1 01:14 ./tt
		261393    4 -rwxrwxr-x   1 root     root          192 Nov 30 09:42 ./test.sh
		261126    4 drwxr-xr--   2 root     root         4096 Nov 28 05:07 ./io
	C、-mode—每一类用户(u、g、o)的权限中的每一位(r、w、x)对应于条件的每一位相同既满足条件(权限之间为与关系)
	例:
		[root@hu recover]# find . -perm -755 -ls
		261629    4 drwxr-xr-x   5 root     root         4096 Dec  1 04:53 .
		264277    4 drwxr-xr-x   2 root     root         4096 Nov 29 08:46 ./cptest
		261660    4 -rwxr-xr-x   1 root     root          205 Nov 30 09:18 ./test1.sh
		261653    4 drwxr-xr-x   2 root     root         4096 Dec  1 01:14 ./tt
		261393    4 -rwxrwxr-x   1 root     root          192 Nov 30 09:42 ./test.sh
8、动作处理
	-print——输出至标准输出,默认的动作
	-ls——类似于对查找到的文件执行“ls -l”命令
	-delete——删除查找到的文件
	-fls /path——将查找到的所有文件的详细信息保存到指定路径的文件里
	-ok command {}\——对查找到的每个文件执行由command表示的命令,每次操作都由用户确认( {}\为固定格式)
	-exec command {}\——对查找到的每个文件执行由command表示的命令,每次操作不由用户确认( {}\为固定格式)
	例:
		[root@hu recover]# find / -nouser -a -nogroup -ok chown root:root {}\
		-rw-r--r--. 1 root root    0 Dec  1 13:20 ttt
注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次星传递给后面的命令
	但是此命令不能接受过长的参数,若参数过长命令执行会失败,换另一种方式可规避此问题
Logo

更多推荐