今天,帶來一篇 Linux 命令總結的非常全的文章,也是我們平時工作中使用率非常高的操作命令,命令有點多,建議小伙伴們可以先收藏后閱讀。
## 1\. 基本命令
~~~
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
~~~
## 2\. 關機
~~~
shutdown -h now 關閉系統(1)
init 0 關閉系統(2)
telinit 0 關閉系統(3)
shutdown -h hours:minutes & 按預定時間關閉系統
shutdown -c 取消按預定時間關閉系統
shutdown -r now 重啟(1)
reboot 重啟(2)
logout 注銷
~~~
## 3\. 文件和目錄
~~~
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)
~~~
## 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天內被創建或者修改過的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結尾的文件并定義其權限
find / -xdev -name \*.rpm 搜索以 '.rpm' 結尾的文件,忽略光驅、捷盤等可移動設備
locate \*.ps 尋找以 '.ps' 結尾的文件 - 先運行 'updatedb' 命令
whereis halt 顯示一個二進制文件、源碼或man的位置
which halt 顯示一個二進制文件或可執行文件的完整路徑
~~~
## 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 掛載一個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網絡共享
~~~
## 6\. 磁盤空間
~~~
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='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小為依據顯示已安裝的deb包所使用的空間 (ubuntu, debian類系統)
~~~
## 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' 排除主目錄)
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 登陸進一個新的群組以改變新創建文件的預設群組
~~~
## 8\. 文件的權限 使用 “+” 設置權限,使用 “-” 用于取消
~~~
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 文件路徑 為所有者、所屬組添加寫、執行的權限,取消讀權限
~~~
## 9\. 文件的特殊屬性 ,使用 “+” 設置權限,使用 “-” 用于取消
~~~
chattr +a file1 只允許以追加方式讀寫文件
chattr +c file1 允許這個文件能被內核自動壓縮/解壓
chattr +d file1 在進行文件系統備份時,dump程序將忽略這個文件
chattr +i file1 設置成不可變的文件,不能被刪除、修改、重命名或者鏈接
chattr +s file1 允許一個文件被安全地刪除
chattr +S file1 一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤
chattr +u file1 若文件被刪除,系統會允許你在以后恢復這個被刪除的文件
lsattr 顯示特殊的屬性
~~~
## 10\. 打包和壓縮文件
~~~
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格式壓縮包
~~~
## 11\. 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 包
~~~
## 12\. 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 刪除所有緩存的包和頭文件
~~~
## 13\. 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 返回包含所要搜索字符串的軟件包名稱
~~~
## 14\. 查看文件內容
~~~
cat file1 從第一個字節開始正向查看文件的內容
tac file1 從最后一行開始反向查看一個文件的內容
more file1 查看一個長文件的內容
less file1 類似于 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
head -2 file1 查看一個文件的前兩行
tail -2 file1 查看一個文件的最后兩行
tail -f /var/log/messages 實時查看被添加到一個文件中的內容
~~~
## 15\. 文本處理
```
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?$1,$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?比較兩個文件的內容只刪除兩個文件共有的部分
```
## 16\. 字符設置和文件格式轉換
```
dos2unix?filedos.txt?fileunix.txt?將一個文本文件的格式從MSDOS轉換成UNIX
unix2dos?fileunix.txt?filedos.txt?將一個文本文件的格式從UNIX轉換成MSDOS
recode?..HTML?<?page.txt?>?page.html?將一個文本文件轉換成html
recode?-l?|?more?顯示所有允許的轉換格式
```
## 17\. 文件系統分析
```
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文件系統的完整性
```
## 18\. 初始化一個文件系統
```
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文件系統
```
## 19\. 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內容
```
## 21\. 光盤
```
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
```
## 22\. 網絡(以太網和 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
```
## 23\. 列出目錄內容
```
ls -a:顯示所有文件(包括隱藏文件);
ls -l:顯示詳細信息;
ls -R:遞歸顯示子目錄結構;
ls -ld:顯示目錄和鏈接信息;
ctrl+r:歷史記錄中所搜命令(輸入命令中的任意一個字符);
Linux中以.開頭的文件是隱藏文件;
pwd:顯示當前目錄
```
## 24\. 查看文件的類型
```
file:查看文件的類型
```
## 25\. 復制文件目錄
1、**cp**:復制文件和目錄 cp 源文件(文件夾)目標文件(文件夾)
> 常用參數:-r:遞歸復制整個目錄樹;-v:顯示詳細信息;
>
> 復制文件夾時要在 cp 命令后面加一個-r 參數:
>
> 如:cp -r 源文件夾 目標文件夾
2、**touch+文件名**:當文件不存在的時候,創建相應的文件;當文件存在的時候,修改文件的創建時間。
> 功能:生成一個空文件或修改文件的存取/修改的時間記錄值。
>
> touch \* :將當前下的文件時間修改為系統的當前時間
>
> touch –d 20040210 test:將 test 文件的日期改為 20040210
>
> touch abc :若 abc 文件存在,則修改為系統的當前時間;若不存在,則生成一個為當前時間的空文件
3、**mv 文件 目標目錄**:移動或重命名文件或目錄(如果指定文件名,則可以重命名文件)。可以將文件及目錄移到另一目錄下,或更改文件及目錄的名稱。
> 格式為:mv \[參數\]
>
> mva.txt ../:將 a.txt 文件移動上層目錄
>
> mv a.txt b.txt:將 a.txt 改名為 b.txt
>
> mvdir2 ../:將 dir2 目錄上移一層
4、**rm**:刪除文件;
> 常用參數:-i:交互式 -r:遞歸的刪除包括目錄中的所有內容
5、**mkdir +文件夾名稱**:創建文件夾;
6、**rm -r +文件夾名稱**:刪除文件夾(空文件夾和非空文件夾都可刪除)
> rmdir 文件夾名稱:刪除文件夾(只能刪除空文件夾)
7、**mkdir -p dir1/dir2**:在當前目錄下創建 dir1 目錄,并在 dir1 目錄下創建 dir2 目錄, 也就是連續創建兩個目錄(dir1/和 dir1/dir2)
8、**rmdir –p dir1/dir2**:刪除 dir1 下的 dir2 目錄,若 dir1 目錄為空也刪除它
9、**rm \***:刪除當前目錄下的所有文件
10、**\-f 參數**:強迫刪除文件 rm –f \*.txt:強迫刪除所有以后綴名為 txt 文件
11、**\-i 參數**:刪除文件時詢問
> rm –i \* :刪除當前目錄下的所有文件會有如下提示:
>
> rm:backup:is a directory 遇到目錄會略過
>
> rm: remove ‘myfiles.txt’ ? Y
>
> 刪除文件時會詢問,可按 Y 或 N 鍵表示允許或拒絕刪除文件
12、**\-r 參數**:遞歸刪除(連子目錄一同刪除,這是一個相當常用的參數)
> rm -r test :刪除 test 目錄(含 test 目錄下所有文件和子目錄)
>
> rm -r \*:刪除所有文件(含當前目錄所有文件、所有子目錄和子目錄下的文件) 一般在刪除目錄時 r 和 f 一起用,避免麻煩
>
> rm -rf test :強行刪除、不加詢問
13、**grep**:功能:在文件中搜索匹配的字符并進行輸出
> 格式:grep\[參數\]
>
> greplinux test.txt:搜索 test.txt 文件中字符串 linux 并輸出
14、**ln 命令**
> 功能:在文件和目錄之間建立鏈接
>
> 格式:ln \[參數\]
>
> 鏈接分“軟鏈接”和“硬鏈接”
>
> 1.軟鏈接:
>
> ln–s /usr/share/do doc :創建一個鏈接文件 doc,并指向目錄/usr/share/do
>
> 2.硬鏈接:
>
> ln /usr/share/test hard:創建一個硬鏈接文件 hard,這時對于 test 文件對應 的存儲區域來說,又多了一個文件指向它
## 26\. 系統常用命令
### 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 . -name*liuyazhuang*查找當前目錄下名稱中含有"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 :終止當前的命令
### 26.8、who 或 w 命令
功能:查看當前系統中有哪些用戶登錄
格式:who/w\[參數\]
### 26.9、dmesg 命令
功能:顯示系統診斷信息、操作系統版本號、物理內存的大小以及其它信息
### 26.10、df 命令
功能:用于查看文件系統的各個分區的占用情況
### 26.11、du 命令
功能:查看某個目錄中各級子目錄所使用的硬盤空間數
格式:du \[參數\]
### 26.12、free 命令
功能:用于查看系統內存,虛擬內存(交換空間)的大小占用情況
## 27\. 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
## 28\. 軟件包管理命令(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 參數:顯示文件列表)
好了,今天就介紹到這里,覺得不錯了,如果覺得有用,可以先收藏了!
- 后端
- composer
- composer配置國內鏡像
- composer安裝及設置2
- PHP
- 貝塔SG11加密
- 申請KEY
- 開始加密
- php 中連接tcp服務的三種方式
- php websocket 教程
- editor內容轉換數組
- 使用正則判斷中文維吾爾文
- PHP常用函數總結
- 常用助手函數
- 通過Imagick把pdf轉換圖片
- 維吾爾語基本區轉換擴展區
- php GD庫生成一個由文字和圖片生成新的圖片
- aes加密
- php數組函數 -- array_column,array_multisort 實現二維數組排序
- PHP操作Excel
- php更新內容
- 輔助查詢(*)
- 【時間】操作
- 時間函數例子
- Date/Time 函數(不包含別名函數)
- php網絡相關
- HTTP請求的返回值含義說明
- 使用php語言開發一個類似數據庫操作的文件表類
- pinyin
- 維吾爾語基本區轉換擴展區(2)
- php獲取當前環境的信息
- laravel
- laravel 隊列的使用
- laravel 自定義助手函數
- laravel seeder的使用
- laravel項目從git下載命令
- laravel 多個數據庫配置
- laravel 填充假數據
- laravel 動態路由
- laravel 自定義 validate 響應
- laravel 創建追加字段的模擬訪問器
- laravel 線上環境的數據庫更改或添加字段
- laravel 模型查詢按照whereIn排序
- laravel 使用 workerman 通過TCP 文件傳輸功能
- laravel api Header添加Accept頭
- Laraval IDE 自動補全插件 laravel-ide-helper
- laravel 網站后臺
- laravel 設置路由
- laravel-第三方composer包
- laravel 開發技巧
- laravel 昨天,今天時間
- 使用寶塔計劃任務啟動laravel調度器
- laravel結合workerman第二節
- Laravel - 上傳多個文件
- 查詢聊天好友列表
- 事件系統 event, listener
- laravel 安裝 laravel-modules
- 自定義求看守器-toekn
- laravel限流
- 使用 Laravel api Resource 類時自定義分頁信息
- Laravel php artisan命令大全
- 驗證器
- workerman 創建wss服務
- 架構師必須知道的26項PHP安全實踐
- python
- Python讀取文件代碼塊已經備好,用的時候光拿(建議收藏)
- Python常用庫大全
- api 簽名驗證
- git
- git命令
- 十分鐘學會git基礎
- Git代碼同時上傳到GitHub和Gitee(碼云)
- Git - 多人協同開發利器,團隊協作流程規范與注意事項
- 刪除遠程倉庫的文件
- github查詢方法
- 錯誤
- 解除項目git版本控制
- linux
- sentos安裝supervisor
- PHP怎么守護進程運行php腳本
- 600條最強Linux命令總結
- centos開啟防火墻、開放指定端口
- 前端
- vue
- vue2發布之前的config簡單配置
- vue2安裝scss命令
- vue2父子組件之間雙向數據綁定
- 國際化雙語--安裝VueI18n
- vue3-setup 組件傳參(defineProps、defineEmits、defineExpose
- Vue3 新寫法速覽:十分鐘內輕松get
- 關于vue的外連接
- watch講解
- computed
- webpack 打包后生成很多小文件怎么優化?
- vue2 vue.config.js常見配置和打包部署測試
- 小程序
- 小程序長期訂閱消息
- 小程序自定義TabBar后如何實現keep-alive
- 收藏的html和css和js
- CSS 省略號(單行省略號、多行省略號)
- UyghurInput_a.js
- font.css
- 漂亮按鈕樣式
- clock.html
- css
- scroll css樣式
- CSS流動布局-頁面自適應
- css grid布局
- 禁止wap頁面調整字體大小
- CSS @media 和 min-width/max-width
- 網站變灰是怎么實現的
- 瀑布流實現方式
- javascript
- SortableJS拖動排序
- wondow scroll滾動到上邊
- 原生js插入HTML元素
- Konva.js —— 像操作DOM一樣操作canvas
- 通過canvas合并倆個圖片
- js scroll更多加載
- js 實現復制功能
- js判斷安卓和蘋果或者微信
- 瀏覽器打開控制臺禁止
- 原生js一些dom操作
- js http客戶端集合
- fetch
- axios
- canvas 點鐘
- layer dialog
- jquery 和 laravel ajax全局配置
- layui 獲取select的自定義參數
- konva.js中文開發文檔
- js 大文件分片上傳
- js監聽網絡狀態實現斷網重連后自動刷新頁面
- js生成video縮略圖
- JS獲取當前系統電量情況
- uniapp
- uni-app swiper數量過多時卡頓優化方案
- uniapp 帖子集合
- 微信wap
- wap分享朋友和朋友圈
- wap 手機頁面微信支付
- JsSdk微信公眾號支付
- 通用各種小知識
- 正則表達式
- JS正則匹配過濾字符串中的html標簽及html標簽內的內容
- 判斷維吾爾文輸入
- 正則表達式符號
- 正則表達式練習
- 百度網盤不限速下載助手
- 解決VSCode下載慢或下載失敗的問題
- 性能測試 使用Apache的ab測試工具
- nginx從入門到精通
- nginx
- Nginx 是怎么禁止訪問php的 ?
- 寶塔面板
- supervisor
- 卸載寶塔
- redis
- redis實用筆記
- redis入門到精通
- phpredis
- redis數據庫基礎
- PHP對Redis的基本操作
- ffmpeg
- 合并多個音視
- 獲取音視時長
- FFmpeg視頻處理入門教程(新手必看)
- 外連接
- 安裝
- PHP基于ffmpeg實現轉換視頻,截圖及生成縮略圖的方法
- Linux安裝ffmpeg
- docker
- 服務實現
- docker基本命令
- rewrite筆記
- 別人筆記鏈接
- 計算機常用知識
- 二進制1-10
- 斐波那契數列
- mysql
- 高性能高可用的MySQL,得從各種規范開始
- 讀寫分離配置
- 重要外連接,前端/ 后端/數據庫等等
- 關于程序必須收藏的文章鏈接集合
- markdown
- 一篇文章講清楚markdown