管道命令符 " | " 的作用是將前一個(gè)命令的標(biāo)準(zhǔn)輸出當(dāng)作后一個(gè)命令的標(biāo)準(zhǔn)輸入,格式為"命令A(yù)|命令B"。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到永嘉網(wǎng)站設(shè)計(jì)與永嘉網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋永嘉地區(qū)。
例如:
搜索rsyslogd進(jìn)程: $ ps -ef | grep rsyslogd
用反野形式查看/etc 目錄中有哪些文件: $ ls -l /etc/ | more
bash解釋器支持多種文本通配符,包括:
我們之前在學(xué)文本查詢搜索命令時(shí)就用到了通配符,例如,在 /etc 目錄下搜索所有的以host開(kāi)頭的文件:
$ find /etc -name "host*"
另外,bash解釋器還支持很多的特殊字符擴(kuò)展:
例如:
先定義名稱為PRICE的變量值為5
$ PRICE=5
輸出“價(jià)格是5”:
輸出“價(jià)格是$5”,但因?yàn)槊涝?hào)與代表變量取值的$符號(hào)沖突,所以需要用到轉(zhuǎn)義字符:
使用單引號(hào),變量將不再被取值:
執(zhí)行 uname -a 后可以查看到本機(jī)內(nèi)核的版本與架構(gòu)信息(反引號(hào)里面的命令會(huì)被執(zhí)行):
1、ls命令
cd /root
ls #顯示當(dāng)前目錄下所有的非隱藏文件
ls -a #顯示當(dāng)前目錄下所有文件,包含隱藏文件
ls -l #顯示當(dāng)前目錄下所有的非隱藏文件的詳情
ls -al #顯示當(dāng)前目錄下所有文件,包含隱藏文件 的詳情
ls -lh #以列表形式顯示當(dāng)前目錄下所有的非隱藏文件的大小(K M T)
ls -alh #以列表形式顯示所有文件,包含隱藏文件的文件大小(K M T)
常用的組合:
ls
ll #等價(jià)于 ls -l
ls /etc #顯示/etc目錄下的文件
2:pwd命令
用來(lái)顯示當(dāng)前所在的路徑
絕對(duì)路徑: 從/目錄開(kāi)始的路徑
/root
/etc/sysconf
/opt/server/data-integration/libswt/win64
相對(duì)路徑: 相對(duì)當(dāng)前的路徑
3、mkdir命令
cd /root
mkdir mytest #在當(dāng)前目錄創(chuàng)建文件夾
mkdir -p 111/222/333 #一次創(chuàng)建多級(jí)文件夾
mkdir /root/mydemo #使用絕對(duì)路徑來(lái)創(chuàng)建
mkdir mydemo2 #使用相對(duì)對(duì)路徑來(lái)創(chuàng)建
4、rm命令
這個(gè)命令既可以刪除文件,也可以刪除目錄
刪文件:
cd /root
rm a.txt #刪除時(shí),會(huì)給出提醒確認(rèn),輸入y刪除,n不刪除
rm -f b.txt #強(qiáng)制刪除 等價(jià)于 rm -f /root/b.txt
rm ../dir2/b.txt
touch a.java b.java c.java
rm a.java b.java c.java #一次可以刪除多個(gè)文件
rm *.java -fr #可以刪除當(dāng)前目錄下的所有.java文件
cd dir
rm * -fr #刪除當(dāng)前目錄的所有內(nèi)容
刪目錄:
rm -r 111 #刪除目錄,依次提醒刪除
rm -rf mytest #強(qiáng)制刪除 等價(jià)于 rm mytest -fr
常用組合:
rm -fr 文件或目錄
5、cd命令
cd 命令可以進(jìn)入一個(gè)目錄,類似于對(duì)windows上的文件夾進(jìn)行雙擊
cd #直接cd 可以從任何一個(gè)目錄回到/root目錄
cd /root #進(jìn)入root目錄
cd /opt/server/data-integration/system/
cd .. #回到上一級(jí)目錄
cd ../.. #回到上上一級(jí)目錄
cd - #可以在最近的兩次目錄之間切換
cd /root
mdkir dir1 dir2
cd dir1
cd ../dir2 #使用相對(duì)路徑 /中國(guó)/廣東省/深圳市/寶安區(qū)/留仙二路/78號(hào)
6、歷史命令和table補(bǔ)全
使用上下方向鍵可以找出歷史命令
table鍵:
cd /opt/ #兩次table可以列出/opt目錄下所有的文件和子目錄
cd /opt/s #一次table可以自動(dòng)補(bǔ)全目錄內(nèi)容,前提是/opt目錄下只有一個(gè)s開(kāi)頭的目錄
7、touch命令
cd /root
touch a.java #在當(dāng)前目錄創(chuàng)建a.txt文件
touch b.java c.java #創(chuàng)建多個(gè)文件
touch /root/d.java #通過(guò)絕對(duì)路徑創(chuàng)建
8、mv命令
移動(dòng):
1、mv 文件 目錄 #將文件移動(dòng)到目錄中區(qū)
cd /root/dir1
touch a.txt
mv a.txt /root/dir2 #等價(jià)于 mv a.txt ../dir2
2、 mv 目錄1 目錄2 #將目錄1移動(dòng)到目錄2下面(前提是目錄2必須存在)
cd /root
mv dir2 dir1 #將dir2移動(dòng)到dir1下面
重命名:
1、mv 文件1 文件2 #給文件重命名(文件2不能存在)
cd /root
mv a.txt aaa.txt #將a.txt 重命名為aaa.txt
2、mv 目錄1 目錄2 #給目錄重命名(目錄2不能存在)
cd /root
mv dir1 dirx #將dir1重命名為dirx
9、cat命令
顯示文件內(nèi)容
cd /root
cat user.txt
10、cp命令
復(fù)制文件
cd /root
cp user.txt user2.txt
cp user.txt /opt/ #將當(dāng)前目錄的user.txt 復(fù)制到/opt目錄,文件名保持不變
cp user.txt /opt.user2.txt #將當(dāng)前目錄的user.txt 復(fù)制到/opt目錄,文件名改為user2.txt
cp /opt/server/data-integration/pan.sh ./ #將指定目錄里的文件復(fù)制到當(dāng)前目錄(.后邊的/可以去掉)
cp /opt/server/data-integration/pan.sh ./dirx #將指定目錄里的文件復(fù)制到當(dāng)前目錄下的dirx目錄(.后邊的/比可以去掉)
cp /opt/server/data-integration/pan.sh /root/dirx #作用同上
11、解壓和壓縮
Linux的壓縮包后綴一般是: .tar.gz
解壓:
.tar.gz
將snappy-1.1.1.tar.gz上傳到/root/dir1目錄
tar -zxvf snappy-1.1.1.tar.gz #默認(rèn)解壓到當(dāng)前目錄
tar -xvf snappy-1.1.1.tar.gz #默認(rèn)解壓到當(dāng)前目錄
tar -xvf snappy-1.1.1.tar.gz -C /opt #將壓縮包解壓到/opt目錄
.zip格式
unzip mysql-connector-java-8.0.13.zip #默認(rèn)解壓到當(dāng)前目錄
unzip -d /opt mysql-connector-java-8.0.13.zip #解壓到指定目錄
壓縮:
.tar.gz
tar -czvf snappy-1.1.1.tar.gz snappy-1.1.1 #將snappy-1.1.1文件夾進(jìn)行打包壓縮
tar -czvf /root/dir/snappy-1.1.1.tar.gz /opt/server/snappy-1.1.1
.zip格式
zip -r mysql-connector-java-8.0.13.zip mysql-connector-java-8.0.13/
12、find命令
用來(lái)實(shí)現(xiàn)文件的查找
find / -name 'a.txt' #從/目錄開(kāi)始查找a.txt文件
find / -name 'ins*' #從/目錄開(kāi)始查找以ins開(kāi)頭的文件
find / -type f -size +100M #查找/目錄下文件大小大于100M的文件
13、grep命令
grep lang anaconda-ks.cfg #從anaconda-ks.cfg文件中查找包含lang的內(nèi)容
14、ps命令
ps #查看依賴終端的進(jìn)程
ps -ef #查看Linux系統(tǒng)中所有的進(jìn)程
15、kill命令
kill -9 進(jìn)程的pid #每次啟動(dòng)進(jìn)程時(shí),pid會(huì)發(fā)生變化,但是進(jìn)程運(yùn)行期間pid不會(huì)變化
16、管道 |
管道就是把前邊命令的結(jié)果作為后邊命令的輸入
ps -ef | grep mysql #查找和mysql相關(guān)的進(jìn)程
ll /etc | grep java #在/etc目錄中查找java相關(guān)的文件
17、用戶的操作
用戶創(chuàng)建和密碼設(shè)置
useradd itheima #創(chuàng)建新用戶itheima
passwd itheima #設(shè)置用戶itheima密碼
用戶刪除
userdel -r itheima #刪除用戶itheima
18、文件的權(quán)限
所屬用戶: root 文件的創(chuàng)建者
所屬用戶組: root 和文件創(chuàng)建者在一個(gè)組的用戶
其他用戶: itcast 既不是文件創(chuàng)建者,也和文件創(chuàng)建者不在同一組
r: 可讀
w:可寫(xiě)
x: 可執(zhí)行
chmod命令:
方式1:
chmod u+rw a.txt #在所屬用戶之前的權(quán)限基礎(chǔ)上添加可讀和可寫(xiě)權(quán)限
chmod u=rw a.txt #將所屬用戶的權(quán)限直接修改為可讀,可寫(xiě)
chmod +x #給所屬用戶,所屬用戶組和其他用戶全部加上可執(zhí)行權(quán)限
方式2:
chmod 777 a.txt #給所有用戶加上所有權(quán)限
19、clear命令
用來(lái)清屏
快捷鍵: ctrl + l
20、history命令
用來(lái)查看所有的歷史命令
21:vi編輯器的使用
vi a.txt #打開(kāi)a.txt文件
vim a.txt #vim是vi的增強(qiáng)
22、網(wǎng)絡(luò)管理命令
hostname :查看主機(jī)名
修改主機(jī)名: /etc/hostname
ifconfig :查看ip地址
修改ip地址: /etc/sysconfig/network-scripts/ifcfg-ens33
服務(wù)問(wèn)題:
service network restart
學(xué)習(xí)管道之前我們先了解一下linux的命令執(zhí)行順序
通常情況下,我們?cè)诮K端只能執(zhí)行一條命令,然后按下回車(chē)執(zhí)行,那么如何執(zhí)行多條命令呢?
管道命令使用 | 作為界定符號(hào),管道命令與上面說(shuō)的連續(xù)執(zhí)行命令不一樣。
通過(guò)管道將 ls -al 的輸出作為 下一個(gè)命令 less 的輸入,方便瀏覽。
ps:cut在處理多空格相連的數(shù)據(jù)時(shí),比較吃力。
sort
如果tee后接的文件已存在,內(nèi)容會(huì)被覆蓋掉,加上 -a參數(shù)則會(huì)累加
col經(jīng)常被用于將 man page 轉(zhuǎn)存為純文本文件
split:顧名思義,講一個(gè)大文件依據(jù)文件大小或行數(shù)切割成為小文件
管道不支持像,ls mv cp 等,
如果要用到這些命令,就要在管道后加參數(shù):xarg
如:which touch | xarg ls -la 就行了。