Linux常用指令集

以下整理了Linux比較常用的指令,因為不常用所以很多沒背下來,但用到時總是得重新Google,在此記錄備忘。


1 關機 (系統的關機、重啟以及登出)


shutdown -h now 關閉系統(1)

init 0 關閉系統(2)

telinit 0 關閉系統(3)

shutdown -h hours:minutes & 按預定時間關閉系統

shutdown -c 取消按預定時間關閉系統

shutdown -r now 重啟(1)

reboot 重啟(2)

logout 登出

2 文件和目錄


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 創建一個指向文件或目錄的物理鏈接

3 文件搜索


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 顯示一個二進製文件或可執行文件的完整路徑

4 系統信息


arch 顯示機器的處理​​器架構(1)

uname -m 顯示機器的處理​​器架構(2)

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 2016 顯示2016年的日曆表

date 041217002016.00 設置日期和時間 – 月日時分年.秒

clock -w 將時間修改保存到 BIOS

5 用戶和群組


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 登陸進一個新的群組以改變新創建文件的預設群組

6 RPM 包 – (Fedora, Redhat及類似系統)


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 包

7 YUM 軟件包升級器 – (Fedora, RedHat及類似系統)


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 刪除所有緩存的包和頭文件

8 DEB 包 (Debian, Ubuntu 以及類似系統)


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包提供

9 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 返回包含所要搜索字符串的軟件包名稱

10 查看文件內容


cat file1 從第一個字節開始正向查看文件的內容

tac file1 從最後一行開始反向查看一個文件的內容

more file1 查看一個長文件的內容

less file1 類似於 ‘more’ 命令,但是它允許在文件中和正向操作一樣的反向操作

head -2 file1 查看一個文件的前兩行

tail -2 file1 查看一個文件的最後兩行

tail -f /var/log/messages 實時查看被添加到一個文件中的內容

11 文件系統分析


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文件系統的完整性

12 初始化一個文件系統


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文件系統

13 SWAP文件系統


mkswap /dev/hda3 創建一個swap文件系統

swapon /dev/hda3 啟用一個新的swap文件系統

swapon /dev/hda2 /dev/hdb3 啟用兩個swap分區