跟阿銘學Linux第十章答案,shell基礎知識

  1. 系統環境變量配置文件:

/etc/profle /etc/bashrc

個人環境變量配置文件:

.bash_profile(用戶登錄時執行)

 .bashrc(登錄或打開shell時執行)

 .bash_history(歷史命令)

 .bash_logout(退出shell時執行)

#後面的內容表示註釋,使用#時,#前面應加上空格,否則就不是註釋。

\ 脫義字符(類似其它語言的轉義字符)

Cut 要想用-f設置區塊,必須用-d設置分隔符

Sort 要想使用-k對區域內的字符串排序,必須用-t設置分隔符

參數後跟分隔符的時候中間可以沒有空格,分隔符可以不用引號括起來了,跟數字也一樣,比如:head -n5 /etc/passwd | sort -t: -k3

Uniq 不會改變源文件,如果要將去重的結果存下來,應該將結果輸出到新文件。

Tee:將文件寫入後面的文件,並顯示在屏幕上,相當於把輸出流分成了兩份。例子:echo "abcdefg" |tee hijklmn.txt

Split –l(按行) -b(按塊大小)

!$: 上條命令的最後一個變量

 

 

 

 

2.

1)臨時更改:HISTSIZE=10000

永久更改:

進入/etc/profile

普通用戶沒有權限,所以切換到root。

2) Shell中雙引號保留原有字符的特殊含義,單引號可以去掉原有字符的特殊含義。所以我們有兩種改法:PS1="[\u@\h \W]\\$ ";PS1=‘[\u@\h \W]\$ ‘

3) ls|tr '[a-z]' '[A-Z]' 能將改變的結果列出來

使用for循環加tr命令,能直接改變文件的名字。

4) sort -t: -k5 passwd

5) cut -d: -f3 passwd

6)/etc/profile : 所有用戶在登錄時被執行,裏面保存着環境變量和開機需要執行的一些命令。

/etc/bashrc : 所有用戶登錄需要執行的命令

.bash_profile:登錄或者打開shell都會被執行

.bashrc 個人用戶在登錄時被執行,裏面保存着環境變量和開機需要執行的一些命令。登錄時執行一次

/etc(比如:/etc/profile和/etc/bashrc)文件夾下的配置文件時系統級的配置文件,所有用戶都會使用;.開頭的文件(比如.bashrc和.bash_profile)是用戶級的文件;/etc/profile和.bash_profile只在用戶登錄的時候執行;/etc/bashrc和.bashrc文件每打開一個bash都會被執行。*profile一般都會調用*bashrc。

~/.bash_profile 是交互式、login 方式進入 bash 運行的,意思是隻有用戶登錄時纔會生效。

~/.bashrc 是交互式 non-login 方式進入 bash 運行的,用戶不一定登錄,只要以該用戶身份運行命令行就會讀取該文件。

 

# /etc/profile  # System wide environment and startup programs, for login setup

# /etc/bashrc  # System wide functions and aliases

# .bash_profile  # User specific environment and startup programs

#.bashrc  # User specific aliases and functions

7)聲明一個變量,使其進入子shell後也生效

8)變量名可以用數字字母下劃線,但是不能以數字開頭。

9)當命令在運行時按ctrl + z,命令就會在後臺停止,再輸入bgn,命令會在後臺運行,輸入fgn命令會被調到前臺運行。在命令後加上 &後執行,命令會直接在後臺運行。

10)ls test*

11) ls |tee abc.txt

12)別名:alias la='ll -a',輸入la,顯示所有文件

   也可以使用變量:la='ls -a'

13)bash shTest.sh  > abc.log 2>&1 &

    shTest.sh運行後會有標準輸出和標準錯誤輸出,> abc.log表示將標準輸出重定向到abc.log ,2>&1表示將標準錯誤輸出重定向到標準輸出。

14) split -b 10M passwd byBolockSize

   split -l 5 passwd byLine

15)   ;就是執行完這一條語句執行下一條語句,&&是與的意思,當&&前面的命令爲false(沒有返回值,執行失敗)時,式子的結果一定是false,沒必要在看(執行)&&後面的命令;||是或的意思,當||前面的命令執行結果爲true(命令執行成功),式子的結果一定是true,沒必要再執行||後面的命令。

lll&&ls

echo 'lll&&ls'

echo 左邊是假的,式子結果一定爲假,右邊不會執行

pwd||ls

echo 'pwd||ls'

echo 左邊是真的,式子結果一定爲真,右邊式子不會執行

pwd&&ls

echo 'pwd&&ls'

echo 會執行

lll||ls

echo 'lll||ls'

echo 會執行

echo 或運算符用在,需要式子執行其中一個的時候,即不確定前面的式子是否會執行失敗,後面的式子當做前面的式子

echo 執行失敗時的保險

echo 與運算符用在,當前面的式子執行成功了之後,纔去執行後面的式子,適合有序執行的幾條命令,

echo 有一條命令執行出錯,後面的命令都會停止執行

16)把設置變量的語句添加在某用戶根目錄下的.bashrc文件裏面。

17)env只能列出系統變量,set能列出系統變量和用戶變量。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章