1. 程式人生 > >來不及解釋!Linux常用命令大全,先收藏再說

來不及解釋!Linux常用命令大全,先收藏再說

摘要:Linux常用命令,很適合你的。

一提到作業系統,我們首先想到的就是windows和Linux。Windows以直觀的視覺化的方式操作,特別適合在桌面端PC上操作執行相應的軟體。相比較Windows來說,Linux的很多管控都需要用命令來操作。

Linux命令列方式的操作,特別是在伺服器端程式設計、管理、運維方面,都非常的簡單、短小、精悍。短短一行組合命令,即可完成在Windows需要各種加工、整合的複雜高效的功能操作。 不信,下面全都是。

啟動網路命令

ip addr 檢視網絡卡資訊

service network start 啟動網絡卡
service network stop 關閉網絡卡
service network restart 重啟網路

pwd命令

pwd命令,檢視當前目錄的路徑

linux下所有的絕對路徑都是從根目錄"/"開始

/root:是linux下root使用者的根目錄

/home:是linux下其他使用者的預設根目錄 (例如:在linux上建立了一個bow使用者,那麼就會在/home下面生成一個bow目錄作為bow使用者的根目錄)

/etc:是linux下系統配置檔案目錄

/tmp:臨時檔案目錄,所有使用者都可以用

ls命令

ls [引數] 目錄路徑
ls 表示檢視目錄下的檔案

ls #表示檢視當前目錄下的檔案
ls -l #表示檢視當前目錄下的詳細資訊
ls -a #表示檢視當前目錄下的所有檔案(包含隱藏檔案)
ls -la #表示檢視當前目錄下的所有檔案(包含隱藏檔案)的詳細資訊
ls -lh #h是以適當的單位來顯示檔案的大小 ls -lh表示檢視當前目錄下的檔案的詳細資訊,並以合適單位顯示檔案大小 
 
ls -l / #表示檢視根目錄"/"下檔案的詳細資訊
 
ls /etc #表示檢視目錄/etc下的檔案
 
ls --help #檢視命令的幫助文件
--help引數:所有linux上的命令都有,但寫法上有如下幾種:
 (1)--help
  (2)--h
  (3)-help
  (4)-h
ll命令:它和ls -l命令功能相同,但是不是所有的linux上都預設安裝

cd命令

cd 目錄路徑 #進入一個目錄,目錄路徑可以是絕對路徑(以/開始的路徑都是絕對路徑),也可以是相對路徑
相對路徑:以非/開始的路徑,
注意: "."表示當前目錄
"…"表示當前目錄的上一級目錄,它可以多個一起使用
"~"表示當前使用者的根目錄 例如:root使用者時,~表示/root目錄 bow使用者時,~表示/home/bow目錄

cd / #表示進入系統根目錄
cd usr/ #表示進入當前目錄下的usr目錄
cd local/ #表示進入當前目錄下的local目錄
cd ./bin #表示進入當前目錄下的bin目錄
cd .. #表示進入當前目錄的上一級目錄
cd ../.. #表示進入當前目錄的上級目錄的上一級目錄
cd /usr/local/bin #進入/usr/local/bin目錄
cd ../etc #表示進入和當前目錄同級的etc目錄 #..表示當前目錄的上一級目錄 ../etc表示當前目錄上級目錄下的etc目錄(和當前目錄同級)
cd ~ #表示進入當前使用者的根目錄(cd ~ 和直接執行cd後不加目錄的效果相同)
 #例如:root使用者進入/root目錄,bow使用者進入/home/bow目錄
 
cd ~/data #表示進入當前使用者根目錄下的data目錄 例如:root使用者則進入了/root/data目錄

mkdir命令

mkdir 目錄路徑 #建立一個目錄,目錄路徑可以是絕對路徑也可以是相對路徑

mkdir data #在當前目錄下建立一個data目錄
mkdir ./dir #在當前目錄下建立一個dir目錄
mkdir /root/tmp #在/root目錄下建立一個tmp目錄

mkdir建立目錄時,只有在目錄的上級目錄存在時,才會建立

mkdir -p 目錄#建立目錄時,如果沒有父目錄,會建立父目錄,遞迴地建立目錄
mkdir -p a/b/c #在當前目錄下建立3級目錄

rmdir命令

rmdir [引數] 目錄路徑 #刪除目錄命令,rmdir預設只能刪除空目錄
 
rmdir ./dir #刪除當前目錄下的dir目錄
 
rmdir -p 目錄路徑 #表示刪除目錄和它的父目錄(目錄要是一個空目錄)
rmdir -p a/b/c #刪除當前目錄下的a/b/c目錄

touch命令

touch 命令 #建立檔案命令

touch 檔案路徑

touch 1.txt #在當前目錄下建立一個1.txt檔案
touch /root/2.txt #在/root目錄下建立一個2.txt檔案

rm命令

rm [引數] 路徑 #刪除命令

rm 1.txt #刪除當前目錄下的1.txt檔案,刪除時會提示,是否刪除如果輸入y表示刪除,輸入n表示不刪除

rm -f /root/2.txt #-f表示強制刪除,不會提示,強制刪除/root目錄下的2.txt

rm -r a/ #遞迴的刪除當前目錄下a目錄下的所有內容
[root@bow ~]# rm -r a/
rm:是否進入目錄"a/"? y
rm:是否進入目錄"a/b"? y
rm:是否進入目錄"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/ #強制刪除當前目錄下a目錄及a目錄下的所有內容
 
rm -rf * #刪除當前目錄下的所有內容
rm -rf a/* #刪除當前目錄下a目錄下的所有內容
rm -rf *.txt #刪除當前目錄下的所有txt檔案
rm -rf *s* #刪除當前目錄下所有名字中包含s的檔案或資料夾

echo命令

echo #輸出命令,可以輸入變數,字串的值

echo Hello World #列印Hello World
echo $PATH #列印環境變數PATH的值,其中$是取變數值的符號,用法:$變數名 或者 ${變數名}
 
echo -n #列印內容但不換行
echo -n Hello World 

>和>>命令

和>>:輸出符號,將內容輸出到檔案中,>表示覆蓋(會刪除原檔案內容) >>表示追加

echo Hello World > 1.txt #將Hello World輸出到當前目錄下的1.txt檔案
 #如果當前目錄下沒有1.txt檔案會建立一個新檔案,
  #如果當前目錄下有1.txt,則會刪除原檔案內容,寫入Hello World
echo 1234 >> 1.txt #將1234追加到當前目錄下的1.txt中,如果檔案不存在會建立新檔案

通過>和>>都可以建立檔案

檔案檢視命令

cat 檔案路徑 #檢視檔案的所有內容

cat 1.txt #檢視當前目錄下1.txt的內容
cat /root/1.txt #檢視/root目錄下的1.txt檔案內容

more 檔案路徑 #分頁檢視檔案內容

more linux常用命令.txt #分頁檢視當前目錄下linux常用命令.txt檔案的內容
#按空格或回車,會繼續載入檔案內容,按q退出檢視
#當載入到檔案末尾時,會自動退出檢視

less 檔案路徑 #分頁檢視檔案內容
less linux常用命令.txt #分頁檢視檔案內容,按空格繼續載入檔案,按q退出檢視,不會自動退出檢視

head [引數] 檔案路徑 #從檔案開始檢視檔案

head linux常用命令.txt #檢視檔案的前10行內容
 
head -n 檔案路徑 # n是一個正整數,表示檢視檔案的前n行資料
head -20 linux常用命令.txt #檢視檔案的前20行內容

tail [引數] 檔案路徑 #從檔案的末尾檢視檔案內容
tail linux常用命令.txt #檢視檔案的後10行內容

tail -n 檔案路徑 # n是一個正整數,表示檢視檔案的後n行資料
tail -15 linux常用命令.txt #檢視檔案後15行內容
 
tail -f 檔案路徑 #動態的檢視檔案的最後幾行內容(檢視檔案時,等待檔案更新,如果檔案更新了,會顯示出新的內容)

tail -f 1.txt #檢視檔案1.txt的最新內容,tail -f 一般用來檢視日誌檔案 按CTRL+C或才CTRL+Z退出檢視

CTRL+C:表示暫停程序
CTRL+Z: 表示停止程序

檔案編輯命令

vi/vim命令:這兩個命令在使用上幾乎完全一樣(個人喜歡vim命令)

安裝vim命令:(安裝是需要網路的)

 yum -y install vim

yum命令是centos和red hat系統上使用官方資源包去安裝軟體的命令

yum -y install 軟體名
yum -y remove 軟體名

檢視虛擬機器能不能上外網:

ping www.baidu.com
CTRL+C或者CTRL+Z退出

vim命令總體分為兩類

vim 檔案路徑 --進入非編輯模式

非編輯模式命令:

yy:複製游標當前行
p:貼上
dd:刪除游標當前行
$:游標跳到當前行的行尾
^:游標跳到當前行的行首
 
:s/原字串/新字串/:替換游標當前行內容
:%s/原字串/新字串/g:全文替換 #g表示global i表示ignore忽略大小寫
 
/要查詢的內容:從游標當前行向後查詢內容
/d #在檔案中查詢d字母
?要查詢的內容:從游標當前位置向前查詢內容
?d #查詢檔案中的d字母
CTRL+F:向下翻1頁
CTRL+B:向上翻1頁
 
:set nu:顯示檔案的行號
:set nonu: 去掉行號顯示
u:撤消
 
**:set ff :顯示檔案的格式 #unix表示在unix上的檔案 dos表示檔案是windows上的檔案**
:w :表示儲存檔案
:q :表示退出vim命令
:wq:儲存並退出
:w!:強制儲存
:q!:強制退出但不儲存
:wq!:強制儲存並退出
i:表示進入編輯模式,並且游標在當前行
o:表示進入編輯模式,並且光標出現的當前行的下一行(新行)

編輯模式命令:

編輯模式下可以能過方向鍵控制游標的位置,並且可以輸入檔案到游標當前位置

 ESC:退出編輯模式

cp命令

cp 拷貝命令

cp [引數] 原檔案路徑 目標檔案路徑

cp 1.txt a/ #將1.txt檔案拷貝到a目錄下
cp 1.txt 2.txt #將1.txt拷貝到2.txt
cp -r a data #-r引數表示將目錄和目錄下的檔案一起拷貝,將a目錄拷貝到data目錄

scp命令

scp 遠端拷貝命令,它可以將本地檔案拷貝到遠端伺服器,也可以將遠端伺服器的檔案拷貝到本地,也可以將一臺伺服器檔案拷貝到另一臺

scp -r 本地檔案路徑 使用者名稱@ip[:port]:遠端路徑 #將本地檔案拷貝到遠端伺服器
scp -r 2.txt [email protected]:/root/data/ #將本地的2.txt拷貝到192.168.5.105的/root/data目錄下
 
scp -r 使用者名稱@ip[:port]:遠端檔案路徑 本地路徑 #將遠端檔案拷貝到本地
scp -r [email protected]:/root/3.bak /root/data #將遠端的/root/3.bak檔案拷貝到本地的/root/data目錄

scp -r 使用者名稱@ip[:port]:遠端檔案路徑 使用者名稱@ip[:port]:遠端檔案路徑 #將檔案從一臺伺服器拷貝到另一臺伺服器

scp -r [email protected]:/root/tmp [email protected]:/root/data/ #將/root/tmp拷貝到遠端的/root/data目錄下

mv命令

mv 移動命令,它可以移動檔案,也可以給檔案改名

mv 原檔案路徑 目標檔案路徑 #將檔案從一個地方拷貝到另一個地方

mv 1.txt 12.txt #將檔案1.txt改名為12.txt
mv tmp tmp #將tmp目錄改名為tm
mv 12.txt tm #將檔案12.txt移動到tm目錄下

man命令

man 命令,檢視命令的命令,檢視命令幫助文件(顯示的資訊最詳細)

man mv #檢視mv命令的檔案
 
man命令和命令的 --help引數結果相似(man命令只適用於linux本身的命令)

free命令

free命令,它是用來檢視系統記憶體的命令

free #檢視系統記憶體使用情況
free -h #檢視記憶體使用情況,並且以合適的單位顯示大小

df命令

df命令,它是檢視系統硬碟的命令

df #檢視系統硬碟使用情況
df -h #檢視硬碟使用,並以合適單位顯示大小

wc命令

wc 命令,word count的縮寫,它是檢視檔案的單詞個數

wc [引數] 檔案

wc -l linux常用命令.txt #-l表示line行數 計算檔案的行數
wc -w linux常用命令.txt #-w表示word單詞個數 計算檔案的單詞個數

ps命令

ps命令,它是檢視系統程序的命令

ps -aux

ps -ef

jps 檢視java程序

kill命令

kill 程序id #結束程序

root 21752 1.6 0.5 158800 5532 ? Ss 08:34 0:00 sshd: root@pts/0

kill 21752 #結束ssh登陸的程序

kill -9 程序id #強制結束程序

使用者和許可權命令

建立使用者組:

groupadd 使用者組名稱 #建立一個使用者組

groupadd bows #建立一個叫bows的使用者組
刪除使用者組:
groupdel 使用者組名稱 #刪除一個使用者組(刪除時必須是使用者組下沒有使用者時)
groupdel bows #刪除使用者組

建立使用者:

useradd 使用者名稱 [-g 使用者組名 -G 使用者組名] #建立一個使用者,-g指定使用者的主使用者組,-G指定使用者的其他使用者組

useradd bow -g bows #建立bow使用者,並指定它的主使用者組是bows
id 使用者名稱 #檢視使用者的id
id bow #檢視使用者bow的id

刪除使用者:

userdel 使用者名稱 #刪除使用者
userdel bow #刪除使用者bow

切換使用者:

su 使用者名稱 #切換使用者,但不載入使用者的環境變數
su - 使用者名稱 #切換使用者,並載入使用者的環境變數(建議使用這種方式切換使用者)
su bow #切換到bow使用者(root使用者切換到其他使用者是不需要輸入密碼的,其他使用者切換到root使用者是要輸入root使用者密碼的,其他使用者之間的切換也是需要密碼)
exit #退出當前使用者的登陸

修改使用者密碼:

passwd 使用者名稱 #修改使用者密碼
passwd bow #修改bow使用者的密碼

許可權:

檔案型別        使用者許可權       使用者組許可權       其他使用者許可權
-                 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表示使用者許可權   g表示使用者組許可權   o表示其他使用者許可權
 
r:表示讀許可權 數字表示為4
w:表示寫許可權 數字表示為2
x:表示執行許可權 數字表示為1
-:表示沒有許可權

chmod 賦許可權命令

chmod 許可權 檔案路徑
-rw-r--r--. 1 root root   31 3月  24 07:46 2.txt
chmod u+x 2.txt #給使用者加上執行許可權
-rwxr--r--. 1 root root   31 3月  24 07:46 2.txt
chmod g+w 2.txt #給使用者組加寫許可權
-rwxrw-r--. 1 root root   31 3月  24 07:46 2.txt
chmod o+x 2.txt #給其他使用者加執行許可權
-rwxrw-r-x. 1 root root   31 3月  24 07:46 2.txt
chmod g-w 2.txt #去掉使用者的寫許可權 
-rwxr--r-x. 1 root root   31 3月  24 07:46 2.txt

用3個數字來設定檔案或目錄的許可權,第1個數字表示使用者許可權,第2數字表示使用者組許可權,第3個數字表示其他使用者許可權

chmod 755 2.txt #設定使用者的許可權為rwx,使用者組的許可權r-x,其他使用者的許可權r-x
-rwxr-xr-x. 1 root root 31 3月 24 07:46 2.txt
chmod 766 2.txt #設定使用者許可權為rwx,使用者組許可權rw-,其他使用者的許可權rw-
-rwxrw-rw-. 1 root root 31 3月 24 07:46 2.txt

設定目錄許可權時,要使用-R引數,保證目錄下的所有檔案和目錄的許可權相同

drwxr-xr-x. 4 root root 81 3月 24 08:06 data
chmod -R 777 data #將data目錄以及它下面的所有檔案的許可權設定為rwxrwxrwx
drwxrwxrwx. 4 root root 81 3月 24 08:06 data

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

查詢命令

find命令,可以根據檔案的時間,名稱等查詢檔案

find *.txt #查詢txt檔案

grep 命令,查詢內容

grep cat linux常用命令.txt #在linux常用命令.txt檔案中查詢包含cat的行,查詢檔案內容

| 通道符號,連線兩個命令的,將前一個命令的查詢結果傳給後一個命令

ps -ef | grep sshd #檢視系統中sshd的程序 
ps -ef | grep java #檢視所有java程序
grep -v #-v引數表示查詢不包含查詢條件的行
grep -v cat linux常用命令.txt #查詢linux常用命令.txt中不包含cat的行
 
ps -ef | grep sshd | grep -v grep #查詢sshd的程序,不包括grep的行

–瞭解性查詢命令

who命令 #查詢系統中的使用者(登陸的使用者)
whoami命令 #檢視系統當前使用者名稱
whereis命令 #檢視系統安裝的某個軟體的路徑
whereis python #檢視python的安裝路徑
which 命令 #查詢軟體的可執行檔案路徑 
which python #檢視python可執行檔案路徑

壓縮命令

安裝zip和unzip命令:

yum -y install zip unzip

zip壓縮命令

zip 壓縮檔名 要壓縮的檔案路徑

zip 2.zip 2.txt #將2.txt壓縮到2.zip中
 
zip data.zip data #只會壓縮資料夾,不會壓縮資料夾下的內容
 
zip da.zip da/* #壓縮資料夾和資料夾內的檔案(壓縮資料夾和它的下一級檔案) 
 
zip -r data.zip date #-r表示遞迴地將資料夾及它的子目錄檔案全部壓縮 

unzip解壓命令

unzip 壓縮檔案路徑

unzip 2.zip #將2.zip壓縮包解壓到當前目錄下
unzip -l 壓縮檔名 #不解壓檔案,檢視壓縮包內的檔案
unzip -l da.zip #檢視da.zip壓縮檔案中包含的檔案
unzip da.zip -d 目標目錄 #將壓縮檔案解壓到指定目錄 
unzip da.zip -d tm/ #將壓縮檔案da.zip解壓到tm目錄下

tar命令,用來壓縮和解壓縮.tar和.tar.gz包

壓縮.tar包:

tar cvf 壓縮檔名 要壓縮的檔案或目錄
tar cvf 2.tar 2.txt #將2.txt壓縮為2.tar包
tar cvf data.tar data #將data目錄誇張到data.tar包中

解壓.tar包:

tar xvf 壓縮檔名 [-C 指定解壓目錄]

tar xvf 2.tar #將2.tar解壓到當前目錄
tar xvf 2.tar -C a/ #將2.tar解壓到a目錄
tar xvf data.tar #解壓data.tar到當前目錄

壓縮.tar.gz包:

tar zcvf 壓縮檔名 要壓縮的檔案
tar zcvf tm.tar.gz tm #將當前目錄下的tm目錄壓縮為tm.tar.gz

解壓.tar.gz包:

tar zxvf 壓縮檔名
tar zxvf tm.tar.gz #將tm.tar.gz解壓到當前目錄
gzip命令,將檔案壓縮為.gz包(可以用來壓縮.tar檔案)
gzip 要壓縮的檔案 
gzip 2.txt #將2.txt壓縮為2.txt.gz
gzip data.tar #將data.tar壓縮為data.tar.gz

source命令

source 檔案路徑 #讓配置檔案修改結果立即生效,(還可以在shell指令碼中引用其他的shell指令碼)

/etc/profile #linux上的系統環境變數配置檔案
source /etc/profile #將系統環境變數生效

export命令

export 匯入全域性變數(環境變數)
 
export 變數名=變數值
export 變數名
 
變數的賦值:
變數名=變數值

<<EOF

<<EOF … EOF:將<<EOF和EOF之間的多行內容傳給前面的命令,
其中EOF可以是任意字串,但約定都使用EOF

[root@bow ~]# cat <<EOF
> HELLO
> WORD
> JOB
> SMITH
> EOF
HELLO
WORD
JOB
SMITH

<<EOF是shell指令碼中使用sqlplus的基礎

[root@bow ~]# cat <<A
> 11234
> 1234
> 1234
> 1253
> 1253
> A
11234
1234
1234
1253
1253

注意:EOF必須頂行寫

[root@bow ~]# cat <<EOF
> ASDF
> EOF
> ASDFASDF
> EOF
ASDF
 EOF
ASDFASDF

cut命令

cut 擷取命令

-f 引數,指定列
-d 引數指定列和列之間的分隔符,預設的分隔符是\t(行向製表符)
cut -f 1 1.txt #取1.txt檔案中的第1列內容(列分隔符預設為\t)
cut -f 2 1.txt #取1.txt檔案中的第2列內容
cut -f 1 -d ',' 3.txt #取3.txt檔案中的第1列(列分隔符為,)
cut -f 2 -d ',' 3.txt #取3.txt第2列

wc -l linux常用命令.txt | cut -f 1 -d ’ ’ #取檔案linux常用命令.txt的行數(分隔符是空格)

[root@bow ~]# cut -f 1 -d ',' <<EOF
> A,B,C
> D,E,F
> EOF
A
D

printf命令

%ns  輸出字串,n是數字,指代輸出幾個字元
%ni  輸出整數。n是數字,指代輸出幾個數字
%m.nf  位數和小數位數。例如:%8.2f 代表輸出8位數,其中2位是小數,6位是整數

printf 格式字串 內容

[root@bow ~]# printf '%s,%s,%s\n' abc def ghj klj klo qer #一行單詞第三個列印成一行,單詞和單詞之間用逗號隔開
abc,def,ghj
klj,klo,qer
[root@bow ~]# printf '%s %s\n' $(cat 4.txt) #將檔案4.txt中的一行內容中的單詞劃分為兩個一組列印 cat 合作檢視檔案內容 $(cat 4.txt)表示取cat命令的執行結果
empno ename
job sal
comm depno
5.txt內容
A B C D E
F G H
[root@bow ~]# printf '%s,%s\n' $(cat 5.txt)
A,B
C,D
E,F
G,H
[root@bow ~]# printf '%5.2f\n' 12.1 #%5.2f表示輸出一個小數,數的長度是5,其中有兩個小數
12.10
[root@bow ~]# printf '%5.2f\n' 121234.116134 #如果輸出的值最大長度超出5,那麼整數部分不變數,小數部分會按照四捨五入的方法儲存兩位
121234.12
[root@bow ~]# printf '%i\n' 1234.5678  #%i只取數字的整數部分
-bash: printf: 1234.5678: 無效數字
1234

awk命令

awk 命令字串 要處理的內容

[root@bow ~]# awk '{printf $1 "\n"}' 1.txt #printf 列印 $n 表示取第幾列 $1表示取第1列 
Hello
smith
tomcat

awk ‘{print $2}’ 1.txt #取1.txt的第2列,print和printf功能相同是列印,比printf多一個換行功能

[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,

sed命令

sed 引數 命令 要處理的內容

-n  一般sed命令會把所有資料都輸出到螢幕。如果加入此選擇,則只會把經過sed命令處理的行輸出到螢幕。
-e  允許對輸入資料應用多條sed命令編輯
-i  用sed的修改結果直接修改讀取的資料的檔案,而不是修改螢幕輸出
[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內容,將1.txt中18替換為20
[root@bow ~]# cat 1.txt
Hello world
smith 20
tomcat etl
a\  追加,在當前行後新增一行或多行。新增多行時除最後一行外,每行末尾需要用"\"代表資料未完結。
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行內容
[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
#注意:替換時,的符號是根據/來判斷 s/原字串/目標字串/g 如果原字串或新的字串中有/時,需要使用\來轉義
# 錯誤寫法:s//home/bow//user/bw/g 正確寫法 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

注意:linux中字串的下標是從0開始的

service命令

service服務命令

ervice 服務名 [命令]
命令:enable|disable|start|stop|restart|status
start:啟動服務
stop:關閉服務
restart:重啟服務
status:檢視服務狀態
service network start #遍歷網路
service network stop #關閉網路
service network restart #重啟網路
service network status #檢視網路狀態
service iptables start #centos6及6以下版本,啟動防火牆的命令
service iptables stop #centos6及6以下版本,關閉防火牆(注意,關閉防火牆,只是臨時關閉,下次重啟之後防火牆依然會啟動)
service iptables restart #重啟防火牆
service mysqld start #啟動mysql資料庫
service mysqld restart #啟動mysql資料庫
service mysqld stop #關閉mysql資料庫

chkconfig命令

chkconfig命令檢查,設定系統的各種服務

chkconfig 服務名 on|off #on表示開啟服務 off表示關閉服務 通過chkconfig設定的服務是永久生效
centos6及以下版本永久關閉或開啟防火牆
chkconfig iptables on #開啟防火牆
chkconfig iptables off #永久地關閉防火牆

防火牆:

centos7以上:

systemctl start firewalld #啟動防火牆
systemctl stop firewalld #關閉防火牆(臨時關閉)
systemctl status firewalld #檢視防火牆狀態
systemctl disable firewalld #永久關閉防火牆
systemctl enable firewalld #開啟防火牆(不是啟動防火牆)
通過firewall-cmd來配置防火牆

centos6及以下:

防火牆配置檔案:/etc/iptables,這個檔案可以詳細的配置防火牆,如果沒有/etc/iptables檔案可以使用iptables save可以生成該檔案

iptables 命令配置防火牆

service iptables start #centos6及6以下版本,啟動防火牆的命令
     service iptables stop #centos6及6以下版本,關閉防火牆(注意,關閉防火牆,只是臨時關閉,下次重啟之後防火牆依然會啟動)
     service iptables restart #重啟防火牆

環境變數配置檔案

/etc/profile是linux系統上配置系統環境變數的一個檔案(針對所有使用者的配置)
使用者根目錄下的.bash_profile:是使用者環境變數的配置(針對當前使用者有效)

su - 使用者名稱 #切換使用者時,會載入使用者根目錄下的.bash_profile環境變數配置檔案
su 使用者名稱 #不會載入.bash_profile

網路配置檔案

網絡卡配置檔案目錄:/etc/sysconfig/network-scripts

網絡卡配置檔名都是以ifcfg-開頭,其中ifcfg-lo是本地網絡卡,是不需要配置的

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
#網絡卡型別
TYPE="Ethernet"
#協議 dhcp表示:ip地址是自動分配的,static表示靜態ip(手動配置ip地址),none表示沒有協議(也是需要手動配置ip地址)
BOOTPROTO="dhcp"
DEFROUTE="yes"
#網絡卡名稱
NAME="enp0s3"
UUID="deed3fd2-bd67-459b-8a49-ef0dd6e575a2"
DEVICE="enp0s3"
#配置網絡卡是否隨機啟動,yes:表示隨機啟動,no:表示需要手動啟動
ONBOOT="yes"
#配置靜態ip,BOOTPROTO必須是static或none
#ip地址配置
IPADDR=192.168.1.106
#配置子網掩碼
NETMASTER=255.255.255.0
#配置閘道器
GATEWAY=192.168.1.1
#配置dns:域名解析伺服器可以配置多個
DNS1=192.168.1.1
DNS2=192.168.5.1

修改完網絡卡檔案之後,重啟網路即可

sudo命令

sudo命令,它在非root使用者下,去呼叫一些root使用者的命令,或者修改一些檔案
sudo命令是需要配置的,sudo的配置檔案是/etc/sudoers

#給bow使用者配置sudo許可權
[root@bow ~]# vim /etc/sudoers
##
## Allow root to run any commands anywhere 
root ALL=(ALL) ALL
#給bow使用者設定sudo命令許可權
bow ALL=(ALL) ALL

sudo命令的使用:

sudo 命令

[root@bow ~]# su - bow
上一次登入:四 3月 26 07:30:53 CST 2020pts/0 上
[bow@bow ~]$ sudo vim /etc/profile

ping命令

ping命令檢視網路連通性的命令和windows上的功能一樣

ping ip(0.0.0.100)

ifconfig命令

ifconfig命令屬於net-tools軟體包,使用前需要安裝net-tools

net-tools的安裝:

yum -y install net-tools
ifconfig檢視ip地址

netstat命令

netstat命令也屬於net-tools軟體包

netstat -tulp | grep 1521 #檢視oracle監聽器程式是否正常啟動

rpm命令

rpm是linux上的安裝命令,用來安裝.rpm格式的安裝包

rpm -ivh .rpm檔案的路徑 #表示安裝軟體包
 
rpm -qa #檢視已安裝的軟體 
rpm -qa | grep mysql #檢視已經安裝的mysql軟體包
 
rpm -e --nodeps 安裝包名 #解除安裝軟體包 -e表示解除安裝 --nodeps表示不理會的依賴關係

本文分享自華為雲社群《linux常用命令大全》,原文作者:HW-QGS 。

點選關注,第一時間瞭解華為雲新鮮技