[关闭]
@mrz1 2018-01-01T14:10:15.000000Z 字数 3450 阅读 814

linux-基础练习

笔记


主要内容

  • 练习题

显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
ls -d /var/l*[0-9]*[[:lower:]]

显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls -d /etc/[[:digit]]*[^[:digit:]]

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

  1. ls -d /etc/[^[:alpha:]][[:alpha:]]*
  2. ls -d /etc/[^a-zA-Z][a-zA-Z]*

显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
ls -d /etc/rc[0-6]*

显示/etc目录下,所有以.d结尾的文件或目录
ls -d /etc/*.d

显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls -d /etc/[mnrp]*.conf

只显示/root下的隐藏文件和目录
ls -d /root/.[^.]*

只显示/etc下的非隐藏目录
ls -d /etc/[^.]*/

显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
ls -d /var/l*[0-9]*[[:lower:]]

显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls -d /etc/[[:digit]]*[^[:digit:]]

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

  1. ls -d /etc/[^[:alpha:]][[:alpha:]]*
  2. ls -d /etc/[^a-zA-Z][a-zA-Z]*

显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
ls -d /etc/rc[0-6]*

显示/etc目录下,所有以.d结尾的文件或目录
ls -d /etc/*.d

显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls -d /etc/[mnrp]*.conf

只显示/root下的隐藏文件和目录
ls -d /root/.[^.]*

只显示/etc下的非隐藏目录
ls -d /etc/[^.]*/

定义别名命令baketc,每天将/etc/目录下所有文件,备份到/app独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见

  1. cp -av /etc/ /app/buckup/`date +%F`
  2. nano ~/.bashrc 修改这个文件

创建/app/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
cp -a /root/ /app/rootdir

如何创建/testdir/dir1/x, /testdir/dir1/y,/testdir/dir1/x/a, /testdir/dir1/x/b,/testdir/dir1/y/a, /testdir/dir1/y/b
mkdir -pv /app/testdir/dir1/{x/{a,b},y/{a,b}}

如何创建/testdir/dir2/x, /testdir/dir2/y,/testdir/dir2/x/a, /testdir/dir2/x/b
mkdir -pv /app/testdir/dir2/{x/{a,b},y}

如何创建/testdir/dir3,/testdir/dir4,/testdir/dir5,/testdir/dir5/dir6, /testdir/dir5/dir7
mkdir -pv /app/testdir/dir{3,4,5/{6,7}}

将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
cat /etc/issue |tr a-z A-z > /app/issue.out

将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中
who | tr 'a-z' 'A-Z' > /tmp/who.out

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

  1. mail -s help root <<EOF
  2. Hello, I am `whoami`|$USER,The system version is here,please help me to check it ,thanks!
  3. `uname -r`
  4. `cat /etc/centos-release`
  5. EOF

将/root/下文件列表,显示成一行,并文件名之间用空格隔开
ls /root/ | tr '\n' ' '

计算1+2+3+..+99+100的总和

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

删除Windows文本文件中的‘^M’字符

  1. tr -d '\r' < win.txt > win2.txt
  2. tr -d '\15' < win.txt > win2.txt

处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格
echo 'xt.,l 1 jr#!$mn2 c*/fe3 uz4' | tr -dc '[:digit:] \n'

将PATH变量每个目录显示在独立的一行
echo $PATH |tr ':' '\n'

将指定文件中0-9分别替代成a-j
tr 0-9 a-j < file.txt

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

  1. tr -sc 'a-zA-Z' '\n' < /etc/centos-release
  2. tr -dc 'a-zA-Z ' < /etc/centos-release |tr -s ' ' '\n'

删除zhang的家目录,恢复之(权限,所有者组,数据)

  1. cp -r /etc/skel/ /home/zhang
  2. chown -R zhang:zhang /home/zhang
  3. chmod 700 /home/zhang

今天18:30自动关机,并提示用户?
shutdown -r 12:00 ‘马上关机’

显示当前时间?

  1. date +%Y-%m-%d\ %H:%m:%S
  2. date "+%Y-%m-%d %H:%m:%S"
  3. date +%Y-%m-%d' '%H:%m:%S

显示当前是星期几?

  1. date +%a //缩写
  2. date +%A //全写

设置当前时间为2019-09-08 12;12:23?
date -s ‘2019-09-08 12;12:23’

设置昨天日期?
data -d ‘-1 day’+%F

创建下面的用户、组和组成员关系
名字为admins 的组;用户natasha,使用admins 作为附属组;用户harry,也使用admins 作为附属组用户sarah,不可交互登录系统,且不是admins 的成员,natasha, harry, sarah密码都是centos

  1. groupadd admin;
  2. useradd -G admin natasha;
  3. useradd -G admin harry;
  4. useradd -s /sbin/nologin sarah;
  5. echo centos |passwd --stdin natasha
  6. echo centos |passwd --stdin sarah
  7. echo centos |passwd --stdin harry

实验:centos6,7上修改/etc/passwd root的UID非0,无法启动,修复之启动菜单项

centos7centos6
ea
linux16行,最后加上init=/bin/bash|sh最后加上init=/bin/bash|sh回车
ctrl+x
mount-orw,remount/mount-orw,remount/
nano/etc/passwd修正nano/etc/passwd修正
重启重启

在本机终端登录时,显示原有信息外。在显示当前登录终端号,主机名和当前时间?

  1. $ nano /etc/issue
  2. The hostname is \n hostname
  3. time is \t 时间
  4. tty is \l 终端
  5. \S 主机名
  6. Kernel \r on an \m

修改当前提示符颜色

[root@localhost ~]#echo $PS1 修改提示符格式 PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
\e \033 \u 当前用户 \h 主机名简称 \H 主机名 \w 当前工作目录 \W 当前工作目录基名 \t 24小时时间格式 \T 12小时时间格式 \! 命令历史数 \# 开机后命令历史数

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注