一提到操作系統,我們首先想到的就是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 root@192.168.5.105:/root/data/ #將本地的2.txt拷貝到192.168.5.105的/root/data目錄下
scp -r 用戶名@ip[:port]:遠程文件路徑 本地路徑 #將遠程文件拷貝到本地
scp -r root@192.168.5.105:/root/3.bak /root/data #將遠程的/root/3.bak文件拷貝到本地的/root/data目錄
復制代碼
scp -r 用戶名@ip[:port]:遠程文件路徑 用戶名@ip[:port]:遠程文件路徑 #將文件從一臺服務器拷貝到另一臺服務器
scp -r root@192.168.5.105:/root/tmp root@192.168.5.105:/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,%sn' abc def ghj klj klo qer #一行單詞第三個打印成一行,單詞和單詞之間用逗號隔開
abc,def,ghj
klj,klo,qer
[root@bow ~]# printf '%s %sn' $(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,%sn' $(cat 5.txt)
A,B
C,D
E,F
G,H
[root@bow ~]# printf '%5.2fn' 12.1 #%5.2f表示輸出一個小數,數的長度是5,其中有兩個小數
12.10
[root@bow ~]# printf '%5.2fn' 121234.116134 #如果輸出的值最大長度超出5,那么整數部分不變量,小數部分會按照四舍五入的方法保存兩位
121234.12
[root@bow ~]# printf '%in' 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