文件和目錄 操作命令
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