Ctrl + s:在終端下是有特殊用途的,那就是暫停該終端
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供海曙企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、HTML5建站、小程序制作等業(yè)務(wù)。10年已為海曙眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
Ctrl + q 退出這種狀態(tài),讓終端繼續(xù)運(yùn)行
下面隨便提一下其它幾個(gè)特殊按鍵:
Ctrl + c 中止當(dāng)前正在執(zhí)行的程序。
Ctrl + d 相當(dāng)于exit命令,退出當(dāng)前會(huì)話。
Ctrl + z 將當(dāng)前運(yùn)行的程序放到后臺(tái)運(yùn)行。與運(yùn)行時(shí)加 類似。
Tab 鍵 自動(dòng)補(bǔ)全命令。
字符串判斷
str1 = str2當(dāng)兩個(gè)串有相同內(nèi)容、長(zhǎng)度時(shí)為真
str1 != str2 當(dāng)串str1和str2不等時(shí)為真
-n str1 當(dāng)串的長(zhǎng)度大于0時(shí)為真(串非空)
-z str1 當(dāng)串的長(zhǎng)度為0時(shí)為真(空串)
str1 當(dāng)串str1為非空時(shí)為真
2、數(shù)字的判斷
int1 -eq int2兩數(shù)相等為真
int1 -ne int2兩數(shù)不等為真
int1 -gt int2int1大于int2為真
int1 -ge int2int1大于等于int2為真
int1 -lt int2int1小于int2為真
int1 -le int2int1小于等于int2為真
3 文件的判斷
-r file 用戶可讀為真
-w file 用戶可寫為真
-x file 用戶可執(zhí)行為真
-f file 文件為正規(guī)文件為真
-d file 文件為目錄為真
-c file 文件為字符特殊文件為真
-b file 文件為塊特殊文件為真
-s file 文件大小非0時(shí)為真
-t file 當(dāng)文件描述符(默認(rèn)為1)指定的設(shè)備為終端時(shí)為真
3、復(fù)雜邏輯判斷
-a 與
-o 或
! 非
EXAMPLE:
[ -a FILE ] 如果 FILE 存在則為真。
[ -b FILE ] 如果 FILE 存在且是一個(gè)塊特殊文件則為真。
[ -c FILE ] 如果 FILE 存在且是一個(gè)字特殊文件則為真。
[ -d FILE ] 如果 FILE 存在且是一個(gè)目錄則為真。
[ -e FILE ] 如果 FILE 存在則為真。
[ -f FILE ] 如果 FILE 存在且是一個(gè)普通文件則為真。
[ -g FILE ] 如果 FILE 存在且已經(jīng)設(shè)置了SGID則為真。
[ -h FILE ] 如果 FILE 存在且是一個(gè)符號(hào)連接則為真。
[ -k FILE ] 如果 FILE 存在且已經(jīng)設(shè)置了粘制位則為真。
[ -p FILE ] 如果 FILE 存在且是一個(gè)名字管道(F如果O)則為真。
[ -r FILE ] 如果 FILE 存在且是可讀的則為真。
[ -s FILE ] 如果 FILE 存在且大小不為0則為真。
[ -t FD ] 如果文件描述符 FD 打開且指向一個(gè)終端則為真。
[ -u FILE ] 如果 FILE 存在且設(shè)置了SUID (set user ID)則為真。
[ -w FILE ] 如果 FILE 如果 FILE 存在且是可寫的則為真。
[ -x FILE ] 如果 FILE 存在且是可執(zhí)行的則為真。
[ -O FILE ] 如果 FILE 存在且屬有效用戶ID則為真。
[ -G FILE ] 如果 FILE 存在且屬有效用戶組則為真。
[ -L FILE ] 如果 FILE 存在且是一個(gè)符號(hào)連接則為真。
[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read則為真。
[ -S FILE ] 如果 FILE 存在且是一個(gè)套接字則為真。
[ FILE1 -nt FILE2 ] 如果 FILE1 has bee more recently than FILE2, or 如果 FILE1 exists and FILE2 does not則為真。
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則為真。
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的設(shè)備和節(jié)點(diǎn)號(hào)則為真。
[ -o OPTIONNAME ] 如果 shell選項(xiàng) “OPTIONNAME” 開啟則為真。
[ -z STRING ] “STRING” 的長(zhǎng)度為零則為真。
[ -n STRING ] or [ STRING ] “STRING” 的長(zhǎng)度為非零 non-zero則為真。
[ STRING1 == STRING2 ] 如果2個(gè)字符串相同。 “=” may be used instead of “==” for strict POSIX compliance則為真。
[ STRING1 != STRING2 ] 如果字符串不相等則為真。
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ì)路徑: 從/目錄開始的路徑
/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開頭的目錄
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' #從/目錄開始查找a.txt文件
find / -name 'ins*' #從/目錄開始查找以ins開頭的文件
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:可寫
x: 可執(zhí)行
chmod命令:
方式1:
chmod u+rw a.txt #在所屬用戶之前的權(quán)限基礎(chǔ)上添加可讀和可寫權(quán)限
chmod u=rw a.txt #將所屬用戶的權(quán)限直接修改為可讀,可寫
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 #打開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ù)問題:
service network restart
sed命令行格式:sed [options] 'command' file(s)
options常用選項(xiàng):
-n或--quiet或——silent:僅顯示script處理后的結(jié)果;
-e:以選項(xiàng)中的指定的script來(lái)處理輸入的文本文件;
-f:以選項(xiàng)中指定的script文件來(lái)處理輸入的文本文件;
-r∶sed 的動(dòng)作支援的是延伸型正規(guī)表示法的語(yǔ)法;
-i∶直接修改讀取的檔案內(nèi)容,而不是由螢?zāi)惠敵?
-h或--help:顯示幫助;
-V或--version:顯示版本信息。
Command常用命令:
a:新增,a 的后面可以接字符串,而這些字符串會(huì)在新的一行出現(xiàn)(目前的下一行);
c:取代,c 的后面可以接字符串,這些字符串可以取代 n1.n2 之間的行;
d:刪除,d 后面通常不接任何字符串;
i:插入,i 的后面可以接字符串,而這些字符串會(huì)在新的一行出現(xiàn)(目前的上一行);
p:列印,亦即將某個(gè)選擇的資料印出。通常 p 會(huì)與參數(shù) sed -n 一起運(yùn)作;
s:取代,可以直接進(jìn)行取代的工作,通常與正規(guī)表達(dá)式搭配使用。
實(shí)例說(shuō)明:
新增操作:a命令
sed '/^bird/a\test' file將test追加到 以bird開頭的行后面
刪除操作:d命令
sed '/^$/d' file #刪除空白行;
sed '2d' file #刪除第二行;
sed '2.$d' file #刪除第2行到最后一行;
sed '$d' file #刪除最后一行;
sed '/^bird/'d file #刪除所有開頭是bird的行;
插入操作:i命令
sed -i '3i\bird ' bird.conf #在bird.conf文件第3行之前插入bird
替換文本中的字符串:s命令
sed 's/bird/birds/' file #將文本中的bird替換成birds;
sed -i 's/ bird / birds /g' file #將file文件中每一行的第一個(gè)bird替換為birds;