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

ls -d /etc/l*[[:digit:]]*[[:lower:]]

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

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

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

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

4、显示/etc目录下所有以rc开头,并后面是0-6之间的数字,其他以任意字符的文件或目录列表

ls -d /etc/rc[0-6]*

5、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录列表

ls -d /etc/[mnrp]*.conf

6、只显示/root下的隐藏文件或目录列表

ls -d /root/.*

7、只显示/etc下的非隐藏目录列表

ls -d /etc/[^.]*/

8、如何创建/testdir/dir1/x,/testdir/dir1/y,/testdir/dir1/x/a,/testdir/dir1/x/b,/testdir/dir1/y/a,
/testdir/dir1/y/b

mkdir -p /testdir/dir1/{x..y}/{a..b}
tree

9、如何创建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b

mkdir -pv testdir/dir2/{x/{a,b},y}

10、如何创建/testdir/dir3、/testdir/dir4、/testdir/dir5、/testdir/dir5/dir6、/testdir/dir5/dir7

mkdir -pv testdir/dir{3,4,5/dir{6,7}}

11、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

tr 'a-z' 'A-Z' < /etc/issue > /tmp/issue.out

12、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

who | tr 'a-z' 'A-Z' > /tmp/who.out

13、一个linux用户给root发邮件,要求邮件标题为“help” ,邮件正文如下:
Hello,I am 用户名 ,The system version is here,please help me to check it .Thank you!
操作系统版本信息

mail -s help root <<EOF
> Hello,I am `whoami`,The system version is here,please help me to check it.Thank you!
> `cat /etc/redhat-release `
> EOF

14、将/root下文件列表,显示成一行,并文件名之间用空格隔开

ls  /root  | tr '/n' ' '

15、计算1+2+3+…+99+100的总和

seq -s + 1 100 | bc
echo {1..100} | tr ' ' + | bc

16、删除windwos文本中的回车字符,即“/r”

file windows.txt
windows.txt: ASCII text, with CRLF line terminator
hexdump -C windows.txt 
00000000  61 0d 0a 62 0d 0a 63                              |a..b..c|
00000007
tr -d '\015' < windows.txt > linux.txt
hexdump -C linux.txt 
00000000  61 0a 62 0a 63                                    |a.b.c|
00000005

17、处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的数字和空格

echo “xt.,l 1 jr#linux.txtmn 2 c*/fe 3 uz 4” | tr -cd [:digit:][:space:]
 1  2  3  4
-cd取补集,除了后面条件的其他全删
tr -dc abc
aaasdfa
adafafsfg
ctrl+d 结束返回

18、将PATH变量每个目录显示在独立的一行

echo $PATH | tr ':' '\n'

19、将指定文件中0-9分别替代成a-j

tr '0-9' 'a-j' <num.txt

20、将文件/etc/centos-release中每个单词(由字母组成)显示在独立的一行,并无空行

tr -c [:alpha:] '\n' < /etc/centos-release | tr -s [:space:]

21、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为“Gentoo Distribution”

useradd  -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo
id gentoo
uid=1002(gentoo) gid=1003(gentoo) groups=1003(gentoo),1(bin),0(root)

22、创建下面的用户、组和组成员关系
名字为webs的组
用户nginx,使用webs作为附加组
用户varnish,使用webs作为附加组
用户mysql,不可交互登录系统,且不是webs的成员,nginx,varnish,mysql密码都是magedu

groupadd webs
seradd nginx -G webs
useradd varnish -G webs
useradd mysql -s /sbin/nologin
echo magedu | passwd --stdin nginx
Changing password for user nginx.
passwd: all authentication tokens updated successfully.
echo magedu | passwd --stdin varnish > /dev/null
echo magedu | passwd --stdin mysql > /dev/null

groupmems -l -g webs
nginx  varnish 
groups nginx
nginx : nginx webs
groups varnish
varnish : varnish webs
查看命令:cat /etc/passwd
查看命令:getent passwd 名称
nginx:x:1003:1005::/home/nginx:/bin/bash
varnish:x:1004:1006::/home/varnish:/bin/bash
mysql:x:1005:1007::/home/mysql:/sbin/nologin

23、当用户docker对/testdir 目录无执行权限时,意味着无法做哪些操作?
无法cd,无法列出目录里的文件
24、当用户mongodb对/testdir 目录无读权限时,意味着无法做哪些操作?
能进入进行创建删除操作,无法列出文件
25、当用户redis 对/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除?
不可以
26、当用户zabbix对/testdir 目录有写和执行权限时,该目录下的只读文件file1是否可修改和删除?
不能修改(文件没有写权限) 能删除(目录有写权限)
27、复制/etc/fstab文件到/var/tmp下,设置文件所有者为tomcat读写权限,所属组为apps组有读写权限,其他人无权限

cp /etc/fstab /var/tmp
useradd tomcat ; groupadd apps ; chown tomcat:apps /var/tmp ; chmod 660 /var/tmp 

28、误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性

cp -r /etc/skel/ /home/git/
chown git:git /home/git/
chmod 600 /home/git/
skel目录下有创建家目录所需的隐藏配置文件(默认配置/etc/default/useradd)
cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc

29、在vim中设置tab缩进为4个字符

方法1:全局生效
vim /etc/vimrc
set ts=4
:wq!
方法2:个人
vim ~/.vimrc
set ts=4
:wq!
方法3:仅当前文本编辑中有效
:set ts=4

30、复制/etc/rc.d/init.d/functions文件至/tmp目录,替换/tmp/functions文件中的/etc/sysconfig/init为/var/log

cp -a /etc/rc.d/init.d/functions /tmp/funtions
vim /tmp/funtions 
普通模式下
:%s@/etc/sysconfig/init@/var/log@g

31、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号(明明有简单的,为什么要用难的_〆(´Д` )…审题万岁)

:%s/^# / /g
:%s@^#\([[:space:]]\+\)@\1@g
解读:全文把"# "用” “替换
%全文 s查找并替换  ^#行首锚定,确认所有以#开头 \([[:space:]]\+.*\)正则表达式,\+表示至少有一
个空格 \1表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符,及[[:space:]]\+
可使用diff对两个文件进行比较
Logo

更多推荐