做網(wǎng)站的公司叫什么名字國際新聞最新消息戰(zhàn)爭
Bash作為用戶與操作系統(tǒng)之間的接口,讓用戶通過命令行輸入各種指令來控制和操作計算機系統(tǒng)。
shell的兩種解釋:
1.linux命令解釋器
Terminal? 終端 ——》shell命令? ——》 Linux kernel (內核)
Linux內核的作用:
1.硬件的管理
2.內存的管理
3.文件的管理
4.進程的調度
Linux的基本命令:
1. ls
- ls -l:列出當前目錄下的文件和目錄,以長格式顯示,包含權限、所有者、組、大小、時間戳等信息。
- ls -a:列出當前目錄下的所有文件,包括隱藏文件(以.開頭的文件)。
- ls -F:在每個文件名后加上一個符號,表明文件類型,如/表示目錄,*表示可執(zhí)行文件。
- ls -h:以人易讀的格式顯示文件大小,如KB、MB、GB。
2. touch
????????touch 1.c:創(chuàng)建一個名為1.c的新文件,如果文件已存在,則更新文件的時間戳。
3. rm
- ????????rm -f:強制刪除文件,不提示確認。
- ????????rm -r:遞歸刪除目錄及其內容。
- ????????rm -i:在刪除前詢問用戶確認。
4. mkdir
?????????mkdir dir1 dir2:創(chuàng)建一個或多個目錄。
5. rmdir
?????????rmdir 123:刪除空目錄123。
6. cd
?????????cd ..:移動到上級目錄。
?????????cd ../../../..:向上移動四級目錄。
?????????cd ~:移動到用戶的家目錄。
?????????cd /home/linux/20190214:移動到指定的絕對路徑目錄。
7. cp
?????????cp 1 2:將文件1復制為文件2。
?????????cp -av srcdir tgtdir:遞歸復制目錄srcdir到tgtdir,同時顯示詳細的進度信息。
8. mv
?????????mv 1 2:將文件1重命名為2,或者將文件1移動到目錄2(如果2是一個目錄)。
9.cat
?????????cat filename1:顯示filename1文件的內容。
10 操作符:管道 |
管道(? |? ?)是Linux中非常強大的一個概念,它允許將一個命令的輸出作為另一個命令的輸入。這極大地增強了命令的組合能力,使得可以輕松地進行多步數(shù)據(jù)處理。
?????????cat /etc/passwd | less:先使用cat命令讀取/etc/passwd文件的內容,然后將這些內容傳遞給less命令,less允許你分頁查看文件內容,可以使用鍵盤箭頭鍵滾動瀏覽,q鍵退出。
?????????cat /etc/passwd | grep new -n:先讀取/etc/passwd的內容,然后使用grep命令搜索包含單詞new的行,并顯示行號(-n選項)。
?11. whereis
whereis命令的輸出通常分為三部分:
?b(binary):二進制文件的位置。
?m(manual):手冊頁的位置。
?s(source):源代碼文件的位置。
12. grep
在文件中查找內容
grep [OPTIONS] PATTERN [FILE]...
?例如,搜索文件example.txt中包含"hello"的行:
grep hello example.txt
bash使用選項-n
-n選項告訴grep在輸出中顯示匹配行的行號。
grep 'main' ./20170408/sec3/01socket/ser.c -n
重定向
改變命令的輸入和輸出目的地,通常用于將命令的輸出保存到文件中,或者將文件內容作為命令的輸入
覆蓋重定向 >
將命令的輸出寫入到指定的文件中,如果文件已經(jīng)存在,原來的文件內容會被覆蓋(清空)。
cat t1 t2 > t3
將t1和t2兩個文件的內容合并,然后寫入到t3文件中。如果t3文件已經(jīng)存在,其原有內容會被覆蓋。
追加重定向 >>
將命令的輸出寫入到文件中,但與覆蓋重定向不同的是,它會在文件的末尾追加內容,而不是覆蓋原有的內容。
壓縮和解壓命令
解除壓縮:
tar?-zxvf?文件名.tar.gz?
.tar.gz 和 .tgz? 打包并gz壓縮
壓縮(cz打包+壓縮):tar?czvf FileName.tar.gz DirName
解壓(xz解包+解壓):tar?xzvf FileName.tar.gz
2.shell腳本
解釋型語言
邊翻譯邊執(zhí)行
shell腳本的本質就是一系列shell命令的集合
用途:
?系統(tǒng)維護:定期清理日志、備份數(shù)據(jù)等。
?環(huán)境配置:安裝軟件包、設置環(huán)境變量等。
?數(shù)據(jù)處理:批量修改文件、分析日志數(shù)據(jù)等。
?網(wǎng)絡監(jiān)控:定期檢查服務器狀態(tài)、發(fā)送警報郵件等。
1.shell腳本編寫流程:
?
1.vim?XX.sh??#!/bin/bash
2.編寫腳本
3.chmod?+x?XX.sh
4.?./XX.sh?
/etc/ 配置文件
Permission denied? ?權限不足
解決辦法 :chmod 修改文件的權限?
如何運行Shell腳本
1. 賦予執(zhí)行權限:使用chmod命令給腳本添加執(zhí)行權限。
chmod +x scriptname.sh
2. 執(zhí)行腳本:
?直接執(zhí)行(推薦):
./scriptname.sh
bash
?通過解釋器執(zhí)行: bash scriptname.sh
2.shell變量
1.環(huán)境變量:?env
PATH:保存當前工作的默認路徑
PWD:當前所在的工作路徑
HOME:當前登錄用戶的家目錄
...
2.main(int?argc,char*?argv[])
argc:代表“argument count”(參數(shù)計數(shù)),是一個整型變量,表示傳遞給程序的命令行參數(shù)的數(shù)量。這包括程序本身的名稱,也就是argv[0]。
argv:代表“argument values”(參數(shù)值),是一個指向字符指針數(shù)組的指針,其中每個元素指向一個字符串,這些字符串就是命令行參數(shù)。argv[0]通常包含程序的名稱,argv[1]是第一個參數(shù),依此類推。每個字符串都以空字符'\0'結尾。
?
?在很多編程語言中,包括C、C++和Shell腳本中,函數(shù)返回0通常表示成功,返回非0值通常表示某種形式的錯誤或異常情況。
3.位置參數(shù)
位置參數(shù)是指在腳本調用時通過命令行傳遞給腳本的參數(shù)。這些參數(shù)可以通過特殊的變量$0到$9來訪問:
?$0:腳本文件名。這可以用來引用腳本本身的名字。
?$1:第一個參數(shù)。
?$2:第二個參數(shù)。
?…
?$9:第九個參數(shù)。
注意,位置參數(shù)的個數(shù)實際上可以超過9個,但需要使用${10}這樣的語法來訪問第十個及以后的參數(shù)。
4.內置變量
內置變量,用于獲取腳本執(zhí)行過程中的特定信息:
?$#:傳入?yún)?shù)的個數(shù)。這可以幫助腳本確定有多少參數(shù)被傳遞進來。
?$?:上一條命令的退出狀態(tài)。這可以用來檢查上一個命令是否成功執(zhí)行(0表示成功,非0表示失敗)。
?$$:當前Shell的PID(進程ID)。這可以用于與其他進程通信或在日志中標識腳本實例。
?
#!/bin/bash# 輸出腳本文件名和傳入的參數(shù)
echo "Script name: $0"
echo "First argument: $1"
echo "Second argument: $2"# 輸出參數(shù)個數(shù)
echo "Number of arguments: $#"# 檢查上一句命令的執(zhí)行結果
echo "Exit status of last command: $?"# 輸出當前Shell的PID
echo "Current Shell PID: $$"# 拷貝文件
cp /etc/456 ./# 讀取輸入并輸出
read -p "Enter a number: " a
echo "You entered: $a"# 算術運算
b=456
c=$((a + b))
echo "The sum is: $c"
./3.sh /etc/passwd 123
Script name: ./3.sh
First argument: /etc/passwd
Second argument: 123
Number of arguments: 3
Exit status of last command: 0
Current Shell PID: 12345
Enter a number: 123
You entered: 123
The sum is: 579