一提到操作系統(tǒng),我們首先想到的就是windows和linux。Windows以直觀的可視化的方式操作,特別適合在桌面端PC上操作執(zhí)行相應(yīng)的軟件。相比較Windows來(lái)說(shuō),Linux的很多管控都需要用命令來(lái)操作。
Linux命令行方式的操作,特別是在服務(wù)器端編程、管理、運(yùn)維方面,都非常的簡(jiǎn)單、短小、精悍。短短一行組合命令,即可完成在Windows需要各種加工、整合的復(fù)雜高效的功能操作。 不信,下面全都是。
啟動(dòng)網(wǎng)絡(luò)命令
ip addr 查看網(wǎng)卡信息
service network start 啟動(dòng)網(wǎng)卡
service network stop 關(guān)閉網(wǎng)卡
service network restart 重啟網(wǎng)絡(luò)
復(fù)制代碼
pwd命令
pwd命令,查看當(dāng)前目錄的路徑
linux下所有的絕對(duì)路徑都是從根目錄"/"開(kāi)始
/root:是linux下root用戶的根目錄
/home:是linux下其他用戶的默認(rèn)根目錄 (例如:在linux上創(chuàng)建了一個(gè)bow用戶,那么就會(huì)在/home下面生成一個(gè)bow目錄作為bow用戶的根目錄)
/etc:是linux下系統(tǒng)配置文件目錄
/tmp:臨時(shí)文件目錄,所有用戶都可以用
ls命令
ls [參數(shù)] 目錄路徑
ls 表示查看目錄下的文件
ls #表示查看當(dāng)前目錄下的文件
ls -l #表示查看當(dāng)前目錄下的詳細(xì)信息
ls -a #表示查看當(dāng)前目錄下的所有文件(包含隱藏文件)
ls -la #表示查看當(dāng)前目錄下的所有文件(包含隱藏文件)的詳細(xì)信息
ls -lh #h是以適當(dāng)?shù)膯挝粊?lái)顯示文件的大小 ls -lh表示查看當(dāng)前目錄下的文件的詳細(xì)信息,并以合適單位顯示文件大小
ls -l / #表示查看根目錄"/"下文件的詳細(xì)信息
ls /etc #表示查看目錄/etc下的文件
ls --help #查看命令的幫助文檔
--help參數(shù):所有l(wèi)inux上的命令都有,但寫(xiě)法上有如下幾種:
(1)--help
(2)--h
(3)-help
(4)-h
ll命令:它和ls -l命令功能相同,但是不是所有的linux上都默認(rèn)安裝
復(fù)制代碼
cd命令
cd 目錄路徑 #進(jìn)入一個(gè)目錄,目錄路徑可以是絕對(duì)路徑(以/開(kāi)始的路徑都是絕對(duì)路徑),也可以是相對(duì)路徑
相對(duì)路徑:以非/開(kāi)始的路徑,
注意: "."表示當(dāng)前目錄
"…"表示當(dāng)前目錄的上一級(jí)目錄,它可以多個(gè)一起使用
"~"表示當(dāng)前用戶的根目錄 例如:root用戶時(shí),~表示/root目錄 bow用戶時(shí),~表示/home/bow目錄
cd / #表示進(jìn)入系統(tǒng)根目錄
cd usr/ #表示進(jìn)入當(dāng)前目錄下的usr目錄
cd local/ #表示進(jìn)入當(dāng)前目錄下的local目錄
cd ./bin #表示進(jìn)入當(dāng)前目錄下的bin目錄
cd .. #表示進(jìn)入當(dāng)前目錄的上一級(jí)目錄
cd ../.. #表示進(jìn)入當(dāng)前目錄的上級(jí)目錄的上一級(jí)目錄
cd /usr/local/bin #進(jìn)入/usr/local/bin目錄
cd ../etc #表示進(jìn)入和當(dāng)前目錄同級(jí)的etc目錄 #..表示當(dāng)前目錄的上一級(jí)目錄 ../etc表示當(dāng)前目錄上級(jí)目錄下的etc目錄(和當(dāng)前目錄同級(jí))
cd ~ #表示進(jìn)入當(dāng)前用戶的根目錄(cd ~ 和直接執(zhí)行cd后不加目錄的效果相同)
#例如:root用戶進(jìn)入/root目錄,bow用戶進(jìn)入/home/bow目錄
cd ~/data #表示進(jìn)入當(dāng)前用戶根目錄下的data目錄 例如:root用戶則進(jìn)入了/root/data目錄
復(fù)制代碼
mkdir命令
mkdir 目錄路徑 #創(chuàng)建一個(gè)目錄,目錄路徑可以是絕對(duì)路徑也可以是相對(duì)路徑
mkdir data #在當(dāng)前目錄下創(chuàng)建一個(gè)data目錄
mkdir ./dir #在當(dāng)前目錄下創(chuàng)建一個(gè)dir目錄
mkdir /root/tmp #在/root目錄下創(chuàng)建一個(gè)tmp目錄
復(fù)制代碼
mkdir創(chuàng)建目錄時(shí),只有在目錄的上級(jí)目錄存在時(shí),才會(huì)創(chuàng)建
mkdir -p 目錄#創(chuàng)建目錄時(shí),如果沒(méi)有父目錄,會(huì)創(chuàng)建父目錄,遞歸地創(chuàng)建目錄
mkdir -p a/b/c #在當(dāng)前目錄下創(chuàng)建3級(jí)目錄
rmdir命令
rmdir [參數(shù)] 目錄路徑 #刪除目錄命令,rmdir默認(rèn)只能刪除空目錄
rmdir ./dir #刪除當(dāng)前目錄下的dir目錄
rmdir -p 目錄路徑 #表示刪除目錄和它的父目錄(目錄要是一個(gè)空目錄)
rmdir -p a/b/c #刪除當(dāng)前目錄下的a/b/c目錄
復(fù)制代碼
touch命令
touch 命令 #創(chuàng)建文件命令
touch 文件路徑
touch 1.txt #在當(dāng)前目錄下創(chuàng)建一個(gè)1.txt文件
touch /root/2.txt #在/root目錄下創(chuàng)建一個(gè)2.txt文件
復(fù)制代碼
rm命令
rm [參數(shù)] 路徑 #刪除命令
rm 1.txt #刪除當(dāng)前目錄下的1.txt文件,刪除時(shí)會(huì)提示,是否刪除如果輸入y表示刪除,輸入n表示不刪除
rm -f /root/2.txt #-f表示強(qiáng)制刪除,不會(huì)提示,強(qiáng)制刪除/root目錄下的2.txt
rm -r a/ #遞歸的刪除當(dāng)前目錄下a目錄下的所有內(nèi)容
[root@bow ~]# rm -r a/
rm:是否進(jìn)入目錄"a/"? y
rm:是否進(jìn)入目錄"a/b"? y
rm:是否進(jìn)入目錄"a/b/c"? y
rm:是否刪除普通空文件 "a/b/c/3.txt"?y
rm:是否刪除目錄 "a/b/c"?y
rm:是否刪除普通空文件 "a/b/2.txt"?y
rm:是否刪除目錄 "a/b"?y
rm:是否刪除普通空文件 "a/1.txt"?y
rm:是否刪除目錄 "a/"?y
rm -rf a/ #強(qiáng)制刪除當(dāng)前目錄下a目錄及a目錄下的所有內(nèi)容
rm -rf * #刪除當(dāng)前目錄下的所有內(nèi)容
rm -rf a/* #刪除當(dāng)前目錄下a目錄下的所有內(nèi)容
rm -rf *.txt #刪除當(dāng)前目錄下的所有txt文件
rm -rf *s* #刪除當(dāng)前目錄下所有名字中包含s的文件或文件夾
復(fù)制代碼
echo命令
echo #輸出命令,可以輸入變量,字符串的值
echo Hello World #打印Hello World
echo $PATH #打印環(huán)境變量PATH的值,其中$是取變量值的符號(hào),用法:$變量名 或者 ${變量名}
echo -n #打印內(nèi)容但不換行
echo -n Hello World
復(fù)制代碼
>和>>命令
和>>:輸出符號(hào),將內(nèi)容輸出到文件中,>表示覆蓋(會(huì)刪除原文件內(nèi)容) >>表示追加
echo Hello World > 1.txt #將Hello World輸出到當(dāng)前目錄下的1.txt文件
#如果當(dāng)前目錄下沒(méi)有1.txt文件會(huì)創(chuàng)建一個(gè)新文件,
#如果當(dāng)前目錄下有1.txt,則會(huì)刪除原文件內(nèi)容,寫(xiě)入Hello World
echo 1234 >> 1.txt #將1234追加到當(dāng)前目錄下的1.txt中,如果文件不存在會(huì)創(chuàng)建新文件
復(fù)制代碼
通過(guò)>和>>都可以創(chuàng)建文件
文件查看命令
cat 文件路徑 #查看文件的所有內(nèi)容
cat 1.txt #查看當(dāng)前目錄下1.txt的內(nèi)容
cat /root/1.txt #查看/root目錄下的1.txt文件內(nèi)容
復(fù)制代碼
more 文件路徑 #分頁(yè)查看文件內(nèi)容
more linux常用命令.txt #分頁(yè)查看當(dāng)前目錄下linux常用命令.txt文件的內(nèi)容
#按空格或回車,會(huì)繼續(xù)加載文件內(nèi)容,按q退出查看
#當(dāng)加載到文件末尾時(shí),會(huì)自動(dòng)退出查看
less 文件路徑 #分頁(yè)查看文件內(nèi)容
less linux常用命令.txt #分頁(yè)查看文件內(nèi)容,按空格繼續(xù)加載文件,按q退出查看,不會(huì)自動(dòng)退出查看
head [參數(shù)] 文件路徑 #從文件開(kāi)始查看文件
head linux常用命令.txt #查看文件的前10行內(nèi)容
head -n 文件路徑 # n是一個(gè)正整數(shù),表示查看文件的前n行數(shù)據(jù)
head -20 linux常用命令.txt #查看文件的前20行內(nèi)容
復(fù)制代碼
tail [參數(shù)] 文件路徑 #從文件的末尾查看文件內(nèi)容
tail linux常用命令.txt #查看文件的后10行內(nèi)容
tail -n 文件路徑 # n是一個(gè)正整數(shù),表示查看文件的后n行數(shù)據(jù)
tail -15 linux常用命令.txt #查看文件后15行內(nèi)容
tail -f 文件路徑 #動(dòng)態(tài)的查看文件的最后幾行內(nèi)容(查看文件時(shí),等待文件更新,如果文件更新了,會(huì)顯示出新的內(nèi)容)
復(fù)制代碼
tail -f 1.txt #查看文件1.txt的最新內(nèi)容,tail -f 一般用來(lái)查看日志文件 按CTRL+C或才CTRL+Z退出查看
CTRL+C:表示暫停進(jìn)程
CTRL+Z: 表示停止進(jìn)程
復(fù)制代碼
文件編輯命令
vi/vim命令:這兩個(gè)命令在使用上幾乎完全一樣(個(gè)人喜歡vim命令)
安裝vim命令:(安裝是需要網(wǎng)絡(luò)的)
yum -y install vim
復(fù)制代碼
yum命令是centos和red hat系統(tǒng)上使用官方資源包去安裝軟件的命令
yum -y install 軟件名
yum -y remove 軟件名
復(fù)制代碼
查看虛擬機(jī)能不能上外網(wǎng):
ping www.baidu.com
CTRL+C或者CTRL+Z退出
復(fù)制代碼
vim命令總體分為兩類
vim 文件路徑 --進(jìn)入非編輯模式
非編輯模式命令:
yy:復(fù)制光標(biāo)當(dāng)前行
p:粘貼
dd:刪除光標(biāo)當(dāng)前行
$:光標(biāo)跳到當(dāng)前行的行尾
^:光標(biāo)跳到當(dāng)前行的行首
:s/原字符串/新字符串/:替換光標(biāo)當(dāng)前行內(nèi)容
:%s/原字符串/新字符串/g:全文替換 #g表示global i表示ignore忽略大小寫(xiě)
/要查找的內(nèi)容:從光標(biāo)當(dāng)前行向后查找內(nèi)容
/d #在文件中查找d字母
?要查找的內(nèi)容:從光標(biāo)當(dāng)前位置向前查找內(nèi)容
?d #查找文件中的d字母
CTRL+F:向下翻1頁(yè)
CTRL+B:向上翻1頁(yè)
:set nu:顯示文件的行號(hào)
:set nonu: 去掉行號(hào)顯示
u:撤消
**:set ff :顯示文件的格式 #unix表示在unix上的文件 dos表示文件是windows上的文件**
:w :表示保存文件
:q :表示退出vim命令
:wq:保存并退出
:w!:強(qiáng)制保存
:q!:強(qiáng)制退出但不保存
:wq!:強(qiáng)制保存并退出
i:表示進(jìn)入編輯模式,并且光標(biāo)在當(dāng)前行
o:表示進(jìn)入編輯模式,并且光標(biāo)出現(xiàn)的當(dāng)前行的下一行(新行)
復(fù)制代碼
編輯模式命令:
編輯模式下可以能過(guò)方向鍵控制光標(biāo)的位置,并且可以輸入文件到光標(biāo)當(dāng)前位置
ESC:退出編輯模式
復(fù)制代碼
cp命令
cp 拷貝命令
cp [參數(shù)] 原文件路徑 目標(biāo)文件路徑
cp 1.txt a/ #將1.txt文件拷貝到a目錄下
cp 1.txt 2.txt #將1.txt拷貝到2.txt
cp -r a data #-r參數(shù)表示將目錄和目錄下的文件一起拷貝,將a目錄拷貝到data目錄
復(fù)制代碼
scp命令
scp 遠(yuǎn)程拷貝命令,它可以將本地文件拷貝到遠(yuǎn)程服務(wù)器,也可以將遠(yuǎn)程服務(wù)器的文件拷貝到本地,也可以將一臺(tái)服務(wù)器文件拷貝到另一臺(tái)
scp -r 本地文件路徑 用戶名@ip[:port]:遠(yuǎn)程路徑 #將本地文件拷貝到遠(yuǎn)程服務(wù)器
scp -r 2.txt [email protected]:/root/data/ #將本地的2.txt拷貝到192.168.5.105的/root/data目錄下
scp -r 用戶名@ip[:port]:遠(yuǎn)程文件路徑 本地路徑 #將遠(yuǎn)程文件拷貝到本地
scp -r [email protected]:/root/3.bak /root/data #將遠(yuǎn)程的/root/3.bak文件拷貝到本地的/root/data目錄
復(fù)制代碼
scp -r 用戶名@ip[:port]:遠(yuǎn)程文件路徑 用戶名@ip[:port]:遠(yuǎn)程文件路徑 #將文件從一臺(tái)服務(wù)器拷貝到另一臺(tái)服務(wù)器
scp -r [email protected]:/root/tmp [email protected]:/root/data/ #將/root/tmp拷貝到遠(yuǎn)程的/root/data目錄下
復(fù)制代碼
mv命令
mv 移動(dòng)命令,它可以移動(dòng)文件,也可以給文件改名
mv 原文件路徑 目標(biāo)文件路徑 #將文件從一個(gè)地方拷貝到另一個(gè)地方
mv 1.txt 12.txt #將文件1.txt改名為12.txt
mv tmp tmp #將tmp目錄改名為tm
mv 12.txt tm #將文件12.txt移動(dòng)到tm目錄下
復(fù)制代碼
man命令
man 命令,查看命令的命令,查看命令幫助文檔(顯示的信息最詳細(xì))
man mv #查看mv命令的文件
man命令和命令的 --help參數(shù)結(jié)果相似(man命令只適用于linux本身的命令)
復(fù)制代碼
free命令
free命令,它是用來(lái)查看系統(tǒng)內(nèi)存的命令
free #查看系統(tǒng)內(nèi)存使用情況
free -h #查看內(nèi)存使用情況,并且以合適的單位顯示大小
復(fù)制代碼
df命令
df命令,它是查看系統(tǒng)硬盤(pán)的命令
df #查看系統(tǒng)硬盤(pán)使用情況
df -h #查看硬盤(pán)使用,并以合適單位顯示大小
復(fù)制代碼
wc命令
wc 命令,word count的縮寫(xiě),它是查看文件的單詞個(gè)數(shù)
wc [參數(shù)] 文件
wc -l linux常用命令.txt #-l表示line行數(shù) 計(jì)算文件的行數(shù)
wc -w linux常用命令.txt #-w表示word單詞個(gè)數(shù) 計(jì)算文件的單詞個(gè)數(shù)
復(fù)制代碼
ps命令
ps命令,它是查看系統(tǒng)進(jìn)程的命令
ps -aux
ps -ef
jps 查看JAVA進(jìn)程
kill命令
kill 進(jìn)程id #結(jié)束進(jìn)程
root 21752 1.6 0.5 158800 5532 ? Ss 08:34 0:00 sshd: root@pts/0
復(fù)制代碼
kill 21752 #結(jié)束ssh登陸的進(jìn)程
kill -9 進(jìn)程id #強(qiáng)制結(jié)束進(jìn)程
用戶和權(quán)限命令
創(chuàng)建用戶組:
groupadd 用戶組名稱 #創(chuàng)建一個(gè)用戶組
groupadd bows #創(chuàng)建一個(gè)叫bows的用戶組
刪除用戶組:
groupdel 用戶組名稱 #刪除一個(gè)用戶組(刪除時(shí)必須是用戶組下沒(méi)有用戶時(shí))
groupdel bows #刪除用戶組
復(fù)制代碼
創(chuàng)建用戶:
useradd 用戶名 [-g 用戶組名 -G 用戶組名] #創(chuàng)建一個(gè)用戶,-g指定用戶的主用戶組,-G指定用戶的其他用戶組
useradd bow -g bows #創(chuàng)建bow用戶,并指定它的主用戶組是bows
id 用戶名 #查看用戶的id
id bow #查看用戶bow的id
復(fù)制代碼
刪除用戶:
userdel 用戶名 #刪除用戶
userdel bow #刪除用戶bow
復(fù)制代碼
切換用戶:
su 用戶名 #切換用戶,但不加載用戶的環(huán)境變量
su - 用戶名 #切換用戶,并加載用戶的環(huán)境變量(建議使用這種方式切換用戶)
su bow #切換到bow用戶(root用戶切換到其他用戶是不需要輸入密碼的,其他用戶切換到root用戶是要輸入root用戶密碼的,其他用戶之間的切換也是需要密碼)
exit #退出當(dāng)前用戶的登陸
復(fù)制代碼
修改用戶密碼:
passwd 用戶名 #修改用戶密碼
passwd bow #修改bow用戶的密碼
復(fù)制代碼
權(quán)限:
文件類型 用戶權(quán)限 用戶組權(quán)限 其他用戶權(quán)限
- rw- r-- r-- . 1 root
root 5890 3月 23 14:11 linux常用命令.txt
d rwx r-x r-x . 4 root
root 81 3月 24 08:06 data
d表示文件夾 u表示用戶權(quán)限 g表示用戶組權(quán)限 o表示其他用戶權(quán)限
r:表示讀權(quán)限 數(shù)字表示為4
w:表示寫(xiě)權(quán)限 數(shù)字表示為2
x:表示執(zhí)行權(quán)限 數(shù)字表示為1
-:表示沒(méi)有權(quán)限
復(fù)制代碼
chmod 賦權(quán)限命令
chmod 權(quán)限 文件路徑
-rw-r--r--. 1 root root 31 3月 24 07:46 2.txt
chmod u+x 2.txt #給用戶加上執(zhí)行權(quán)限
-rwxr--r--. 1 root root 31 3月 24 07:46 2.txt
chmod g+w 2.txt #給用戶組加寫(xiě)權(quán)限
-rwxrw-r--. 1 root root 31 3月 24 07:46 2.txt
chmod o+x 2.txt #給其他用戶加執(zhí)行權(quán)限
-rwxrw-r-x. 1 root root 31 3月 24 07:46 2.txt
chmod g-w 2.txt #去掉用戶的寫(xiě)權(quán)限
-rwxr--r-x. 1 root root 31 3月 24 07:46 2.txt
復(fù)制代碼
用3個(gè)數(shù)字來(lái)設(shè)置文件或目錄的權(quán)限,第1個(gè)數(shù)字表示用戶權(quán)限,第2數(shù)字表示用戶組權(quán)限,第3個(gè)數(shù)字表示其他用戶權(quán)限
chmod 755 2.txt #設(shè)置用戶的權(quán)限為rwx,用戶組的權(quán)限r(nóng)-x,其他用戶的權(quán)限r(nóng)-x
-rwxr-xr-x. 1 root root 31 3月 24 07:46 2.txt
chmod 766 2.txt #設(shè)置用戶權(quán)限為rwx,用戶組權(quán)限r(nóng)w-,其他用戶的權(quán)限r(nóng)w-
-rwxrw-rw-. 1 root root 31 3月 24 07:46 2.txt
復(fù)制代碼
設(shè)置目錄權(quán)限時(shí),要使用-R參數(shù),保證目錄下的所有文件和目錄的權(quán)限相同
drwxr-xr-x. 4 root root 81 3月 24 08:06 data
chmod -R 777 data #將data目錄以及它下面的所有文件的權(quán)限設(shè)置為rwxrwxrwx
drwxrwxrwx. 4 root root 81 3月 24 08:06 data
復(fù)制代碼
chown 命令,它是更改文件所屬用戶
chown -R 用戶[:用戶組] 目錄或文件
-rwxrw-rw-. 1 root root 31 3月 24 07:46 2.txt
chown bow 2.txt #將2.txt的所屬用戶改為bow
-rwxrw-rw-. 1 bow root 31 3月 24 07:46 2.txt
chown bow:bows 2.txt #將2.txt所屬的用戶改為bow,用戶組改為bows
-rwxrw-rw-. 1 bow bows 31 3月 24 07:46 2.txt
drwxr--r--. 4 root root 81 3月 24 08:06 data
chown -R bow:bows data #將data目錄及它子目錄文件的所屬用戶改為bow,用戶組改為bows
drwxr--r--. 4 bow bows 81 3月 24 08:06 data
復(fù)制代碼
查找命令
find命令,可以根據(jù)文件的時(shí)間,名稱等查找文件
find *.txt #查找txt文件
復(fù)制代碼
grep 命令,查找內(nèi)容
grep cat linux常用命令.txt #在linux常用命令.txt文件中查詢包含cat的行,查找文件內(nèi)容
復(fù)制代碼
| 通道符號(hào),連接兩個(gè)命令的,將前一個(gè)命令的查詢結(jié)果傳給后一個(gè)命令
ps -ef | grep sshd #查看系統(tǒng)中sshd的進(jìn)程
ps -ef | grep java #查看所有java進(jìn)程
grep -v #-v參數(shù)表示查詢不包含查找條件的行
grep -v cat linux常用命令.txt #查找linux常用命令.txt中不包含cat的行
ps -ef | grep sshd | grep -v grep #查詢sshd的進(jìn)程,不包括grep的行
復(fù)制代碼
–了解性查詢命令
who命令 #查詢系統(tǒng)中的用戶(登陸的用戶)
whoami命令 #查看系統(tǒng)當(dāng)前用戶名
whereis命令 #查看系統(tǒng)安裝的某個(gè)軟件的路徑
whereis Python #查看python的安裝路徑
which 命令 #查找軟件的可執(zhí)行文件路徑
which python #查看python可執(zhí)行文件路徑
復(fù)制代碼
壓縮命令
安裝zip和unzip命令:
yum -y install zip unzip
復(fù)制代碼
zip壓縮命令
zip 壓縮文件名 要壓縮的文件路徑
zip 2.zip 2.txt #將2.txt壓縮到2.zip中
zip data.zip data #只會(huì)壓縮文件夾,不會(huì)壓縮文件夾下的內(nèi)容
zip da.zip da/* #壓縮文件夾和文件夾內(nèi)的文件(壓縮文件夾和它的下一級(jí)文件)
zip -r data.zip date #-r表示遞歸地將文件夾及它的子目錄文件全部壓縮
復(fù)制代碼
unzip解壓命令
unzip 壓縮文件路徑
unzip 2.zip #將2.zip壓縮包解壓到當(dāng)前目錄下
unzip -l 壓縮文件名 #不解壓文件,查看壓縮包內(nèi)的文件
unzip -l da.zip #查看da.zip壓縮文件中包含的文件
unzip da.zip -d 目標(biāo)目錄 #將壓縮文件解壓到指定目錄
unzip da.zip -d tm/ #將壓縮文件da.zip解壓到tm目錄下
復(fù)制代碼
tar命令,用來(lái)壓縮和解壓縮.tar和.tar.gz包
壓縮.tar包:
tar cvf 壓縮文件名 要壓縮的文件或目錄
tar cvf 2.tar 2.txt #將2.txt壓縮為2.tar包
tar cvf data.tar data #將data目錄夸張到data.tar包中
復(fù)制代碼
解壓.tar包:
tar xvf 壓縮文件名 [-C 指定解壓目錄](méi)
tar xvf 2.tar #將2.tar解壓到當(dāng)前目錄
tar xvf 2.tar -C a/ #將2.tar解壓到a目錄
tar xvf data.tar #解壓data.tar到當(dāng)前目錄
復(fù)制代碼
壓縮.tar.gz包:
tar zcvf 壓縮文件名 要壓縮的文件
tar zcvf tm.tar.gz tm #將當(dāng)前目錄下的tm目錄壓縮為tm.tar.gz
復(fù)制代碼
解壓.tar.gz包:
tar zxvf 壓縮文件名
tar zxvf tm.tar.gz #將tm.tar.gz解壓到當(dāng)前目錄
gzip命令,將文件壓縮為.gz包(可以用來(lái)壓縮.tar文件)
gzip 要壓縮的文件
gzip 2.txt #將2.txt壓縮為2.txt.gz
gzip data.tar #將data.tar壓縮為data.tar.gz
復(fù)制代碼
source命令
source 文件路徑 #讓配置文件修改結(jié)果立即生效,(還可以在shell腳本中引用其他的shell腳本)
/etc/profile #linux上的系統(tǒng)環(huán)境變量配置文件
source /etc/profile #將系統(tǒng)環(huán)境變量生效
復(fù)制代碼
export命令
export 導(dǎo)入全局變量(環(huán)境變量)
export 變量名=變量值
export 變量名
變量的賦值:
變量名=變量值
復(fù)制代碼
<<EOF
<<EOF … EOF:將<<EOF和EOF之間的多行內(nèi)容傳給前面的命令,
其中EOF可以是任意字符串,但約定都使用EOF
[root@bow ~]# cat <<EOF
> HELLO
> WORD
> JOB
> SMITH
> EOF
HELLO
WORD
JOB
SMITH
復(fù)制代碼
<<EOF是shell腳本中使用sqlplus的基礎(chǔ)
[root@bow ~]# cat <<A
> 11234
> 1234
> 1234
> 1253
> 1253
> A
11234
1234
1234
1253
1253
復(fù)制代碼
注意:EOF必須頂行寫(xiě)
[root@bow ~]# cat <<EOF
> ASDF
> EOF
> ASDFASDF
> EOF
ASDF
EOF
ASDFASDF
復(fù)制代碼
cut命令
cut 截取命令
-f 參數(shù),指定列
-d 參數(shù)指定列和列之間的分隔符,默認(rèn)的分隔符是t(行向制表符)
cut -f 1 1.txt #取1.txt文件中的第1列內(nèi)容(列分隔符默認(rèn)為t)
cut -f 2 1.txt #取1.txt文件中的第2列內(nèi)容
cut -f 1 -d ',' 3.txt #取3.txt文件中的第1列(列分隔符為,)
cut -f 2 -d ',' 3.txt #取3.txt第2列
復(fù)制代碼
wc -l linux常用命令.txt | cut -f 1 -d ’ ’ #取文件linux常用命令.txt的行數(shù)(分隔符是空格)
[root@bow ~]# cut -f 1 -d ',' <<EOF
> A,B,C
> D,E,F
> EOF
A
D
復(fù)制代碼
printf命令
%ns 輸出字符串,n是數(shù)字,指代輸出幾個(gè)字符
%ni 輸出整數(shù)。n是數(shù)字,指代輸出幾個(gè)數(shù)字
%m.nf 位數(shù)和小數(shù)位數(shù)。例如:%8.2f 代表輸出8位數(shù),其中2位是小數(shù),6位是整數(shù)
復(fù)制代碼
printf 格式字符串 內(nèi)容
[root@bow ~]# printf '%s,%s,%sn' abc def ghj klj klo qer #一行單詞第三個(gè)打印成一行,單詞和單詞之間用逗號(hào)隔開(kāi)
abc,def,ghj
klj,klo,qer
[root@bow ~]# printf '%s %sn' $(cat 4.txt) #將文件4.txt中的一行內(nèi)容中的單詞劃分為兩個(gè)一組打印 cat 合作查看文件內(nèi)容 $(cat 4.txt)表示取cat命令的執(zhí)行結(jié)果
empno ename
job sal
comm depno
5.txt內(nèi)容
A B C D E
F G H
[root@bow ~]# printf '%s,%sn' $(cat 5.txt)
A,B
C,D
E,F
G,H
[root@bow ~]# printf '%5.2fn' 12.1 #%5.2f表示輸出一個(gè)小數(shù),數(shù)的長(zhǎng)度是5,其中有兩個(gè)小數(shù)
12.10
[root@bow ~]# printf '%5.2fn' 121234.116134 #如果輸出的值最大長(zhǎng)度超出5,那么整數(shù)部分不變量,小數(shù)部分會(huì)按照四舍五入的方法保存兩位
121234.12
[root@bow ~]# printf '%in' 1234.5678 #%i只取數(shù)字的整數(shù)部分
-bash: printf: 1234.5678: 無(wú)效數(shù)字
1234
復(fù)制代碼
awk命令
awk 命令字符串 要處理的內(nèi)容
[root@bow ~]# awk '{printf $1 "n"}' 1.txt #printf 打印 $n 表示取第幾列 $1表示取第1列
Hello
smith
Tomcat
復(fù)制代碼
awk ‘{print $2}’ 1.txt #取1.txt的第2列,print和printf功能相同是打印,比printf多一個(gè)換行功能
[root@bow ~]# awk '{printf $1 ","}' 1.txt
Hello,smith,tomcat,[root@bow ~]#
[root@bow ~]# awk '{printf $1}' 1.txt
Hellosmithtomcat
[root@bow ~]# awk '{printf $1 "v"}' 1.txt
Hello
smith
tomcat
[root@bow ~]# awk '{printf $1 ","}' 1.txt
Hello,smith,tomcat,
復(fù)制代碼
sed命令
sed 參數(shù) 命令 要處理的內(nèi)容
-n 一般sed命令會(huì)把所有數(shù)據(jù)都輸出到屏幕。如果加入此選擇,則只會(huì)把經(jīng)過(guò)sed命令處理的行輸出到屏幕。
-e 允許對(duì)輸入數(shù)據(jù)應(yīng)用多條sed命令編輯
-i 用sed的修改結(jié)果直接修改讀取的數(shù)據(jù)的文件,而不是修改屏幕輸出
[root@bow ~]# sed '2p' 1.txt #查詢第2行
Hello world
smith 18
smith 18
tomcat etl
[root@bow ~]# sed -n '2p' 1.txt
smith 18
[root@bow ~]# sed -i 's/18/20/g' 1.txt 使用sed命令修改1.txt內(nèi)容,將1.txt中18替換為20
[root@bow ~]# cat 1.txt
Hello world
smith 20
tomcat etl
a 追加,在當(dāng)前行后添加一行或多行。添加多行時(shí)除最后一行外,每行末尾需要用""代表數(shù)據(jù)未完結(jié)。
d 刪除,刪除指定的
p 打印,輸出指定的行
[root@bow ~]# sed -i '2a !' 1.txt #在第2行后面追加一行 !
[root@bow ~]# cat 1.txt
Hello world
smith 20
!
tomcat etl
[root@bow ~]# sed -i '3d' 1.txt #刪除文件的第3行內(nèi)容
[root@bow ~]# cat 1.txt
Hello world
smith 20
tomcat etl
[root@bow ~]# vim 6.txt
[root@bow ~]# cat 6.txt
abcd/home/bow
if ad
-e /home/bow
abcd/home/bow
if ad
-e /home/bow
abcd/home/bow
if ad
-e /home/bow
#將6.txt文件中的/home/bow修改為/user/bw
#注意:替換時(shí),的符號(hào)是根據(jù)/來(lái)判斷 s/原字符串/目標(biāo)字符串/g 如果原字符串或新的字符串中有/時(shí),需要使用來(lái)轉(zhuǎn)義
# 錯(cuò)誤寫(xiě)法:s//home/bow//user/bw/g 正確寫(xiě)法 s//home/bow//user/bw/g
[root@bow ~]# sed -i 's//home/bow//user/bw/g' 6.txt
[root@bow ~]# cat 6.txt
abcd/user/bw
if ad
-e /user/bw
abcd/user/bw
if ad
-e /user/bw
abcd/user/bw
if ad
-e /user/bw
復(fù)制代碼
注意:linux中字符串的下標(biāo)是從0開(kāi)始的
service命令
service服務(wù)命令
ervice 服務(wù)名 [命令]
命令:enable|disable|start|stop|restart|status
start:啟動(dòng)服務(wù)
stop:關(guān)閉服務(wù)
restart:重啟服務(wù)
status:查看服務(wù)狀態(tài)
service network start #遍歷網(wǎng)絡(luò)
service network stop #關(guān)閉網(wǎng)絡(luò)
service network restart #重啟網(wǎng)絡(luò)
service network status #查看網(wǎng)絡(luò)狀態(tài)
service iptables start #centos6及6以下版本,啟動(dòng)防火墻的命令
service iptables stop #centos6及6以下版本,關(guān)閉防火墻(注意,關(guān)閉防火墻,只是臨時(shí)關(guān)閉,下次重啟之后防火墻依然會(huì)啟動(dòng))
service iptables restart #重啟防火墻
service MySQLd start #啟動(dòng)mysql數(shù)據(jù)庫(kù)
service mysqld restart #啟動(dòng)mysql數(shù)據(jù)庫(kù)
service mysqld stop #關(guān)閉mysql數(shù)據(jù)庫(kù)
復(fù)制代碼
chkconfig命令
chkconfig命令檢查,設(shè)置系統(tǒng)的各種服務(wù)
chkconfig 服務(wù)名 on|off #on表示打開(kāi)服務(wù) off表示關(guān)閉服務(wù) 通過(guò)chkconfig設(shè)置的服務(wù)是永久生效
centos6及以下版本永久關(guān)閉或打開(kāi)防火墻
chkconfig iptables on #打開(kāi)防火墻
chkconfig iptables off #永久地關(guān)閉防火墻
復(fù)制代碼
防火墻:
centos7以上:
systemctl start firewalld #啟動(dòng)防火墻
systemctl stop firewalld #關(guān)閉防火墻(臨時(shí)關(guān)閉)
systemctl status firewalld #查看防火墻狀態(tài)
systemctl disable firewalld #永久關(guān)閉防火墻
systemctl enable firewalld #打開(kāi)防火墻(不是啟動(dòng)防火墻)
通過(guò)firewall-cmd來(lái)配置防火墻
復(fù)制代碼
centos6及以下:
防火墻配置文件:/etc/iptables,這個(gè)文件可以詳細(xì)的配置防火墻,如果沒(méi)有/etc/iptables文件可以使用iptables save可以生成該文件
iptables 命令配置防火墻
service iptables start #centos6及6以下版本,啟動(dòng)防火墻的命令
service iptables stop #centos6及6以下版本,關(guān)閉防火墻(注意,關(guān)閉防火墻,只是臨時(shí)關(guān)閉,下次重啟之后防火墻依然會(huì)啟動(dòng))
service iptables restart #重啟防火墻
復(fù)制代碼
環(huán)境變量配置文件
/etc/profile是linux系統(tǒng)上配置系統(tǒng)環(huán)境變量的一個(gè)文件(針對(duì)所有用戶的配置)
用戶根目錄下的.bash_profile:是用戶環(huán)境變量的配置(針對(duì)當(dāng)前用戶有效)
su - 用戶名 #切換用戶時(shí),會(huì)加載用戶根目錄下的.bash_profile環(huán)境變量配置文件
su 用戶名 #不會(huì)加載.bash_profile
復(fù)制代碼
網(wǎng)絡(luò)配置文件
網(wǎng)卡配置文件目錄:/etc/sysconfig/network-scripts
網(wǎng)卡配置文件名都是以ifcfg-開(kāi)頭,其中ifcfg-lo是本地網(wǎng)卡,是不需要配置的
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
#網(wǎng)卡類型
TYPE="Ethernet"
#協(xié)議 dhcp表示:ip地址是自動(dòng)分配的,static表示靜態(tài)ip(手動(dòng)配置ip地址),none表示沒(méi)有協(xié)議(也是需要手動(dòng)配置ip地址)
BOOTPROTO="dhcp"
DEFROUTE="yes"
#網(wǎng)卡名稱
NAME="enp0s3"
UUID="deed3fd2-bd67-459b-8a49-ef0dd6e575a2"
DEVICE="enp0s3"
#配置網(wǎng)卡是否隨機(jī)啟動(dòng),yes:表示隨機(jī)啟動(dòng),no:表示需要手動(dòng)啟動(dòng)
ONBOOT="yes"
#配置靜態(tài)ip,BOOTPROTO必須是static或none
#ip地址配置
IPADDR=192.168.1.106
#配置子網(wǎng)掩碼
NETMASTER=255.255.255.0
#配置網(wǎng)關(guān)
GATEWAY=192.168.1.1
#配置DNS:域名解析服務(wù)器可以配置多個(gè)
DNS1=192.168.1.1
DNS2=192.168.5.1
復(fù)制代碼
修改完網(wǎng)卡文件之后,_重啟網(wǎng)絡(luò)_即可
sudo命令
sudo命令,它在非root用戶下,去調(diào)用一些root用戶的命令,或者修改一些文件
sudo命令是需要配置的,sudo的配置文件是/etc/sudoers
#給bow用戶配置sudo權(quán)限
[root@bow ~]# vim /etc/sudoers
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
#給bow用戶設(shè)置sudo命令權(quán)限
bow ALL=(ALL) ALL
復(fù)制代碼
sudo命令的使用:
sudo 命令
[root@bow ~]# su - bow
上一次登錄:四 3月 26 07:30:53 CST 2020pts/0 上
[bow@bow ~]$ sudo vim /etc/profile
復(fù)制代碼
ping命令
ping命令查看網(wǎng)絡(luò)連通性的命令和windows上的功能一樣
ping ip(0.0.0.100)
復(fù)制代碼
ifconfig命令
ifconfig命令屬于net-tools軟件包,使用前需要安裝net-tools
net-tools的安裝:
yum -y install net-tools
ifconfig查看ip地址
復(fù)制代碼
netstat命令
netstat命令也屬于net-tools軟件包
netstat -tulp | grep 1521 #查看oracle監(jiān)聽(tīng)器程序是否正常啟動(dòng)
復(fù)制代碼
rpm命令
rpm是linux上的安裝命令,用來(lái)安裝.rpm格式的安裝包
rpm -ivh .rpm文件的路徑 #表示安裝軟件包
rpm -qa #查看已安裝的軟件
rpm -qa | grep mysql #查看已經(jīng)安裝的mysql軟件包
rpm -e --nodeps 安裝包名 #卸載軟件包 -e表示卸載 --nodeps表示不理會(huì)的依賴關(guān)系
復(fù)制代碼
本文分享自華為云社區(qū)《linux常用命令大全》
原文作者:HW-QGS






