shell相關測驗題

  1. 設置環境變量 HISTSIZE , 使其可以保存10000條命令歷史。

答:環境變量 HISTSIZE 在配置文件 /etc/profile 文件中,因此要使其可以保存10000條命令歷史須要修改配置文件 /etc/profile,將HISTSIZE=10000html

[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]$ " 須要將雙引號改成單引號,由於雙引號下須要轉義python

  1. 想辦法把當前目錄下的文件的文件名中的小寫字母所有替換爲大寫字母。

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

  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 的做用是什麼?bash

答: export 定義子bash繼承的全局變量ssh

  1. linux下自定義變量要符合什麼樣的規則呢?

a. 設定變量的格式爲」a=b」,其中a爲變量名,b爲變量的內容,等號兩邊不能有空格post

b. 變量名只能由英、數字以及下劃線組成,並且不能以數字開頭spa

c. 當變量內容帶有特殊字符(如空格)時,須要加上單引號;.net

d. 若是變量內容中須要用到其餘命令運行結果則可使用反引號;code

e. 變量內容能夠累加其餘變量的內容,須要加雙引號;htm

  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. 作實驗,搞明白 ; && || 這三個符號的含義。
特殊符號 做用
多條命令寫到一行,使用;分隔
|| 用於命令之間,前面命令成功執行,後邊命令不執行,若是前面命令不能執行,則執行後面命令。直到成功執行。
& & 用於命令之間,若是前面命令成功執行,則執行後面的命令。若是前面命令不執行,則不執行後面的命令。
  • ;
[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: 未找到命令
  1. 若是隻想讓某個用戶使用某個變量如何作?

能夠寫入.bash_profile

  1. 使用哪一個命令會把系統當中全部的變量以及當前用戶定義的自定義變量列出來?

set ##顯示系統全部的變量和當前用戶自定義的變量

擴展閱讀:

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

相關文章
相關標籤/搜索