CentOS常用基礎命令大全(linux命令)
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.查看系統信息的命令
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 2007 顯示2007年的日歷表
date 041217002007.00 設置日期和時間 - 月日時分年.秒
clock -w 將時間修改保存到 BIOS
3.文件和目錄操作命令
cd /home 進入 ‘/ home’ 目錄’
cd … 返回上一級目錄
cd …/… 返回上兩級目錄
cd 進入個人的主目錄
cd ~user1 進入個人的主目錄
cd - 返回上次所在的目錄
pwd 顯示工作路徑
ls 查看目錄中的文件
ls -F 查看目錄中的文件
ls -l 顯示文件和目錄的詳細資料
ls -a 顯示隱藏文件
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 file1 創建一個文件
4.文件搜索命令
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天內被創建或者修改過的文件
locate *.ps 尋找以 ‘.ps’ 結尾的文件 - 先運行 ‘updatedb’ 命令
whereis file 顯示一個二進制文件、源碼或man的位置
which file 顯示一個二進制文件或可執行文件的完整路徑
5.查看文件內容
cat file1 從第一個字節開始正向查看文件的內容
tac file1 從最后一行開始反向查看一個文件的內容
more file1 查看一個長文件的內容
less file1 類似于 ‘more’ 命令,但是它允許在文件中和正向操作一樣的反向操作
head -2 file1 查看一個文件的前兩行
tail -2 file1 查看一個文件的最后兩行 5.掛載命令
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 掛載一個光盤
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網絡共享
6.磁盤空間操作的命令
df -h 顯示已經掛載的分區列表
ls -lSr |more 以尺寸大小排列文件和目錄
du -sh dir1 估算目錄 ‘dir1’ 已經使用的磁盤空間’
du -sk * | sort -rn 以容量大小為依據依次顯示文件和目錄的大小
7.用戶和群組相關命令
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’ 同時刪除除主目錄)
passwd user1 修改一個用戶的口令 (只允許root執行)
chage -E 2005-12-31 user1 設置用戶口令的失效期限
ls -lh 顯示權限
chmod 777 directory1 設置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r )、寫(w)和執行(x)的權限
chmod 700 directory1 刪除群組(g)與其他人(o)對目錄的讀寫執行權限
chown user1 file1 改變一個文件的所有人屬性,為use1。
chown -R user1 directory1 改變一個目錄的所有人屬性并同時改變改目錄下所有文件的屬性都為use1所有
chgrp group1 file1 改變文件的群組為group1
chown user1:group1 file1 改變一個文件的所有人和群組屬性,所屬組為group1,用戶為use1。
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 位
8.打包和解壓縮文件的命令
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 創建一個非壓縮的tar包
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目錄下 (-c是指定目錄)
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格式壓縮包
9.關于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 -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 包
10.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 刪除所有緩存的包和頭文件
11.cat:一頁查看文件
12.less:可控分頁查看,上下線前后翻頁。less [參數] 文件
-b <緩沖區大小> 設置緩沖區的大小
-e 當文件顯示結束后,自動離開
-f 強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g 只標志最后搜索的關鍵詞
-i 忽略搜索時的大小寫
-m 顯示類似more命令的百分比
-N 顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-Q 不使用警告音
-s 顯示連續空行為一行
-S 行過長時間將超出部分舍棄
-x <數字> 將"tab"鍵顯示為規定的數字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重復前一個搜索(與 / 或 ? 有關)
N:反向重復前一個搜索(與 / 或 ? 有關)
b 向上翻一頁
d 向后翻半頁
h 顯示幫助界面
Q 退出less 命令
u 向前滾動半頁
y 向前滾動一行
空格鍵 滾動一頁
回車鍵 滾動一行
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
13.touch:創建空文件。touch命令用于修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統會建立一個新的文件。
touch [-acfm][-d<日期時間>][-r<參考文件或目錄>] [-t<日期時間>][–help][–version][文件或目錄…]
參數說明:
a 改變檔案的讀取時間記錄。
m 改變檔案的修改時間記錄。
c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。
f 不使用,是為了與其他 unix 系統的相容性而保留。
r 使用參考檔的時間記錄,與 --file 的效果一樣。
d 設定時間與日期,可以使用各種不同的格式。
t 設定檔案的時間記錄,格式與 date 指令相同。
–no-create 不會建立新檔案。
–help 列出指令格式。
–version 列出版本訊息。
使用指令"touch"修改文件"testfile"的時間屬性為當前系統時間,輸入如下命令:
$ touch testfile #修改文件的時間屬性
首先,使用ls命令查看testfile文件的屬性,如下所示:
$ ls -l testfile #查看文件的時間屬性
#原來文件的修改時間為16:09
-rw-r–r-- 1 hdd hdd 55 2011-08-22 16:09 testfile
執行指令"touch"修改文件屬性以后,并再次查看該文件的時間屬性,如下所示:
$ touch testfile #修改文件時間屬性為當前系統時間
$ ls -l testfile #查看文件的時間屬性
#修改后文件的時間屬性為當前系統時間
-rw-r–r-- 1 hdd hdd 55 2011-08-22 19:53 testfile
使用指令"touch"時,如果指定的文件不存在,則將創建一個新的空白文件。例如,在當前目錄下,使用該指令創建一個空 白文件"file",輸入如下命令:$ touch file #創建一個名為“file”的新的空白文件
14.in:創建鏈接文件
15.find:查找文件 find [路徑] [匹配條件] [動作]
參數說明 :
路徑 是要查找的目錄路徑,可以是一個目錄或文件名,也可以是多個路徑,多個路徑之間用空格分隔,如果未指定路徑,則默認為當前目錄。
expression 是可選參數,用于指定查找的條件,可以是文件名、文件類型、文件大小等等。
匹配條件 中可使用的選項有二三十個之多,以下列出最常用的部份:
-name pattern:按文件名查找,支持使用通配符 * 和 ?。
-type type:按文件類型查找,可以是 f(普通文件)、d(目錄)、l(符號鏈接)等。
-size [±]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,單位可以是 c(字節)、w(字數)、b(塊數)、k(KB)、M(MB)或 G(GB)。
-mtime days:按修改時間查找,支持使用 + 或 - 表示在指定天數前或后,days 是一個整數表示天數。
-user username:按文件所有者查找。
-group groupname:按文件所屬組查找。
動作: 可選的,用于對匹配到的文件執行操作,比如刪除、復制等。
find 命令中用于時間的參數如下:
-amin n:查找在 n 分鐘內被訪問過的文件。
-atime n:查找在 n24 小時內被訪問過的文件。
-cmin n:查找在 n 分鐘內狀態發生變化的文件(例如權限)。
-ctime n:查找在 n24 小時內狀態發生變化的文件(例如權限)。
-mmin n:查找在 n 分鐘內被修改過的文件。
-mtime n:查找在 n24 小時內被修改過的文件。
在這些參數中,n 可以是一個正數、負數或零。正數表示在指定的時間內修改或訪問過的文件,負數表示在指定的時間之前修改或訪問過的文件,零表示在當前時間點上修改或訪問過的文件。
例如:-mtime 0 表示查找今天修改過的文件,-mtime -7 表示查找一周以前修改過的文件。
關于時間 n 參數的說明:
+n:查找比 n 天前更早的文件或目錄。
-n:查找在 n 天內更改過屬性的文件或目錄。
n:查找在 n 天前(指定那一天)更改過屬性的文件或目錄。
16.grep:文本搜索。Linux grep (global regular expression) 命令用于查找文件里符合條件的字符串或正則表達式。
grep 指令用于查找內容包含指定的范本樣式的文件,如果發現某文件的內容符合所指定的范本樣式,預設 grep 指令會把含有范本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為 -,則 grep 指令會從標準輸入設備讀取數據。
pattern - 表示要查找的字符串或正則表達式。
files - 表示要查找的文件名,可以同時查找多個文件,如果省略 files 參數,則默認從標準輸入中讀取數據。
-i:忽略大小寫進行匹配。
-v:反向查找,只打印不匹配的行。
-n:顯示匹配行的行號。
-r:遞歸查找子目錄中的文件。
-l:只打印匹配的文件名。
-c:只打印匹配的行數。
在文件 file.txt 中查找字符串 “hello”,并打印匹配的行:grep hello file.txt
在文件夾 dir 中遞歸查找所有文件中匹配正則表達式 “pattern” 的行,并打印匹配行所在的文件名和行號:
grep -r -n pattern dir/
在標準輸入中查找字符串 “world”,并只打印匹配的行數:echo “hello world” | grep -c world
在當前目錄中,查找后綴有 file 字樣的文件中包含 test 字符串的文件,并打印出該字符串的行。此時,可以使用如下命令:grep test file
結果如下所示:
$ grep test test #查找前綴有“test”的文件包含“test”字符串的文件*
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
以遞歸的方式查找符合條件的文件。例如,查找指定目錄/etc/acpi 及其子目錄(如果存在子目錄的話)下所有文件中包含字符串"update"的文件,并打印出該字符串所在行的內容,使用的命令為:grep -r update /etc/acpi
17.命令 加上–help查看幫助 --man也可以
18.Linux mv(英文全拼:move file)命令用來為文件或目錄改名、或將文件或目錄移入其它位置。
參數說明:
-b: 當目標文件或目錄存在時,在執行覆蓋前,會為其創建一個備份。
-i: 如果指定移動的源目錄或文件與目標的目錄或文件同名,則會先詢問是否覆蓋舊文件,輸入 y 表示直接覆蓋,輸入 n 表示取消該操作。
-f: 如果指定移動的源目錄或文件與目標的目錄或文件同名,不會詢問,直接覆蓋舊文件。
-n: 不要覆蓋任何已存在的文件或目錄。
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。
將源文件名 source_file 改為目標文件名 dest_file:mv source_file(文件) dest_file(文件)
將文件 source_file 移動到目標目錄 dest_directory 中:mv source_file(文件) dest_directory(目錄)
目錄名 dest_directory 已存在,將 source_directory 移動到目錄名 dest_directory 中;目錄名 dest_directory 不存在則 source_directory 改名為目錄名 dest_directory:mv source_directory(目錄) dest_directory(目錄)
出錯:mv source_directory(目錄) dest_file(文件)
將文件 aaa 改名為 bbb :mv aaa bbb
將 info 目錄放入 logs 目錄中。注意,如果 logs 目錄不存在,則該命令將 info 改名為 logs。:mv info/ logs
再如將 /usr/runoob 下的所有文件和目錄移到當前目錄下,命令行為:$ mv /usr/runoob/* .