600條最強 Linux 命令總結(珍藏版)

EasTward發表於2024-08-26

一、基本命令

  • uname -m 顯示機器的處理器架構
  • uname -r 顯示正在使用的核心版本
  • dmidecode -q 顯示硬體系統部件
  • (SMBIOS / DMI) hdparm -i /dev/hda 羅列一個磁碟的架構特性
  • hdparm -tT /dev/sda 在磁碟上執行測試性讀取作業系統資訊
  • arch 顯示機器的處理器架構
  • uname -m 顯示機器的處理器架構
  • uname -r 顯示正在使用的核心版本
  • dmidecode -q 顯示硬體系統部件 - (SMBIOS / DMI)
  • hdparm -i /dev/hda 羅列一個磁碟的架構特性
  • hdparm -tT /dev/sda 在磁碟上執行測試性讀取操作
  • cat /proc/cpuinfo 顯示CPU info的資訊
  • cat /proc/interrupts 顯示中斷
  • cat /proc/meminfo 校驗記憶體使用
  • cat /proc/swaps 顯示哪些swap被使用
  • cat /proc/version 顯示核心的版本
  • cat /proc/net/dev 顯示網路介面卡及統計
  • cat /proc/mounts 顯示已載入的檔案系統
  • lspci -tv 羅列 PCI 裝置
  • lsusb -tv 顯示 USB 裝置
  • date 顯示系統日期
  • cal 2007 顯示2007年的日曆表
  • date 041217002007.00 設定日期和時間 - 月日時分年.秒
  • clock -w 將時間修改儲存到 BIOS

二、關機

  • shutdown -h now 關閉系統(1)
  • init 0 關閉系統(2)
  • telinit 0 關閉系統(3)
  • shutdown -h hours:minutes & 按預定時間關閉系統
  • shutdown -c 取消按預定時間關閉系統
  • shutdown -r now 重啟(1)
  • reboot 重啟(2)
  • logout 登出

三、檔案和目錄

  • cd /home 進入 '/ home' 目錄'
  • cd .. 返回上一級目錄
  • cd ../.. 返回上兩級目錄
  • cd 進入個人的主目錄
  • cd ~user1 進入個人的主目錄
  • cd - 返回上次所在的目錄
  • pwd 顯示工作路徑
  • ls 檢視目錄中的檔案
  • ls -F 檢視目錄中的檔案
  • ls -l 顯示檔案和目錄的詳細資料
  • ls -a 顯示隱藏檔案
  • ls [0-9] 顯示包含數字的檔名和目錄名
  • tree 顯示檔案和目錄由根目錄開始的樹形結構(1)
  • lstree 顯示檔案和目錄由根目錄開始的樹形結構(2)
  • mkdir dir1 建立一個叫做 'dir1' 的目錄'
  • mkdir dir1 dir2 同時建立兩個目錄
  • mkdir -p /tmp/dir1/dir2 建立一個目錄樹
  • rm -f file1 刪除一個叫做 'file1' 的檔案'
  • rmdir dir1 刪除一個叫做 'dir1' 的目錄'
  • rm -rf dir1 刪除一個叫做 'dir1' 的目錄並同時刪除其內容
  • rm -rf dir1 dir2 同時刪除兩個目錄及它們的內容
  • mv dir1 new_dir 重新命名/移動 一個目錄
  • cp file1 file2 複製一個檔案
  • cp dir/* . 複製一個目錄下的所有檔案到當前工作目錄
  • cp -a /tmp/dir1 . 複製一個目錄到當前工作目錄
  • cp -a dir1 dir2 複製一個目錄
  • ln -s file1 lnk1 建立一個指向檔案或目錄的軟連結
  • ln file1 lnk1 建立一個指向檔案或目錄的物理連結
  • 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 從 '/' 開始進入根檔案系統搜尋檔案和目錄
  • find / -user user1 搜尋屬於使用者 'user1' 的檔案和目錄
  • find /home/user1 -name *.bin 在目錄 '/ home/user1' 中搜尋帶有'.bin' 結尾的檔案
  • find /usr/bin -type f -atime +100 搜尋在過去100天內未被使用過的執行檔案
  • find /usr/bin -type f -mtime -10 搜尋在10天內被建立或者修改過的檔案
  • find / -name *.rpm -exec chmod 755 '{}' ; 搜尋以 '.rpm' 結尾的檔案並定義其許可權
  • find / -xdev -name *.rpm 搜尋以 '.rpm' 結尾的檔案,忽略光碟機、捷盤等可移動裝置
  • locate *.ps 尋找以 '.ps' 結尾的檔案 - 先執行 'updatedb' 命令
  • whereis halt 顯示一個二進位制檔案、原始碼或man的位置
  • which halt 顯示一個二進位制檔案或可執行檔案的完整路徑

五、掛載一個檔案系統

  • mount /dev/hda2 /mnt/hda2 掛載一個叫做hda2的盤 - 確定目錄 '/ mnt/hda2' 已經存在
  • umount /dev/hda2 解除安裝一個叫做hda2的盤 - 先從掛載點 '/ mnt/hda2' 退出
  • fuser -km /mnt/hda2 當裝置繁忙時強制解除安裝
  • umount -n /mnt/hda2 執行解除安裝操作而不寫入 /etc/mtab 檔案- 當檔案為只讀或當磁碟寫滿時非常有用
  • 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檔案系統
  • mount /dev/sda1 /mnt/usbdisk 掛載一個usb 捷盤或快閃記憶體裝置
  • mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 掛載一個windows網路共享

六、磁碟空間

  • df -h 顯示已經掛載的分割槽列表
  • ls -lSr |more 以尺寸大小排列檔案和目錄
  • du -sh dir1 估算目錄 'dir1' 已經使用的磁碟空間'
  • du -sk * | sort -rn 以容量大小為依據依次顯示檔案和目錄的大小
  • rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小為依據依次顯示已安裝的rpm包所使用的空間 (fedora, redhat類系統)
  • dpkg-query -W -f='{Package}n' | sort -k1,1n 以大小為依據顯示已安裝的deb包所使用的空間 (ubuntu, debian類系統)

七、使用者和群組

  • groupadd group_name 建立一個新使用者組
  • groupdel group_name 刪除一個使用者組
  • groupmod -n new_group_name old_group_name 重新命名一個使用者組
  • useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 建立一個屬於 "admin" 使用者組的使用者
  • useradd user1 建立一個新使用者
  • userdel -r user1 刪除一個使用者 ( '-r' 排除主目錄)
  • usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改使用者屬性
  • passwd 修改口令
  • passwd user1 修改一個使用者的口令 (只允許root執行)
  • chage -E 2005-12-31 user1 設定使用者口令的失效期限
  • pwck 檢查 '/etc/passwd' 的檔案格式和語法修正以及存在的使用者
  • grpck 檢查 '/etc/passwd' 的檔案格式和語法修正以及存在的群組
  • newgrp group_name 登陸進一個新的群組以改變新建立檔案的預設群組

八、檔案的許可權 使用 “+” 設定許可權,使用 “-” 用於取消

  • ls -lh 顯示許可權
  • ls /tmp | pr -T5 -W$COLUMNS 將終端劃分成5欄顯示
  • chmod ugo+rwx directory1 設定目錄的所有人(u)、群組(g)以及其他人(o)以讀(r )、寫(w)和執行(x)的許可權
  • chmod go-rwx directory1 刪除群組(g)與其他人(o)對目錄的讀寫執行許可權
  • chown user1 file1 改變一個檔案的所有人屬性
  • chown -R user1 directory1 改變一個目錄的所有人屬性並同時改變改目錄下所有檔案的屬性
  • chgrp group1 file1 改變檔案的群組
  • chown user1:group1 file1 改變一個檔案的所有人和群組屬性
  • find / -perm -u+s 羅列一個系統中所有使用了SUID控制的檔案
  • chmod u+s /bin/file1 設定一個二進位制檔案的 SUID 位 - 執行該檔案的使用者也被賦予和所有者同樣的許可權
  • chmod u-s /bin/file1 禁用一個二進位制檔案的 SUID位
  • chmod g+s /home/public 設定一個目錄的SGID 位 - 類似SUID ,不過這是針對目錄的
  • chmod g-s /home/public 禁用一個目錄的 SGID 位
  • chmod o+t /home/public 設定一個檔案的 STIKY 位 - 只允許合法所有人刪除檔案
  • chmod o-t /home/public 禁用一個目錄的 STIKY 位
  • chmod +x 檔案路徑 為所有者、所屬組和其他使用者新增執行的許可權
  • chmod -x 檔案路徑 為所有者、所屬組和其他使用者刪除執行的許可權
  • chmod u+x 檔案路徑 為所有者新增執行的許可權
  • chmod g+x 檔案路徑 為所屬組新增執行的許可權
  • chmod o+x 檔案路徑 為其他使用者新增執行的許可權
  • chmod ug+x 檔案路徑 為所有者、所屬組新增執行的許可權
  • chmod =wx 檔案路徑 為所有者、所屬組和其他使用者新增寫、執行的許可權,取消讀許可權
  • chmod ug=wx 檔案路徑 為所有者、所屬組新增寫、執行的許可權,取消讀許可權

九、檔案的特殊屬性 ,使用 “+” 設定許可權,使用 “-” 用於取消

  • chattr +a file1 只允許以追加方式讀寫檔案
  • chattr +c file1 允許這個檔案能被核心自動壓縮/解壓
  • chattr +d file1 在進行檔案系統備份時,dump程式將忽略這個檔案
  • chattr +i file1 設定成不可變的檔案,不能被刪除、修改、重新命名或者連結
  • chattr +s file1 允許一個檔案被安全地刪除
  • chattr +S file1 一旦應用程式對這個檔案執行了寫操作,使系統立刻把修改的結果寫到磁碟
  • chattr +u file1 若檔案被刪除,系統會允許你在以後恢復這個被刪除的檔案
  • lsattr 顯示特殊的屬性

十、打包和壓縮檔案

  • 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 建立一個叫做 '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 建立一個非壓縮的 tarball
  • tar -cvf archive.tar file1 file2 dir1 建立一個包含了 'file1', 'file2' 以及 'dir1'的檔案檔案
  • tar -tf archive.tar 顯示一個包中的內容
  • tar -xvf archive.tar 釋放一個包
  • tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
  • tar -cvfj archive.tar.bz2 dir1 建立一個bzip2格式的壓縮包
  • tar -xvfj archive.tar.bz2 解壓一個bzip2格式的壓縮包
  • tar -cvfz archive.tar.gz dir1 建立一個gzip格式的壓縮包
  • tar -xvfz archive.tar.gz 解壓一個gzip格式的壓縮包
  • zip file1.zip file1 建立一個zip格式的壓縮包
  • zip -r file1.zip file1 file2 dir1 將幾個檔案和目錄同時壓縮成一個zip格式的壓縮包
  • unzip file1.zip 解壓一個zip格式壓縮包

十一、RPM 包

  • rpm -ivh package.rpm 安裝一個rpm包
  • rpm -ivh --nodeeps package.rpm 安裝一個rpm包而忽略依賴關係警告
  • rpm -U package.rpm 更新一個rpm包但不改變其配置檔案
  • rpm -F package.rpm 更新一個確定已經安裝的rpm包
  • rpm -e package_name.rpm 刪除一個rpm包
  • rpm -qa 顯示系統中所有已經安裝的rpm包
  • rpm -qa | grep httpd 顯示所有名稱中包含 "httpd" 字樣的rpm包
  • rpm -qi package_name 獲取一個已安裝包的特殊資訊
  • rpm -qg "System Environment/Daemons" 顯示一個元件的rpm包
  • rpm -ql package_name 顯示一個已經安裝的rpm包提供的檔案列表
  • rpm -qc package_name 顯示一個已經安裝的rpm包提供的配置檔案列表
  • rpm -q package_name --whatrequires 顯示與一個rpm包存在依賴關係的列表
  • rpm -q package_name --whatprovides 顯示一個rpm包所佔的體積
  • rpm -q package_name --scripts 顯示在安裝/刪除期間所執行的指令碼l
  • rpm -q package_name --changelog 顯示一個rpm包的修改歷史
  • rpm -qf /etc/httpd/conf/httpd.conf 確認所給的檔案由哪個rpm包所提供
  • rpm -qp package.rpm -l 顯示由一個尚未安裝的rpm包提供的檔案列表
  • rpm --import /media/cdrom/RPM-GPG-KEY 匯入公鑰數字證書
  • rpm --checksig package.rpm 確認一個rpm包的完整性
  • rpm -qa gpg-pubkey 確認已安裝的所有rpm包的完整性
  • rpm -V package_name 檢查檔案尺寸、 許可、型別、所有者、群組、MD5檢查以及最後修改時間
  • rpm -Va 檢查系統中所有已安裝的rpm包- 小心使用
  • rpm -Vp package.rpm 確認一個rpm包還未安裝
  • rpm2cpio package.rpm | cpio --extract --make-directories bin 從一個rpm包執行可執行檔案
  • rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 從一個rpm原始碼安裝一個構建好的包
  • rpmbuild --rebuild package_name.src.rpm 從一個rpm原始碼構建一個 rpm 包

十二、YUM 軟體包升級器

  • yum install package_name 下載並安裝一個rpm包
  • yum localinstall package_name.rpm 將安裝一個rpm包,使用你自己的軟體倉庫為你解決所有依賴關係
  • yum update package_name.rpm 更新當前系統中所有安裝的rpm包
  • yum update package_name 更新一個rpm包
  • yum remove package_name 刪除一個rpm包
  • yum list 列出當前系統中安裝的所有包
  • yum search package_name 在rpm倉庫中搜尋軟體包
  • yum clean packages 清理rpm快取刪除下載的包
  • yum clean headers 刪除所有標頭檔案
  • yum clean all 刪除所有快取的包和標頭檔案

十三、deb 包

  • dpkg -i package.deb 安裝/更新一個 deb 包
  • dpkg -r package_name 從系統刪除一個 deb 包
  • dpkg -l 顯示系統中所有已經安裝的 deb 包
  • dpkg -l | grep httpd 顯示所有名稱中包含 "httpd" 字樣的deb包
  • dpkg -s package_name 獲得已經安裝在系統中一個特殊包的資訊
  • dpkg -L package_name 顯示系統中已經安裝的一個deb包所提供的檔案列表
  • dpkg --contents package.deb 顯示尚未安裝的一個包所提供的檔案列表
  • dpkg -S /bin/ping 確認所給的檔案由哪個deb包提供
  • APT 軟體工具 (Debian, Ubuntu 以及類似系統)
  • apt-get install package_name 安裝/更新一個 deb 包
  • apt-cdrom install package_name 從光碟安裝/更新一個 deb 包
  • apt-get update 升級列表中的軟體包
  • apt-get upgrade 升級所有已安裝的軟體
  • apt-get remove package_name 從系統刪除一個deb包
  • apt-get check 確認依賴的軟體倉庫正確
  • apt-get clean 從下載的軟體包中清理快取
  • apt-cache search searched-package 返回包含所要搜尋字串的軟體包名稱

十四、檢視檔案內容

  • cat file1 從第一個位元組開始正向檢視檔案的內容
  • tac file1 從最後一行開始反向檢視一個檔案的內容
  • more file1 檢視一個長檔案的內容
  • less file1 類似於 'more' 命令,但是它允許在檔案中和正向操作一樣的反向操作
  • head -2 file1 檢視一個檔案的前兩行
  • tail -2 file1 檢視一個檔案的最後兩行
  • tail -f /var/log/messages 實時檢視被新增到一個檔案中的內容

十五、文字處理

  • 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 合併一個檔案的詳細說明文字,並將簡介寫入一個新檔案中
  • cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合併一個檔案的詳細說明文字,並將簡介寫入一個已有的檔案中
  • grep Aug /var/log/messages 在檔案 '/var/log/messages'中查詢關鍵詞"Aug"
  • grep ^Aug /var/log/messages 在檔案 '/var/log/messages'中查詢以"Aug"開始的詞彙
  • grep [0-9] /var/log/messages 選擇 '/var/log/messages' 檔案中所有包含數字的行
  • 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:]' 合併上下單元格內容
  • 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行內容
  • sed -n '5p;5q' example.txt 檢視第5行
  • sed -e 's/00*/0/g' example.txt 用單個零替換多個零
  • cat -n file1 標示檔案的行數
  • cat example.txt | awk 'NR%2==1' 刪除example.txt檔案中的所有偶數行
  • echo a b c | awk '{print $1}' 檢視一行第一欄
  • echo a b c | awk '{print 3}' 檢視一行的第一和第三欄
  • paste file1 file2 合併兩個檔案或兩欄的內容
  • paste -d '+' file1 file2 合併兩個檔案或兩欄的內容,中間用"+"區分
  • sort file1 file2 排序兩個檔案的內容
  • sort file1 file2 | uniq 取出兩個檔案的並集(重複的行只保留一份)
  • sort file1 file2 | uniq -u 刪除交集,留下其他的行
  • sort file1 file2 | uniq -d 取出兩個檔案的交集(只留下同時存在於兩個檔案中的檔案)
  • comm -1 file1 file2 比較兩個檔案的內容只刪除 'file1' 所包含的內容
  • comm -2 file1 file2 比較兩個檔案的內容只刪除 'file2' 所包含的內容
  • comm -3 file1 file2 比較兩個檔案的內容只刪除兩個檔案共有的部分

十六、字元設定和檔案格式轉換

  • dos2unix filedos.txt fileunix.txt 將一個文字檔案的格式從MSDOS轉換成UNIX
  • unix2dos fileunix.txt filedos.txt 將一個文字檔案的格式從UNIX轉換成MSDOS
  • recode ..HTML < page.txt > page.html 將一個文字檔案轉換成html
  • recode -l | more 顯示所有允許的轉換格式

十七、檔案系統分析

  • badblocks -v /dev/hda1 檢查磁碟hda1上的壞磁塊
  • fsck /dev/hda1 修復/檢查hda1磁碟上linux檔案系統的完整性
  • fsck.ext2 /dev/hda1 修復/檢查hda1磁碟上ext2檔案系統的完整性
  • e2fsck /dev/hda1 修復/檢查hda1磁碟上ext2檔案系統的完整性
  • e2fsck -j /dev/hda1 修復/檢查hda1磁碟上ext3檔案系統的完整性
  • fsck.ext3 /dev/hda1 修復/檢查hda1磁碟上ext3檔案系統的完整性
  • fsck.vfat /dev/hda1 修復/檢查hda1磁碟上fat檔案系統的完整性
  • fsck.msdos /dev/hda1 修復/檢查hda1磁碟上dos檔案系統的完整性
  • dosfsck /dev/hda1 修復/檢查hda1磁碟上dos檔案系統的完整性

十八、初始化一個檔案系統

  • mkfs /dev/hda1 在hda1分割槽建立一個檔案系統
  • mke2fs /dev/hda1 在hda1分割槽建立一個linux ext2的檔案系統
  • mke2fs -j /dev/hda1 在hda1分割槽建立一個linux ext3(日誌型)的檔案系統
  • mkfs -t vfat 32 -F /dev/hda1 建立一個 FAT32 檔案系統
  • fdformat -n /dev/fd0 格式化一個軟盤
  • mkswap /dev/hda3 建立一個swap檔案系統

十九、SWAP 檔案系統

  • mkswap /dev/hda3 建立一個swap檔案系統
  • swapon /dev/hda3 啟用一個新的swap檔案系統
  • swapon /dev/hda2 /dev/hdb3 啟用兩個swap分割槽

二十、備份

  • dump -0aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的完整備份
  • dump -1aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的互動式備份
  • restore -if /tmp/home0.bak 還原一個互動式備份
  • rsync -rogpav --delete /home /tmp 同步兩邊的目錄
  • rsync -rogpav -e ssh --delete /home ip_address:/tmp 透過SSH通道rsync
  • rsync -az -e ssh --delete ip_addr:/home/public /home/local 透過ssh和壓縮將一個遠端目錄同步到本地目錄
  • rsync -az -e ssh --delete /home/local ip_addr:/home/public 透過ssh和壓縮將本地目錄同步到遠端目錄
  • dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 透過ssh在遠端主機上執行一次備份本地磁碟的操作
  • dd if=/dev/sda of=/tmp/file1 備份磁碟內容到一個檔案
  • tar -Puf backup.tar /home/user 執行一次對 '/home/user' 目錄的互動式備份操作
  • ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 透過ssh在遠端目錄中複製一個目錄內容
  • ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 透過ssh在遠端目錄中複製一個本地目錄
  • tar cf - . | (cd /tmp/backup ; tar xf - ) 本地將一個目錄複製到另一個地方,保留原有許可權及連結
  • find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 從一個目錄查詢並複製所有以 '.txt' 結尾的檔案到另一個目錄
  • find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查詢所有以 '.log' 結尾的檔案並做成一個bzip包
  • dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一個將 MBR (Master Boot Record)內容複製到軟盤的動作
  • dd if=/dev/fd0 of=/dev/hda bs=512 count=1 從已經儲存到軟盤的備份中恢復MBR內容

二十一、光碟

  • cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一個可複寫的光碟內容
  • mkisofs /dev/cdrom > cd.iso 在磁碟上建立一個光碟的iso映象檔案
  • mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁碟上建立一個壓縮了的光碟iso映象檔案
  • mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 建立一個目錄的iso映象檔案
  • cdrecord -v dev=/dev/cdrom cd.iso 燒錄一個ISO映象檔案
  • gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 燒錄一個壓縮了的ISO映象檔案
  • mount -o loop cd.iso /mnt/iso 掛載一個ISO映象檔案
  • cd-paranoia -B 從一個CD光碟轉錄音軌到 wav 檔案中
  • cd-paranoia -- "-3" 從一個CD光碟轉錄音軌到 wav 檔案中(引數-3)
  • cdrecord --scanbus 掃描匯流排以識別scsi通道
  • dd if=/dev/hdc | md5sum 校驗一個裝置的md5sum編碼,例如一張 CD

二十二、網路(乙太網和 WIFI 無線)

  • ifconfig eth0 顯示一個乙太網卡的配置
  • ifup eth0 啟用一個 'eth0' 網路裝置
  • ifdown eth0 禁用一個 'eth0' 網路裝置
  • ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
  • ifconfig eth0 promisc 設定 'eth0' 成混雜模式以嗅探資料包 (sniffing)
  • dhclient eth0 以dhcp模式啟用 'eth0'
  • route -n show routing table
  • route add -net 0/0 gw IP_Gateway configura default gateway
  • route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'
  • route del 0/0 gw IP_gateway remove static route
  • echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing
  • hostname show hostname of system
  • host www.example.com lookup hostname to resolve name to ip address and viceversa(1)
  • nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2)
  • ip link show show link status of all interfaces
  • mii-tool eth0 show link status of 'eth0'
  • ethtool eth0 show statistics of network card 'eth0'
  • netstat -tup show all active network connections and their PID
  • netstat -tupl show all network services listening on the system and their PID
  • tcpdump tcp port 80 show all HTTP traffic
  • iwlist scan show wireless networks
  • iwconfig eth1 show configuration of a wireless network card
  • hostname show hostname
  • host www.example.com lookup hostname to resolve name to ip address and viceversa
  • nslookup www.example.com lookup hostname to resolve name to ip address and viceversa
  • whois www.example.com lookup on Whois database

二十三、列出目錄內容

  • ls -a:顯示所有檔案(包括隱藏檔案);
  • ls -l:顯示詳細資訊;
  • ls -R:遞迴顯示子目錄結構;
  • ls -ld:顯示目錄和連結資訊;
  • ctrl+r:歷史記錄中所搜命令(輸入命令中的任意一個字元);
  • Linux中以.開頭的檔案是隱藏檔案;
  • pwd:顯示當前目錄

二十四、檢視檔案的型別

  • file:檢視檔案的型別

二十五、檔案目錄其他命令

cp:複製檔案和目錄 cp 原始檔(資料夾)目標檔案(資料夾)

  • 常用引數:-r:遞迴複製整個目錄樹;-v:顯示詳細資訊;
  • 複製資料夾時要在 cp 命令後面加一個-r 引數:
  • 如:cp -r 原始檔夾 目標資料夾

touch+檔名:當檔案不存在的時候,建立相應的檔案;當檔案存在的時候,修改檔案的建立時間。

  • 功能:生成一個空檔案或修改檔案的存取/修改的時間記錄值。
touch * :將當前下的檔案時間修改為系統的當前時間
touch –d 20040210 test:將 test 檔案的日期改為 20040210
touch abc :若 abc 檔案存在,則修改為系統的當前時間;若不存在,則生成一個為當前時間的空檔案

mv 檔案 目標目錄:移動或重新命名檔案或目錄(如果指定檔名,則可以重新命名檔案)。可以將檔案及目錄移到另一目錄下,或更改檔案及目錄的名稱。

  • 格式為:mv [引數]<原始檔或目錄> <目標檔案或目錄>
mva.txt ../:將 a.txt 檔案移動上層目錄
mv a.txt b.txt:將 a.txt 改名為 b.txt
mvdir2 ../:將 dir2 目錄上移一層

rm:刪除檔案;

  • 常用引數:-i:互動式 -r:遞迴的刪除包括目錄中的所有內容

mkdir +資料夾名稱:建立資料夾;

rm -r +資料夾名稱:刪除資料夾(空資料夾和非空資料夾都可刪除)

rmdir 資料夾名稱:刪除資料夾(只能刪除空資料夾)

mkdir -p dir1/dir2:在當前目錄下建立 dir1 目錄,並在 dir1 目錄下建立 dir2 目錄, 也就是連續建立兩個目錄(dir1/和 dir1/dir2)

rmdir –p dir1/dir2:刪除 dir1 下的 dir2 目錄,若 dir1 目錄為空也刪除它

  • rm *:刪除當前目錄下的所有檔案
  • -f 引數:強迫刪除檔案 rm –f *.txt:強迫刪除所有以字尾名為 txt 檔案
  • -i 引數:刪除檔案時詢問
  • rm  –i * :刪除當前目錄下的所有檔案會有如下提示:
  • rm:backup:is a directory     遇到目錄會略過
  • rm: remove ‘myfiles.txt’ ? Y
  • 刪除檔案時會詢問,可按 Y 或 N 鍵表示允許或拒絕刪除檔案
  • -r 引數:遞迴刪除(連子目錄一同刪除,這是一個相當常用的引數)
  • rm -r test :刪除 test 目錄(含 test 目錄下所有檔案和子目錄)
  • rm -r *:刪除所有檔案(含當前目錄所有檔案、所有子目錄和子目錄下的檔案) 一般在刪除目錄時 r 和 f 一起用,避免麻煩
  • rm -rf test :強行刪除、不加詢問

grep:功能:在檔案中搜尋匹配的字元並進行輸出

  • 格式:grep[引數] <要找的字串> <要尋找字 串的原始檔>

greplinux test.txt:搜尋 test.txt 檔案中字串 linux 並輸出

ln 命令

  • 功能:在檔案和目錄之間建立連結
  • 格式:ln [引數] <原始檔或目錄> <目標檔案或目錄>

連結分“軟連結”和“硬連結”

  1. 軟連結:
ln–s /usr/share/do doc :建立一個連結檔案 doc,並指向目錄/usr/share/do
  1. 硬連結:
ln /usr/share/test hard:建立一個硬連結檔案 hard,這時對於 test 檔案對應 的儲存區域來說,又多了一個檔案指向它

二十六、系統常用命令

26.1 顯示命令

  • date:檢視或設定當前系統的時間:格式化顯示時間:+%Y--%m--%d;
  • date -s:設定當前系統的時間
  • hwclock(clock):顯示硬體時鐘時間(需要管理員許可權);
  • cal:檢視日曆
    • 格式 cal [引數] 月年
  • cal:顯示當月的日曆 cal4 2004 :顯示 2004 年 4 月的日曆
  • cal- y 2003:顯示 2003 年的日曆
  • uptime:檢視系統執行時間

26.2 輸出檢視命令

  • echo:顯示輸入的內容 追加檔案 echo "liuyazhuang" >> liuyazhuang.txt
  • cat:顯示檔案內容,也可以將數個檔案合併成一個檔案。
  • 格式:格式:cat[引數]<檔名>
  • cat test.txt:顯示 test.txt 檔案內容
  • cat test.txt | more :逐頁顯示 test.txt 檔案中的內容
  • cat test.txt >> test1.txt :將 test.txt 的內容附加到 test1.txt 檔案之後
  • cat test.txt test2.txt >readme.txt  : 將 test.txt 和 test2.txt 檔案合併成 readme.txt 檔案
  • head:顯示檔案的頭幾行(預設 10 行) -n:指定顯示的行數格式:head -n 檔名
  • tail:顯示檔案的末尾幾行(預設 10 行)-n:指定顯示的行數 -f:追蹤顯示檔案更新 (一般用於檢視日誌,命令不會退出,而是持續顯示新加入的內容)
  • 格式:格式:tail[引數]<檔名>
  • tail-10 /etc/passwd :顯示/etc/passwd/檔案的倒數 10 行內容
  • tail+10 /etc/passwd :顯示/etc/passwd/檔案從第 10 行開始到末尾的內容
  • more:用於翻頁顯示檔案內容(只能向下翻頁)
  • more 命令是一般用於要顯示的內容會超過一個畫面長度的情況。為了避免畫 面顯示時瞬間就閃過去,使用者可以使用 more 命令,讓畫面在顯示滿一頁時暫停,此時可按空格鍵繼續顯示下一個畫面,或按 Q 鍵停止顯示。
  • ls -al |more:以長格形式顯示 etc 目錄下的檔案列表,顯示滿一個畫面便暫停,可 按空格鍵繼續顯示下一畫面,或按 Q 鍵跳離
  • less:翻頁顯示檔案內容(帶上下翻頁)按下上鍵分頁,按 q 退出、‘
  • less 命令的用法與 more 命令類似,也可以用來瀏覽超過一頁的檔案。所不同 的是 less 命令除了可以按空格鍵向下顯示檔案外,還可以利用上下鍵來捲動檔案。當要結束瀏覽時,只要在 less 命令的提示符“:”下按 Q 鍵即可。
  • ls -al | less:以長格形式列出/etc 目錄中所有的內容。使用者可按上下鍵瀏覽或按 Q 鍵跳離

26.3 檢視硬體資訊

  • Ispci:檢視 PCI 裝置 -v:檢視詳細資訊
  • Isusb:檢視 USB 裝置 -v:檢視詳細資訊
  • Ismod:檢視載入的模組(驅動)

26.4 關機、重啟

  • shutdown 關閉、重啟計算機
  • shutdown[關機、重啟]時間 -h 關閉計算機 -r:重啟計算機
  • 如:立即關機:shutdown -h now
  • 10 分鐘後關機:shutdown -h +10
  • 23:30 分關機:shutdown -h 23:30
  • 立即重啟:shutdown -r now
  • poweroff:立即關閉計算機
  • reboot:立即重啟計算機

26.5 歸檔、壓縮

  • zip:壓縮檔案 zip liuyazhuang.zip myfile 格式為:“zip 壓縮後的 zip 檔案檔名”
  • unzip:解壓檔案 unzip liuyazhuang.zip
  • gzip:壓縮檔案 gzip 檔名
  • tar:歸檔檔案
  • tar -cvf out.tar liuyazhuang 打包一個歸檔(將檔案"liuyazhuang"打包成一個歸檔)
  • tar -xvf liuyazhuang.tar 釋放一個歸檔(釋放 liuyazhuang.tar 歸檔)
  • tar -cvzf backup.tar.gz/etc
    • -z 引數將歸檔後的歸檔檔案進行 gzip 壓縮以減少大小。
    • -c:建立一個新 tar 檔案
    • -v:顯示執行過程的資訊
    • -f:指定檔名
    • -z:呼叫 gzip 壓縮命令進行壓縮
    • -t:檢視壓縮檔案的內容
    • -x:解開 tar 檔案
  • tar -cvf test.tar *:將所有檔案打包成 test.tar,副檔名.tar 需自行加上
  • tar -zcvf test.tar.gz *:將所有檔案打包成 test.tar,再用 gzip 命令壓縮
  • tar -tf test.tar :檢視 test.tar 檔案中包括了哪些檔案
  • tar -xvf test.tar 將 test.tar 解開
  • tar -zxvf foo.tar.gz 解壓縮
  • gzip 各 gunzip 命令
  • gziptest.txt :壓縮檔案時,不需要任何引數
  • gizp–l test.txt.gz:顯示壓縮率

26.6 查詢

locate:快速查詢檔案、資料夾:locate keyword

此命令需要預先建立資料庫,資料庫預設每天更新一次,可用 updatedb 命令手工建立、更新資料庫。

find 查詢位置查詢引數

如:

  • find . -nameliuyazhuang查詢當前目錄下名稱中含有"liuyazhuang"的檔案
  • find / -name *.conf 查詢根目錄下(整個硬碟)下字尾為.conf 的檔案
  • find / -perm 777 查詢所有許可權是 777 的檔案
  • find / -type d 返回根目錄下所有的目錄
  • find . -name "a*"-exec ls -l {} ;
  • find 功能:用來尋找檔案或目錄。
  • 格式:find [<路徑>][匹配條件]
  • find / -name httpd.conf 搜尋系統根目錄下名為 httpd.conf 的檔案

26.7 其他常用命令

  • ctrl+c :終止當前的命令
  • who 或 w 命令
    • 功能:檢視當前系統中有哪些使用者登入
    • 格式:who/w[引數]
  • dmesg 命令
    • 功能:顯示系統診斷資訊、作業系統版本號、實體記憶體的大小以及其它資訊
  • df 命令
    • 功能:用於檢視檔案系統的各個分割槽的佔用情況
  • du 命令
    • 功能:檢視某個目錄中各級子目錄所使用的硬碟空間數
    • 格式:du [引數] <目錄名>
  • free 命令
    • 功能:用於檢視系統記憶體,虛擬記憶體(交換空間)的大小佔用情況

二十七、VIM

VIM 是一款功能強大的命令列文字編輯器,在 Linux 中透過 vim 命令可以啟動 vim 編輯器。

一般使用 vim + 目標檔案路徑 的形式使用 vim

如果目標檔案存在,則 vim 開啟目標檔案,如果目標檔案不存在,則 vim 新建並開啟該檔案

:q:退出 vim 編輯器

VIM 模式

vim 擁有三種模式:

1)命令模式(常規模式)

vim 啟動後,預設進入命令模式,任何模式都可以透過 esc 鍵回到命令模式(可以多按幾次),命令模式下可以鍵入不同的命令完成選擇、複製、貼上、撤銷等操作。

命名模式常用命令如下:

  • i : 在游標前插入文字;
  • o:在當前行的下面插入新行;
  • dd:刪除整行;
  • yy:將當前行的內容放入緩衝區(複製當前行)
  • n+yy :將 n 行的內容放入緩衝區(複製 n 行)
  • p:將緩衝區中的文字放入游標後(貼上)
  • u:撤銷上一個操作
  • r:替換當前字元
  • / 查詢關鍵字
2)插入模式

在命令模式下按 " i "鍵,即可進入插入模式,在插入模式可以輸入編輯文字內容,使用 esc 鍵可以返回命令模式。

3)ex 模式

在命令模式中按" : "鍵可以進入 ex 模式,游標會移動到底部,在這裡可以儲存修改或退出 vim.

ext 模式常用命令如下:

  • :w :儲存當前的修改
  • :q :退出
  • :q! :強制退出,儲存修改
  • :x :儲存並退出,相當於:wq
  • :set number 顯示行號
  • :! 系統命令 執行一個系統命令並顯示結果
  • :sh :切換到命令列,使用 ctrl+d 切換回 vim

二十八、軟體包管理命令(RPM)

28.1、軟體包的安裝

使用 RPM 命令的安裝模式可以將軟體包內所有的元件放到系統中的正確路徑,安裝軟體包的命令是:rpm –ivh wu-ftpd-2.6.2-8.i386.rpm

i:作用 rpm 的安裝模式 v: 校驗檔案資訊 h: 以#號顯示安裝進度

28.2、軟體包的刪除

刪除模式會將指定軟體包的內容全部刪除,但並不包括已更改過的配置檔案,刪除 RPM 軟體包的命令如下:rpm –e wu-ftpd

注意:這裡必須使用軟體名“wu-ftpd”或”wu-ftpd-2.6.2-8 而不是使用當初安裝時的軟體包名.wu-ftpd-2.6.2-8.i386.rpm

28.3、軟體包升級

升級模式會安裝使用者所指定的更新版本,並刪除已安裝在系統中的相同軟體包,升級軟體包命令如下:rpm –Uvh wu-ftpd-2.6.2-8.i386.rpm –Uvh:升級引數

28.4、軟體包更新

更新模式下,rpm 命令會檢查在命令列中所指定的軟體包是否比系統中原有的軟體 包更新。如果情況屬實,rpm 命令會自動更新指定的軟體包;反之,若系統中並沒有指定軟體包的較舊版本,rpm 命令並不會安裝此軟體包。而在升級模式下,不管系統中是否有較舊的版本,rpm 命令都會安裝指定的軟體包。

rpm –Fvhwu-ftpd-2.6.2-8.i386.rpm -Fvh:更新引數

28.5、軟體包查詢

若要獲取 RPM 軟體包的相關資訊,可以使用查詢模式。使用-q 引數可查詢一個已 安裝的軟體包的內容

rpm –q wu-ftpd

查詢軟體包所安裝的位置:

rpm –ql package-name

rpm –ql xv (l 引數:顯示檔案列表)

相關文章