linux题目小结(一)

1定义一个别名对所有用户生效

[root@localhost ~]# cat /etc/bashrc 
。。。
alias actp='cat /etc/fstab'
[root@localhost ~]$ source /etc/bashrc 

[root@localhost ~]# alias 
alias actp='cat /etc/fstab'
[root@localhost ~]# su - lxq
上一次登录:三 7月 17 18:02:37 CST 2019:0 上
[lxq@localhost ~]$ alias 
alias actp='cat /etc/fstab'

原理:
linux题目小结(一)

这样在/etc/bashrc中改变变量对于所有shell都会生效

2 显示/etc/passwd中所有不以/bin/bash结尾的行

[root@localhost ~]# cat /etc/passwd | grep -v "/bin/bash$"

3找出/etc/passwd中,包含二位数或者三位数的行

[root@localhost ~]# cat /etc/passwd | grep "\<[0-9]\{2,3\}\>

4匹配/proc/meminfo中所有以S或者s开头的行

cat /proc/meminfo | grep "^[sS]"
cat /proc/meminfo | grep -i  "^[s]
cat /proc/meminfo | egrep "^(s|S)"

三条命令都是显示如下

SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:             13744 kB
Slab:             106324 kB
SReclaimable:      40828 kB
SUnreclaim:        65496 kB

5输出如dirname命令

[root@localhost ~]# echo "/etc/passwd" | egrep  -o  "[^/]*$"
passwd

6 找出ifconfig中的ip地址

ip addr | grep "\<inet\>" | grep "\<ens33\>$" | grep -o "[0-9]\+.[0-9]\+.[0-9]\+.[0-9]\+\/24

先看ip addr中的文本

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:62:4e:8a brd ff:ff:ff:ff:ff:ff
    inet 192.168.159.128/24 brd 192.168.159.255 scope global noprefixroute dynamic ens33
       valid_lft 1215sec preferred_lft 1215sec
    inet6 fe80::9cc1:5f38:43f:3014/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
ip addr | grep "\<inet\>" 
匹配到inet
inet 127.0.0.1/8 scope host lo
inet 192.168.159.128/24 brd 192.168.159.255 scope global noprefixroute dynamic ens33
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

然后找到ens33的那一行


[root@localhost ~]# ip addr | grep "\<inet\>" | grep "\<ens33\>$" 
    inet 192.168.159.128/24 brd 192.168.159.255 scope global noprefixroute dynamic
ens33

然后匹配ip地址

[root@localhost ~]# ip addr | grep "\<inet\>" | grep "\<ens33\>$" | grep -o "[0-9]\+.[0-9]\+.[0-9]\+.[0-9]\+\/24"
192.168.159.128/24

7设置vim自动缩进是4个字符

centos7下
vim etc/vimrc
在末行加入
set ts=4

8脚本实现自动添加三个用户并且计算这三个用户的uid之和

[root@localhost ~]# ./lxq.sh 
2006
[root@localhost ~]# ./lxq.sh 
useradd:用户“a”已存在
useradd:用户“b”已存在
useradd:用户“c”已存在
2006
[root@localhost ~]# cat lxq.sh 
#!/bin/bash
useradd a 
 a=$(id -u a)
useradd b 
 b=$(id -u b)
useradd c
 b=$(id -u c)
echo $[a+b+c]

9 find用法以及常用用法的示例演示

find [option]… [查找路径] [查找条件] [处理动作]

查找条件    解释
-name   后接文件名称,支持使用通配符 * 、?、[]、[^]
-iname  后接文件名,不区分大小写
-inum   后接inode号
-samefile   后接文件名,查找与之相同inode号的文件
-links  后接连接数,查找连接数为n的文件
-regex  以pattern匹配整个文件路径字符串
-user   查找属主为指定用户的文件
-group  查找属组是指定组的文件
-uid    查找属主为指定uid的文件
-gid    查找属主为指定gid的文件
-nouser     查找没有属主的文件
-nogroup    查找没有属组的文件
-type   后接文件类型,常见类型有:f,d,l,s,b,c,p
-a  组合条件关系,表示与的关系
-o  组合条件关系,表示或的关系
-not    组合条件关系,表示非的关系
-size   后接 +或者- n Unit ,这个值表示的是一个区间。-n 表示的区间是 [0,n-1],n 表示的区间是(n-1,n], +n 表示的区间是 (n,∞)。常用单位是:k,M,G,c(byte)
-atime  以天为单位查询文件时间。-n 表示[0,n) ,n 表示 [n,n+1),+n 表示[n+1,∞)
-mtime  查找文件的修改时间
-ctime  查找文件的状态时间
-amin   以分钟为单位查询文件时间。-n 表示[0,n) ,n 表示 [n,n+1),+n 表示[n+1,∞)
-mmin   查找文件的修改时间
-cmin   查找文件的状态时间
-perm   后接权限模式,常用数字格式的权限模式。755 表示匹配的权限恰好是755,/755 只要ugo任意一个中任何一个rwx位权限能匹配就OK,-755 ugo都必须要拥有对应的权限,可以大于这个权限。
处理动作    解释
-print  默认的处理动作
-ls     类似于 ls -l 结果
-delete     删除查找到的文件,慎用
-fls    后接文件,将查找到的结果保存到文件中
-ok cmd {} \;   对查找到每个文件执行cmd
-exec cmd {} \;     同上就是不会每一个都询问了
常见用法:
用法  解释
find / -name file -type [f|d]   根据名字从根目录开始查找文件或目录
find / -user username   根据用户名查找
find -name ‘*.[ch]’     使用通配符模糊查找时,一定要单引号括起来
find -iname snow.png    忽略大小写
find -user joe -group joe   指定用户和组
find -user joe -o -user jane    指定用户名或组
find -not \ ( -user joe -o -user jane \ )   查找既不是joe也不是jane用户的文件,标记的地方中间是没有空格,博客的原因如没有空格显示有问题
find / -user joe -o -uid 500    在/ 下查找属主是joe或者uid是500的文件
find /tmp \ ( -not -user root -a -not -name ‘f*’ \ ) -ls    找出/tmp目录下,属主不是root,且文件名不以f开头的文件
find /etc -path ‘/etc/sane.d’ -a -prune -o -name “*.conf”   查找etc目录中除了sane.d目录,其他以conf结尾的文件
find -perm 755  查找当前目录中权限是755的文件
find /tmp -ctime +3 -user joe -ok rm {} \;  提示删除存在时间超过3天以上的joe的临时文件
find ~ -perm -002 -exec chmod o-w {} \;     在你的主目录中寻找可被其它用户写入的文件

猜你喜欢

转载自blog.51cto.com/14414023/2420997
今日推荐