shell相关测验题

  1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。

答:环境变量 HISTSIZE 在配置文件 /etc/profile 文件中,所以要使其能够保存10000条命令历史需要修改配置文件 /etc/profile,将HISTSIZE=10000

[root@localhost ~]# vi /etc/profile
fi

HOSTNAME=`/usr/bin/hostname 2>/dev/null`
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
fi

HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=10000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi
  1. 为什么如果这样设置PS1 (PS1="[\u@\h \W]$ ") 显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?

答:PS1="[\u@\h \W]$ " 需要将双引号改为单引号,因为双引号下需要转义

  1. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。

for i in ls;do mv $i echo $i|tr '[a-z]' '[A-Z]';done

  1. 使用sort以":"为分隔符,对/etc/passwd文件的第5段排序。
[root@localhost ~]#sort -t: -k5 /etc/passwd 
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
user1:x:1000:1000::/home/user1:/bin/bash
user2:x:1001:1001::/home/user2:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
  • -t 指定分隔符
  • -k 指定第几段
  1. 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。
[root@localhost ~]#cut -d: -f3  /etc/passwd
0
1
2
3
4
5
6
7
8
11
12
14
99
192
81
999
89
74
998
1000
1001
  • -d 指定分隔符
  • -f 指定第几段
  1. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.
配置文件 作用
/etc/profile 不管哪个用户,登陆时都会读取该文件。
/etc/bashrc bash执行时,不管是何种方式,都会读取此文件
.bashrc 当bash以non login方式执行时,读取此文件。
.bashrc_profile 当bash以login形式执行时,读取此文件。通常该配置文件还

会配置成去读取.bashrc。 7. export 的作用是什么?

答: export 定义子bash继承的全局变量

  1. linux下自定义变量要符合什么样的规则呢?

a. 设定变量的格式为”a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格

b. 变量名只能由英、数字以及下划线组成,而且不能以数字开头

c. 当变量内容带有特殊字符(如空格)时,需要加上单引号;

d. 如果变量内容中需要用到其他命令运行结果则可以使用反引号;

e. 变量内容可以累加其他变量的内容,需要加双引号;

  1. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?
[root@localhost ~]#sleep 1000 &
[1] 3678
[root@localhost ~]#fg
sleep 1000

使用命令 比如:sleep & ,可以使命令在后台运行。如果把后台的命令调到前台运行,使用fg命令。

  1. 列出当前目录下以"test"开头的文件和目录。
[root@localhost ~]#ls test*
test1.txt  test.txt

test:
123.txt  234.txt

使用 ls 可以列出当前目录的所有文件,test加上 * 后列出当前目录下所有以 test开头的文件以及目录包括目录下的子文件。

  1. 如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
[root@localhost ~]#ls [12].txt abc.txt >right.txt 2>erro.txt
[root@localhost ~]#cat right.txt 
1.txt
2.txt
[root@localhost ~]#cat erro.txt 
ls: 无法访问abc.txt: 没有那个文件或目录

> 正确的信息输出到文件中, >>正确信息追加到文件中, 2> 错误的信息输出到文件中,2>>错误的信息追加到文件中

  1. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。

alias abc=abcdefg

  1. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?
[root@localhost ~]#ls [12].txt ab.txt &>a.txt
[root@localhost ~]#cat a.txt
ls: 无法访问ab.txt: 没有那个文件或目录
1.txt
2.txt
  1. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?

split -b10M filename
split -l10000 filename

  • -b指定文件大小
  • -l指定行数
  1. 做实验,搞明白 ; && || 这三个符号的含义。

  2. 如果只想让某个用户使用某个变量如何做?

  3. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?

特殊符号 作用
多条命令写到一行,使用;分隔
|| 用于命令之间,前面命令成功执行,后边命令不执行,如果前面命令不能执行,则执行后面命令。直到成功执行。
& & 用于命令之间,如果前面命令成功执行,则执行后面的命令。如果前面命令不执行,则不执行后面的命令。
  • ;
[root@localhost ~]#ls ; cat right.txt ;cat erro.txt 
123    2.txt  abcd             a.txt     right.txt  test1.txt
1.txt  abc    anaconda-ks.cfg  erro.txt  test       test.txt
1.txt
2.txt
ls: 无法访问abc.txt: 没有那个文件或目录
  • ||
[root@localhost ~]#la || ls
-bash: la: 未找到命令
123    2.txt  abcd             a.txt     right.txt  test1.txt
1.txt  abc    anaconda-ks.cfg  erro.txt  test       test.txt

-&&

[root@localhost ~]#la && ls
-bash: la: 未找到命令

扩展阅读:

Linux环境变量之“PS1" http://www.lishiming.net/thread-5364-1-1.html

Linux支持中文 http://www.lishiming.net/thread-5360-1-1.html

让命令历史永久保存并加时间戳 http://www.lishiming.net/thread-283-1-1.html

linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 干啥的 http://www.lishiming.net/thread-909-1-1.html

猜你喜欢

转载自my.oschina.net/u/3850965/blog/1826332