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

2021-10-01 04:33:00 字數 2863 閱讀 3760

系統環境變數配置檔案:

/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能列出系統變數和使用者變數。

C primer plus第十章習題答案(部分)

這部分的題目還是很簡單的,我就只放一下最後一題的 了,利用了函式指標可以學一下。include class list void add int item bool is empty void visit void pf int void print voida int a1 intmain 這裡我沒...

跟阿銘學Linux第16章,常用mysql操作

show variables 檢視mysql的引數,其中的大部分可以在my.cnf 中定義 永久改變密碼策略的方法。set persist validate password.policy 0 set persist validate password.length 4 set persist va...

跟阿銘學Linux 第二章命令整理

1 自動獲取ip位址dhclient 2 檢視ip位址ip addr 3 聯網測試ping c 4 www.baidu.com 4 編輯網絡卡vi etc sysconfig network scripts ifcfg ens32 5 配置內容 ipaddr 192.168.75.100 netma...