一、基本命令
- 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 [引數] <原始檔或目錄> <目標檔案或目錄>
連結分“軟連結”和“硬連結”
- 軟連結:
ln–s /usr/share/do doc :建立一個連結檔案 doc,並指向目錄/usr/share/do
- 硬連結:
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 引數:顯示檔案列表)