這學期正好在學習linux,趁此機會寫個筆記,當時不知道,居然下了一個中文版的ubuntu,用起來確實有點惡心,,,
linux 常用命令
/etc/passwd(是檔案而不是命令)
cat /etc/passwd
用戶可以通過打開這個檔案,來查看用戶配置資訊,


如果成功顯示的格式:
用戶名:密碼:用戶id:組id:賬號描述:主目錄:登錄shell(默認是bash)
passwd
passwd 用戶名
普通用戶只能修改自己的密碼,root可以修改任何人的密碼,并且不需要知道之前的密碼,
id
id
可以查看當前登錄用戶的資訊

變數
創建或修改一個變數:變數名=變數值
顯示變數的值:echo $變數名
洗掉變數:unset 變數名
匯出環境變數:export 變數名
總之一頓騷操作之后就明白怎么用了,

查看環境變數
set
env
都可以用來查看環境變數,列印出一堆東西

PATH變數
echo $PATH
PATH 是shell命令搜索路徑,會去PATH包含的目錄中尋找和命令同名的可執行檔案

環境變數PS1
echo $PS1
主命令提示符,可以自定義,默認為用戶名@主機名:當前作業目錄:$(普通用戶)或#(root)

環境變數 PS2
echo $PS2
一般用于命令太長,一行寫不完的時候,下一行接著上一行,行首會有“>”,

環境變數HOME
echo $HOME
用戶的主目錄:/home/用戶名

source 或者 .
source 腳本檔案
在當前shell中執行腳本檔案
這里有一個我已經寫好的創建變數的腳本

和bash命令對比,可以明顯看出source是在當前shell中進行的,而不是另起一個行程,

pwd
pwd
查看當前目錄路徑

cd
cd 路徑名
cd ..(回傳上層目錄)
cd -(回傳上一次cd的目錄,可以理解為反復橫跳)
cd (回傳HOME)
用法都很簡單,但遠比windows上的cd要強大,

man
man [頁號] 命令名
可以查看某指令的幫助資訊,
頁號1:linux內置
頁號2:linux系統呼叫
頁號3:庫函式

| (管道)
ls | less
將左邊命令的stdout作為右邊命令的stdin,實作管道的功能,

重定向
> (輸出重定向)
ls > 檔案名
將左邊指令的stdout重定向到右邊的檔案中(覆寫),

ls > 檔案名 2>&1
把stderr重定向到已經一定重定向stdout的檔案中(聽起來有點繞),例子中因為沒有錯誤資訊,所以結果保持不變,

set –o noclobber
因為> 會把原有檔案的內容沖掉,所以比較危險,set –o noclobber這個命令可以保證如果檔案存在,我就不執行重定向,
>|
如果我無論如何都要強制執行,就是用>|,
>> (追加重定向)
ls >> 檔案名
用法和前面的差不多,只不過是追加方式
< (輸入重定向)
cat < 命令或檔案
把右邊的stdout變為左邊的stdin,

<< (界限符)
wc << 界限字符
...
界限字符
這個可不是重定向了,雖然長得很像,主要是作為界限符來使用,

*,?,[,],[-],{,}
用于匹配,類似于正則運算式,但是要簡單一些,具體用法見例子,

read
read file
從終端讀入字串放在右邊的變數中,

之前已經寫好了一個bash腳本,包含一條read命令,

test
test可用于整數測驗,字串測驗,檔案測驗和邏輯測驗,

在Linux中,0表示true,1表示false,這和高級程式設計語言剛好相反,并且由此補充一個c中的main函式至少要有的引數(雖然平常打比賽都不寫的,,,),
int main(int argc,char **argv,char **env)
{
return 0;
}
當然,程式員都是比較懶的,test命令又可以寫成“[”,

expr
進行運算式計算的,注意要有空格,否則會被誤認為是string,

if陳述句
下面的這些bash語法感覺上會比較晦澀,老師說能用bash寫腳本的都是大神,推薦我們使用python寫,,,
學長說,他就是因為不會寫shell腳本,所以才在作業中吃了點虧,哈哈哈,
if [ expression ];
then
statements
elif [ expression ];
then
statements
else
statements
fi
case陳述句
上課的時候老師說,這都是什么反人類的語法,,,,
case $var in
val1)
statements;;
val2)
statements;;
*)
statements;;
esac
for陳述句
for var in list
do
statements
done
while陳述句
while expression
do
statements
done
util陳述句
until expression
do
statements
done
函式
function 函式名()
{
statements
}
特殊的shell變數
都是用來表達特定含義的變數,比較重要,老師說了必考,哈哈哈哈,
$# 傳遞給腳本或函式的引數個數
$0 腳本程式自身的名稱(命令列名稱)
$1 傳給腳本或函式的第一個引數
$2 ...
$3 ...
$4 ...
$? 上一條陳述句的回傳值
$$ 執行本腳本的行程的PID值
$* 將所有的引數作為一個字串
$@ 將所有的引數分解為包含若干字串的陣列
這一章到這里就結束了,下一期接著寫有關vim的,
最近忙著參加預推免,耽誤了一些課,特此感謝mj同學和lqz同學幫我錄制上課視頻,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/104557.html
標籤:其他
上一篇:CentOS7-8、CentOS8.2、阿里云服務器,無GUI圖形化界面,CentOS使用RPM方式安裝Oracle 19c
