Linux常用命令大全

文件和目錄 操作命令

cd命令,用于切換當(dāng)前目錄,它的參數(shù)是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。
cd /home    #進入 '/ home' 目錄'
cd ..       #返回上一級目錄
cd ../..    #返回上兩級目錄
cd          #進入個人的主目錄
cd ~user1   #進入個人的主目錄
cd -       #返回上次所在的目錄
#2、pwd也是個很重要的命令,顯示工作路徑
pwd        #顯示工作路徑

#3、ls命令,查看文件與目錄的命令,list的意思
ls      #查看目錄中的文件
ls -F   #查看目錄中的文件
ls -l   #顯示文件和目錄的詳細(xì)資料
ls -a   #顯示隱藏文件
ls *[0-9]*   #顯示包含數(shù)字的文件名和目錄名
tree         #顯示文件和目錄由根目錄開始的樹形結(jié)構(gòu)(1)
lstree       #顯示文件和目錄由根目錄開始的樹形結(jié)構(gòu)(2)

mkdir dir1         #創(chuàng)建一個叫做 'dir1' 的目錄'
mkdir dir1 dir2    #同時創(chuàng)建兩個目錄
mkdir -p /tmp/dir1/dir2   #創(chuàng)建一個目錄樹

rm -f file1    #刪除一個叫做 'file1' 的文件'
rmdir dir1     #刪除一個叫做 'dir1' 的目錄'
rm -rf dir1    #刪除一個叫做 'dir1' 的目錄并同時刪除其內(nèi)容
rm -rf dir1 dir2    #同時刪除兩個目錄及它們的內(nèi)容
mv dir1 new_dir     #重命名/移動 一個目錄

cp file1 file2     #復(fù)制一個文件
cp dir/* .         #復(fù)制一個目錄下的所有文件到當(dāng)前工作目錄
cp -a /tmp/dir1 .   #復(fù)制一個目錄到當(dāng)前工作目錄
cp -a dir1 dir2     #復(fù)制一個目錄

ln -s file1 lnk1  #創(chuàng)建一個指向文件或目錄的軟鏈接
ln file1 lnk1     #創(chuàng)建一個指向文件或目錄的物理鏈接

touch -t 0712250000 file1   #修改一個文件或目錄的時間戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l   #列出已知的編碼

iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.

find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)

文件搜索 命令

find / -name file1     #從 '/' 開始進入根文件系統(tǒng)搜索文件和目錄
find / -user user1     #搜索屬于用戶 'user1' 的文件和目錄
find /home/user1 -name \*.bin        #在目錄 '/ home/user1' 中搜索帶有'.bin' 結(jié)尾的文件
find /usr/bin -type f -atime +100    #搜索在過去100天內(nèi)未被使用過的執(zhí)行文件
find /usr/bin -type f -mtime -10     #搜索在10天內(nèi)被創(chuàng)建或者修改過的文件
find / -name \*.rpm -exec chmod 755 '{}' \;      #搜索以 '.rpm' 結(jié)尾的文件并定義其權(quán)限
find / -xdev -name \*.rpm        #搜索以 '.rpm' 結(jié)尾的文件,忽略光驅(qū)、捷盤等可移動設(shè)備
locate \*.ps       #尋找以 '.ps' 結(jié)尾的文件 - 先運行 'updatedb' 命令
whereis halt       #顯示一個二進制文件、源碼或man的位置
which halt         #顯示一個二進制文件或可執(zhí)行文件的完整路徑

文件權(quán)限 操作命令

使用 "+" 設(shè)置權(quán)限,使用 "-" 用于取消

ls -lh    #顯示權(quán)限
ls /tmp | pr -T5 -W$COLUMNS   #將終端劃分成5欄顯示
chmod ugo+rwx directory1      #設(shè)置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r )、寫(w)和執(zhí)行(x)的權(quán)限
chmod go-rwx directory1      #刪除群組(g)與其他人(o)對目錄的讀寫執(zhí)行權(quán)限
chown user1 file1            #改變一個文件的所有人屬性
chown -R user1 directory1    #改變一個目錄的所有人屬性并同時改變改目錄下所有文件的屬性
chgrp group1 file1          #改變文件的群組
chown user1:group1 file1     #改變一個文件的所有人和群組屬性
find / -perm -u+s           #羅列一個系統(tǒng)中所有使用了SUID控制的文件
chmod u+s /bin/file1        #設(shè)置一個二進制文件的 SUID 位 - 運行該文件的用戶也被賦予和所有者同樣的權(quán)限
chmod u-s /bin/file1        #禁用一個二進制文件的 SUID位
chmod g+s /home/public      #設(shè)置一個目錄的SGID 位 - 類似SUID ,不過這是針對目錄的
chmod g-s /home/public      #禁用一個目錄的 SGID 位
chmod o+t /home/public      #設(shè)置一個文件的 STIKY 位 - 只允許合法所有人刪除文件
chmod o-t /home/public      #禁用一個目錄的 STIKY 位

查看文件內(nèi)容 命令

cat file1      #從第一個字節(jié)開始正向查看文件的內(nèi)容
tac file1      #從最后一行開始反向查看一個文件的內(nèi)容
more file1     #查看一個長文件的內(nèi)容
less file1     #類似于 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
head -2 file1    #查看一個文件的前兩行
tail -2 file1    #查看一個文件的最后兩行
tail -f /var/log/messages     #實時查看被添加到一個文件中的內(nèi)容

查看文件內(nèi)容 命令

cat file1      #從第一個字節(jié)開始正向查看文件的內(nèi)容
tac file1      #從最后一行開始反向查看一個文件的內(nèi)容
more file1     #查看一個長文件的內(nèi)容
less file1     #類似于 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
head -2 file1    #查看一個文件的前兩行
tail -2 file1    #查看一個文件的最后兩行
tail -f /var/log/messages     #實時查看被添加到一個文件中的內(nèi)容

文本處理 命令

cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT

cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 
#合并一個文件的詳細(xì)說明文本,并將簡介寫入一個新文件中
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 
#合并一個文件的詳細(xì)說明文本,并將簡介寫入一個已有的文件中

grep Aug /var/log/messages     #在文件 '/var/log/messages'中查找關(guān)鍵詞"Aug"
grep ^Aug /var/log/messages    #在文件 '/var/log/messages'中查找以"Aug"開始的詞匯
grep [0-9] /var/log/messages   #選擇 '/var/log/messages' 文件中所有包含數(shù)字的行
grep Aug -R /var/log/*         #在目錄 '/var/log' 及隨后的目錄中搜索字符串"Aug"

sed 's/stringa1/stringa2/g' example.txt 
#將example.txt文件中的 "string1" 替換成 "string2"
sed '/^$/d' example.txt           #從example.txt文件中刪除所有空白行
sed '/ *#/d; /^$/d' example.txt   #從example.txt文件中刪除所有注釋和空白行
echo 'esempio' | tr '[:lower:]' '[:upper:]'    #合并上下單元格內(nèi)容
sed -e '1d' result.txt          #從文件example.txt 中排除第一行
sed -n '/stringa1/p'            #查看只包含詞匯 "string1"的行
sed -e 's/ *$//' example.txt    #刪除每一行最后的空白字符
sed -e 's/stringa1//g' example.txt  
#從文檔中只刪除詞匯 "string1" 并保留剩余全部
sed -n '1,5p;5q' example.txt     #查看從第一行到第5行內(nèi)容
sed -n '5p;5q' example.txt       #查看第5行
sed -e 's/00*/0/g' example.txt   #用單個零替換多個零

cat -n file1       #標(biāo)示文件的行數(shù)
cat example.txt | awk 'NR%2==1'      #刪除example.txt文件中的所有偶數(shù)行
echo a b c | awk '{print $1}'        #查看一行第一欄
echo a b c | awk '{print $1,$3}'     #查看一行的第一和第三欄
paste file1 file2           #合并兩個文件或兩欄的內(nèi)容
paste -d '+' file1 file2    #合并兩個文件或兩欄的內(nèi)容,中間用"+"區(qū)分

sort file1 file2              #排序兩個文件的內(nèi)容
sort file1 file2 | uniq       #取出兩個文件的并集(重復(fù)的行只保留一份)
sort file1 file2 | uniq -u    #刪除交集,留下其他的行
sort file1 file2 | uniq -d    #取出兩個文件的交集(只留下同時存在于兩個文件中的文件)

comm -1 file1 file2    #比較兩個文件的內(nèi)容只刪除 'file1' 所包含的內(nèi)容
comm -2 file1 file2    #比較兩個文件的內(nèi)容只刪除 'file2' 所包含的內(nèi)容
comm -3 file1 file2    #比較兩個文件的內(nèi)容只刪除兩個文件共有的部分

打包和壓縮文件 操作命令

bunzip2 file1.bz2   #解壓一個叫做 'file1.bz2'的文件
bzip2 file1         #壓縮一個叫做 'file1' 的文件
gunzip file1.gz     #解壓一個叫做 'file1.gz'的文件
gzip file1          #壓縮一個叫做 'file1'的文件
gzip -9 file1       #最大程度壓縮

rar a file1.rar test_file          #創(chuàng)建一個叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1   #同時壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar     #解壓rar包
unrar x file1.rar   #解壓rar包

tar -cvf archive.tar file1   #創(chuàng)建一個非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1  #創(chuàng)建一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar    #顯示一個包中的內(nèi)容
tar -xvf archive.tar   #釋放一個包
tar -xvf archive.tar -C /tmp     #將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1   #創(chuàng)建一個bzip2格式的壓縮包
tar -jxvf archive.tar.bz2        #解壓一個bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1    #創(chuàng)建一個gzip格式的壓縮包
tar -zxvf archive.tar.gz         #解壓一個gzip格式的壓縮包

zip file1.zip file1    #創(chuàng)建一個zip格式的壓縮包
zip -r file1.zip file1 file2 dir1    #將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
unzip file1.zip    #解壓一個zip格式壓縮包

掛載文件系統(tǒng) 命令

mount /dev/hda2 /mnt/hda2    #掛載一個叫做hda2的盤 - 確定目錄 '/ mnt/hda2' 已經(jīng)存在
umount /dev/hda2            #卸載一個叫做hda2的盤 - 先從掛載點 '/ mnt/hda2' 退出
fuser -km /mnt/hda2         #當(dāng)設(shè)備繁忙時強制卸載
umount -n /mnt/hda2         #運行卸載操作而不寫入 /etc/mtab 文件- 當(dāng)文件為只讀或當(dāng)磁盤寫滿時非常有用
mount /dev/fd0 /mnt/floppy        #掛載一個軟盤
mount /dev/cdrom /mnt/cdrom       #掛載一個cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder    #掛載一個cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder    #掛載一個cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom    #掛載一個文件或ISO鏡像文件
mount -t vfat /dev/hda5 /mnt/hda5    #掛載一個Windows FAT32文件系統(tǒng)
mount /dev/sda1 /mnt/usbdisk         #掛載一個usb 捷盤或閃存設(shè)備
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share      #掛載一個windows
#磁盤相關(guān)操作命令
```linux
df -h           #顯示已經(jīng)掛載的分區(qū)列表
ls -lSr |more    #以尺寸大小排列文件和目錄
du -sh dir1      #估算目錄 'dir1' 已經(jīng)使用的磁盤空間'
du -sk * | sort -rn     #以容量大小為依據(jù)依次顯示文件和目錄的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 
#以大小為依據(jù)依次顯示已安裝的rpm包所使用的空間 (fedora, redhat類系統(tǒng))
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 
#以大小為依據(jù)顯示已安裝的deb包所使用的空間 (ubuntu, debian類系統(tǒng))

用戶和群組以及密碼設(shè)置命令

groupadd group_name   #創(chuàng)建一個新用戶組
groupdel group_name   #刪除一個用戶組
groupmod -n new_group_name old_group_name   #重命名一個用戶組
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1     #創(chuàng)建一個屬于 "admin" 用戶組的用戶
useradd user1      #創(chuàng)建一個新用戶
userdel -r user1   #刪除一個用戶 ( '-r' 排除主目錄)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1   #修改用戶屬性

passwd         #修改口令
passwd user1   #修改一個用戶的口令 (只允許root執(zhí)行)
chage -E 2005-12-31 user1    #設(shè)置用戶口令的失效期限
pwck     #檢查 '/etc/passwd' 的文件格式和語法修正以及存在的用戶
grpck    #檢查 '/etc/passwd' 的文件格式和語法修正以及存在的群組
newgrp group_name     #登陸進一個新的群組以改變新創(chuàng)建文件的預(yù)設(shè)群組

網(wǎng)絡(luò)相關(guān)命令

ifconfig eth0    #顯示一個以太網(wǎng)卡的配置
ifup eth0        #啟用一個 'eth0' 網(wǎng)絡(luò)設(shè)備
ifdown eth0      #禁用一個 'eth0' 網(wǎng)絡(luò)設(shè)備
ifconfig eth0 192.168.1.1 netmask 255.255.255.0     #控制IP地址
ifconfig eth0 promisc     #設(shè)置 'eth0' 成混雜模式以嗅探數(shù)據(jù)包 (sniffing)
dhclient eth0            #以dhcp模式啟用 'eth0'

route -n    #查看路由表
route add -net 0/0 gw IP_Gateway    #配置默認(rèn)網(wǎng)關(guān)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 
#配置靜態(tài)路由到達(dá)網(wǎng)絡(luò)'192.168.0.0/16'
route del 0/0 gw IP_gateway        #刪除靜態(tài)路由

hostname #查看機器名
host www.example.com       #把一個主機名解析到一個網(wǎng)際地址或把一個網(wǎng)際地址解析到一個主機名。
nslookup www.example.com   #用于查詢DNS的記錄,查看域名解析是否正常,在網(wǎng)絡(luò)故障的時候用來診斷網(wǎng)絡(luò)問題。
ip link show            #查看網(wǎng)卡信息
mii-tool                #用于查看、管理介質(zhì)的網(wǎng)絡(luò)接口的狀態(tài)
ethtool                 #用于查詢和設(shè)置網(wǎng)卡配置
netstat -tupl           #用于顯示TCP/UDP的狀態(tài)信息
tcpdump tcp port 80     #顯示所有http協(xié)議的流量

進程相關(guān)的命令

#ps命令,用于將某個時間點的進程運行情況選取下來并輸出,process之意
ps
 -A :所有的進程均顯示出來
 -a :不與terminal有關(guān)的所有進程
 -u :有效用戶的相關(guān)進程
 -x :一般與a參數(shù)一起使用,可列出較完整的信息
 -l :較長,較詳細(xì)地將PID的信息列出

ps aux # 查看系統(tǒng)所有的進程數(shù)據(jù)
ps ax # 查看不與terminal有關(guān)的所有進程
ps -lA # 查看系統(tǒng)所有的進程數(shù)據(jù)
ps axjf # 查看連同一部分進程樹狀態(tài)

#kill命令,俗稱殺死某個進程,用于向某個工作(%jobnumber)或者是某個PID(數(shù)字)傳送一個信號,它通常與ps和jobs命令一起使用
#命令格式 : kill[命令參數(shù)][進程id]
-命令參數(shù):
  -l  信號,若果不加信號的編號參數(shù),則使用“-l”參數(shù)會列出全部的信號名稱
  -a  當(dāng)處理當(dāng)前進程時,不限制命令名和進程號的對應(yīng)關(guān)系
  -p  指定kill 命令只打印相關(guān)進程的進程號,而不發(fā)送任何信號
  -s  指定發(fā)送信號
  -u  指定用戶

kill -l #列出所有信號名稱 命令 總共有64個,只有第9種信號(SIGKILL)才可以無條件終止進程,其他信號進程都有權(quán)利忽略
#最常用的:
HUP    1    終端斷線
INT     2    中斷(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    終止
KILL    9    強制終止
CONT   18    繼續(xù)(與STOP相反, fg/bg命令)
STOP    19    暫停(同 Ctrl + Z)
kill –9 3268   // -9 強制殺掉進程3268

#killall 命令,向一個命令啟動的進程發(fā)送一個信號,用于殺死指定名字的進程
命令參數(shù):
-Z 只殺死擁有scontext 的進程
-e 要求匹配進程名稱
-I 忽略小寫
-g 殺死進程組而不是進程
-i 交互模式,殺死進程前先詢問用戶
-l 列出所有的已知信號名稱
-q 不輸出警告信息
-s 發(fā)送指定的信號
-v 報告信號是否成功發(fā)送
-w 等待進程死亡
--help 顯示幫助信息
--version 顯示版本顯示
killall nginx  #殺死所有同名進程
killall -9 bash #殺死所有同名進程

#top命令,是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務(wù)管理器
#如何殺死進程:
#(1)圖形化界面的方式
#(2)kill -9 pid  (-9表示強制關(guān)閉)
#(3)killall -9 程序的名字
#(4)pkill 程序的名字

#查看進程端口號:
netstat -tunlp|grep 8080
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容