1、定义一个对所有用户都生效的别名,例如:lftps=‘lftp 172.168.0.1/pub’
对所有用户都生效的是在/etc/bashrc中定义别名,命令如下:
[root@chiji51 Desktop]# vim /etc/bashrc
alias lftps="lftp 172.168.0.1/pub"
如果想让别名立即生效,则输入以下命令:
[root@chiji51 Desktop]# source /etc/bashrc
2、显示/etc/passwd文件中不以/bin/bash结尾的行
[root@chiji51 Desktop]# wc -l /etc/passwd #显示所有的行数
40 /etc/passwd
[root@chiji51 Desktop]# grep /bin/bash$ /etc/passwd|wc -l #匹配到/bin/bash结尾的行数
3
[root@chiji51 Desktop]# grep -v /bin/bash$ /etc/passwd|wc -l -v做反向匹配
37
3、找出/etc/passwd文件中,包含两位数字或者三位数字的行
[root@chiji51 Desktop]# 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
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin
colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
libstoragemgmt:x:996:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
saslauth:x:995:76:"Saslauthd user":/run/saslauthd:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:994:993::/var/lib/chrony:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/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:993:991::/run/gnome-initial-setup/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
4、显示/proc/meminfo文件中以大写或小写s开头的行,用三种方法实现
(1)、利用grep中-i选项可以忽略字符大小写
[root@chiji51 Desktop]# grep -i ^s /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 10028 kB
Slab: 87056 kB
SReclaimable: 32248 kB
SUnreclaim: 54808 kB
[root@chiji51 Desktop]# grep -i ^S /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 10028 kB
Slab: 87056 kB
SReclaimable: 32248 kB
SUnreclaim: 54808 kB
(2)利用[]特性来实现
[root@chiji51 Desktop]# grep ^[sS] /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 10028 kB
Slab: 87056 kB
SReclaimable: 32248 kB
SUnreclaim: 54808 kB
(3)利用-E选项用扩展正则表达来实现
[root@chiji51 Desktop]# grep -E ^[sS] /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 10028 kB
Slab: 87060 kB
SReclaimable: 32248 kB
SUnreclaim: 54812 kB
5、使用echo输出一个绝对路径,使用egrep取出路径名,类似执行dirname /etc/passwd的结果
[root@chiji51 Desktop]# echo /etc/passwd | grep -E -o ^/.*/*
/etc/
[root@chiji51 Desktop]# echo /etc/passwd/adc/ade | grep -E -o ^/.*/*
/etc/passwd/adc/
还没有想出如何输出/etc/yum.repo.d/和/etc的路径名
6、找出ifcongfig中的IP地址,要求结果只显示IP地址。
[root@chiji51 Desktop]# ifconfig | grep -Eo "[[:digit:]]{,3}(\.[[:digit:]]{,3}){3}"
192.168.80.128
255.255.255.0
192.168.80.255
127.0.0.1
255.0.0.0
7 、vim定制自动缩进四个字符
[root@chiji51 ~]# vim /etc/vimrc
set tabstop=4 "设置tab键为4个空格,
set shiftwidth =4 "设置当行之间交错时使用4个空格
set autoindent
8、编写脚本,实现自动添加三个用户,并计算三个用户的uid之和
[root@chiji51 ~]# vim sumuser.sh
1 #!/bin/bash
2 id funguy &> /dev/null |useradd funguy
3 id counfry &> /dev/null |useradd counfry
4 id fun &> /dev/null |useradd fun
5 sumid=0
6 sumid=$[$(id -u funguy)+$(id -u counfry)+$(id -u fun)
7 echo $sumid
[root@chiji51 ~]# sh sumuser.sh
useradd: user 'funguy' already exists
useradd: user 'counfry' already exists
useradd: user 'fun' already exists
3006
[root@chiji51 ~]#
9、find用法以及常用用法的实例演示
find是linux 命令,它将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。
find的表达式
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
(1)按文件名查找
-name pattern 文件的基名(basename)不支持大小写,支持通配符(*,?,[])匹配
[root@chiji51 Desktop]# find / -name passwd*
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/usr/bin/passwd
/usr/share/doc/passwd-0.79
[root@chiji51 Desktop]# find / -name passwd?
/etc/passwd-
[root@chiji51 Desktop]# find / -name passwd.[0-9].gz
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz
/usr/share/man/ja/man1/passwd.1.gz
-iname pattern 文件的基名(basename)支持大小写,支持通配符(*,?,[])匹配
[root@chiji51 ~]# find / -iname p*d
/sys/fs/selinux/booleans/pppd_can_insmod
/sys/bus/acpi/devices/PNP0A05:0d
(2) 按时间查找
-amin n 找出最近 n 分钟访问的文件
[root@chiji51 ~]# find / -amin 5 -ls 找出最近5分钟访问的时间
30256 0 lrwx------ 1 root root 64 May 18 23:27 /proc/3505/task/3505/fd/17 -> /dev/ptmx
30257 0 lrwx------ 1 root root 64 May 18 23:27 /proc/3505/task/3505/fd/21 -> /dev/pts/1
30258 0 -r-------- 1 root root 0 May 18 23:27 /proc/3505/task/3505/fdinfo/17
-cmin n 找出最近 n 分钟改变的文件
[root@chiji51 ~]# find / -cmin 5 -ls 找出最近5分钟访问的时间
find: ‘/proc/4022/task/4022/fd/6’: No such file or directory
find: ‘/proc/4022/task/4022/fdinfo/6’: No such file or directory
find: ‘/proc/4022/fd/6’: No such file or directory
find: ‘/proc/4022/fdinfo/6’: No such file or directory
-mmin n 找出最近 n 分钟修改的文件
[root@chiji51 ~]# find / -mmin 5 -ls 找出最近5分钟访问的时间
find: ‘/proc/4018/task/4018/fd/6’: No such file or directory
find: ‘/proc/4018/task/4018/fdinfo/6’: No such file or directory
find: ‘/proc/4018/fd/6’: No such file or directory
find: ‘/proc/4018/fdinfo/6’: No such file or directory
-atime n 找出最近 n 天访问的文件
[root@chiji51 ~]# find / -atime 5 -ls 找出最近5天访问的时间
find: ‘/proc/4068/task/4068/fd/6’: No such file or directory
find: ‘/proc/4068/task/4068/fdinfo/6’: No such file or directory
find: ‘/proc/4068/fd/6’: No such file or directory
find: ‘/proc/4068/fdinfo/6’: No such file or directory
-ctime n 找出最近 n 天改变的文件
[root@chiji51 ~]# find / -ctime 5 -ls 找出最近5天改变的时间
find: ‘/proc/4068/task/4068/fd/6’: No such file or directory
find: ‘/proc/4068/task/4068/fdinfo/6’: No such file or directory
find: ‘/proc/4068/fd/6’: No such file or directory
find: ‘/proc/4068/fdinfo/6’: No such file or directory
-mtime n 找出最近 n 天修改的文件
[root@chiji51 ~]# find / -atime 5 -ls 找出最近5天修改的时间
find: ‘/proc/4068/task/4068/fd/6’: No such file or directory
find: ‘/proc/4068/task/4068/fdinfo/6’: No such file or directory
find: ‘/proc/4068/fd/6’: No such file or directory
find: ‘/proc/4068/fdinfo/6’: No such file or directory
注意:
时间参数还有特殊用法,例如:
+n 比 n+1 要大包含 n+1
-n 比 n 要小包含 n
n 比 n 要大比 n+1 要小
(3)按文件大小查找
-size n[cwbkMG]
`b' 512位元组的大小
`c' 字节
`w' 两位元组的大小
`k' KB
`M' MB
`G' GB
(4)根据所属者和所属组查找
-group gname 所属组
-uid n uid号
-user uname 用户名
-nogroup 无组
-nouser 没有用户
(5)根据文件权限查找
-executable 对当前用户是否可执行
-writable 对当前用户是否可写
-readable 对当前用户是否可读
-perm -mode 查找除了可以满足mode 中权限,其他权限位有也会匹配
-perm /mode 查找任意一个满足mode权限都行
-perm mode 完全符合mode权限,其他权限位有权限不会匹配到
(6)按文件类型匹配
-type c
b 特殊块文件
c 特殊字符块文件
d 目录
p 管道文件
f 常规文件
l 符号链接文件
s socket
(7)按inode匹配
-inum n
find 还有对查找结果进行处理
-print 对查找的结果进行输出显示,默认开启此选项
**-exec** command **{} \ ;**
exec 是execute的简写,对查找的结果进行二次处理,将查找到的内容传送到 **{}**中,将作为其他命令的参数,保证命令的运行,直到遇到**;**才会停止运行,此时的**\**将作为逃逸符号