linux 常用命令歸納大全
=== 一掸屡、系統(tǒng)信息處理 ===
arch 顯示機(jī)器的處理器架構(gòu)
uname -m 顯示機(jī)器的處理器架構(gòu)
uname -r 顯示正在使用的內(nèi)核版本
dmidecode -q 顯示硬件系統(tǒng)部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 羅列一個(gè)磁盤(pán)的架構(gòu)特性
hdparm -tT /dev/sda 在磁盤(pán)上執(zhí)行測(cè)試性讀取操作
cat /proc/cpuinfo 顯示CPU的信息
cat /proc/interrupts 顯示中斷
cat /proc/meminfo 校驗(yàn)內(nèi)存使用
cat /proc/swaps 顯示哪些swap被使用
cat /proc/version 顯示內(nèi)核的版本
cat /proc/net/dev 顯示網(wǎng)絡(luò)適配器及統(tǒng)計(jì)信息
cat /proc/mounts 顯示已加載的文件系統(tǒng)
lspci -tv 羅列出所有的 PCI 設(shè)備
lsusb -tv 顯示 USB 設(shè)備
date 顯示系統(tǒng)日期
cal 2020 顯示2020年的日歷表
date 顯示系統(tǒng)當(dāng)前時(shí)間
clock -w 將時(shí)間修改保存到 BIOS
=== 二耳璧、文件操作相關(guān) ===
cd /home 進(jìn)入 '/ home' 目錄'
cd .. 返回上一級(jí)目錄
cd ../.. 返回上兩級(jí)目錄
cd 進(jìn)入個(gè)人的主目錄
cd ~user1 進(jìn)入個(gè)人的主目錄
cd - 返回上次所在的目錄
pwd 顯示當(dāng)前工作路徑
ls 查看目錄中的文件
ls -F 查看目錄中的文件
ls -l 顯示文件和目錄的詳細(xì)資料
ls -a 顯示隱藏文件
ls *[0-9]* 顯示包含數(shù)字的文件名和目錄名
tree 顯示文件和目錄由根目錄開(kāi)始的樹(shù)形結(jié)構(gòu)
du 參數(shù) 目錄
-h : 單位以用戶友好方式展示
-c : 統(tǒng)計(jì)目錄文件大小
-a : 顯示目錄下所有的文件
--time : 顯示目錄文件修改的最后時(shí)間
--exclude: 排除某個(gè)目錄
-s : 直接顯示目錄的使用大小
-BK : 以KB為單位顯示目錄大小
-BM : 以MB為單位顯示目錄大小
-BG : 以GB為單位顯示目錄大小
mkdir dir1 創(chuàng)建一個(gè)叫做 'dir1' 的目錄
mkdir dir1 dir2 同時(shí)創(chuàng)建兩個(gè)目錄
mkdir -p /tmp/dir1/dir2 創(chuàng)建一個(gè)目錄樹(shù)
mkdir 2023091{0..4} -p 創(chuàng)建連續(xù)的目錄
touch 2023091{0..4}.dat 創(chuàng)建連續(xù)的文件
rm -f file1 刪除一個(gè)叫做 'file1' 的文件'
rmdir dir1 刪除一個(gè)叫做 'dir1' 的目錄'
rm -rf dir1 刪除一個(gè)叫做 'dir1' 的目錄并同時(shí)刪除其內(nèi)容
rm -rf dir1 dir2 同時(shí)刪除兩個(gè)目錄及它們的內(nèi)容
mv dir1 new_dir 重命名/移動(dòng) 一個(gè)目錄
cp file1 file2 復(fù)制一個(gè)文件
cp dir/* . 復(fù)制一個(gè)目錄下的所有文件到當(dāng)前工作目錄
cp -a /tmp/dir1 . 復(fù)制一個(gè)目錄到當(dāng)前工作目錄
cp -a dir1 dir2 復(fù)制一個(gè)目錄
ln -s file1 lnk1 創(chuàng)建一個(gè)指向文件或目錄的軟鏈接
ln file1 lnk1 創(chuàng)建一個(gè)指向文件或目錄的物理鏈接
touch -t YYMMDDhhmm file1 修改一個(gè)文件或目錄的時(shí)間戳
iconv -l 列出已知的編碼
=== 三菩彬、以太網(wǎng)和WIFI無(wú)線相關(guān)命令 ===
ifconfig eth0 顯示一個(gè)以太網(wǎng)卡的配置
ifup eth0 啟用一個(gè) 'eth0' 網(wǎng)絡(luò)設(shè)備
ifdown eth0 禁用一個(gè) 'eth0' 網(wǎng)絡(luò)設(shè)備
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 設(shè)置 'eth0' 成混雜模式以嗅探數(shù)據(jù)包 (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'
=== 四赁还、 APT 軟件工具 ===
apt-get install package_name 安裝/更新一個(gè) deb 包
apt-cdrom install package_name 從光盤(pán)安裝/更新一個(gè) deb 包
apt-get update 升級(jí)列表中的軟件包
apt-get upgrade 升級(jí)所有已安裝的軟件
apt-get remove package_name 從系統(tǒng)刪除一個(gè)deb包
apt-get check 確認(rèn)依賴的軟件倉(cāng)庫(kù)正確
apt-get clean 從下載的軟件包中清理緩存
apt-cache search searched-package 返回包含所要搜索字符串的軟件包名稱
=== 五并齐、 備份操作 ===
dump -0aj -f /tmp/home0.bak /home 制作一個(gè) '/home' 目錄的完整備份
dump -1aj -f /tmp/home0.bak /home 制作一個(gè) '/home' 目錄的交互式備份
restore -if /tmp/home0.bak 還原一個(gè)交互式備份
rsync -rogpav --delete /home /tmp 同步兩邊的目錄
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通過(guò)SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通過(guò)ssh和壓縮將一個(gè)遠(yuǎn)程目錄同步到本地目錄
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通過(guò)ssh和壓縮將本地目錄同步到遠(yuǎn)程目錄
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通過(guò)ssh在遠(yuǎn)程主機(jī)上執(zhí)行一次備份本地磁盤(pán)的操作
dd if=/dev/sda of=/tmp/file1 備份磁盤(pán)內(nèi)容到一個(gè)文件
tar -Puf backup.tar /home/user 執(zhí)行一次對(duì) '/home/user' 目錄的交互式備份操作
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通過(guò)ssh在遠(yuǎn)程目錄中復(fù)制一個(gè)目錄內(nèi)容
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通過(guò)ssh在遠(yuǎn)程目錄中復(fù)制一個(gè)本地目錄
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地將一個(gè)目錄復(fù)制到另一個(gè)地方漏麦,保留原有權(quán)限及鏈接
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 從一個(gè)目錄查找并復(fù)制所有以 '.txt' 結(jié)尾的文件到另一個(gè)目錄
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 結(jié)尾的文件并做成一個(gè)bzip包
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一個(gè)將 MBR (Master Boot Record)內(nèi)容復(fù)制到軟盤(pán)的動(dòng)作
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 從已經(jīng)保存到軟盤(pán)的備份中恢復(fù)MBR內(nèi)容
=== 六客税、YUM 軟件包升級(jí)器 ===
yum install package_name 下載并安裝一個(gè)rpm包
yum localinstall package_name.rpm 將安裝一個(gè)rpm包,使用你自己的軟件倉(cāng)庫(kù)為你解決所有依賴關(guān)系
yum update package_name.rpm 更新當(dāng)前系統(tǒng)中所有安裝的rpm包
yum update package_name 更新一個(gè)rpm包
yum remove package_name 刪除一個(gè)rpm包
yum list 列出當(dāng)前系統(tǒng)中安裝的所有包
yum search package_name 在rpm倉(cāng)庫(kù)中搜尋軟件包
yum clean packages 清理rpm緩存刪除下載的包
yum clean headers 刪除所有頭文件
yum clean all 刪除所有緩存的包和頭文件
=== 七唁奢、用戶與群組相關(guān)命令 ===
groupadd group_name 創(chuàng)建一個(gè)新用戶組
groupdel group_name 刪除一個(gè)用戶組
groupmod -n new_group_name old_group_name 重命名一個(gè)用戶組
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 創(chuàng)建一個(gè)屬于 "admin" 用戶組的用戶
useradd user1 創(chuàng)建一個(gè)新用戶
userdel -r user1 刪除一個(gè)用戶 ( '-r' 排除主目錄)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用戶屬性
passwd 修改口令
passwd user1 修改一個(gè)用戶的口令 (只允許root執(zhí)行)
chage -E 2005-12-31 user1 設(shè)置用戶口令的失效期限
pwck 檢查 '/etc/passwd' 的文件格式和語(yǔ)法修正以及存在的用戶
grpck 檢查 '/etc/passwd' 的文件格式和語(yǔ)法修正以及存在的群組
newgrp group_name 登陸進(jìn)一個(gè)新的群組以改變新創(chuàng)建文件的預(yù)設(shè)群組
=== 八霎挟、磁盤(pán)空間相關(guān) ===
df -h 顯示已經(jīng)掛載的分區(qū)列表
ls -lSr |more 以尺寸大小排列文件和目錄
du -sh dir1 估算目錄 'dir1' 已經(jīng)使用的磁盤(pán)空間'
du -sk * | sort -rn 以容量大小為依據(jù)依次顯示文件和目錄的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小為依據(jù)依次顯示已安裝的rpm包所使用的空間 (fedora, redhat類系統(tǒng))
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小為依據(jù)顯示已安裝的deb包所使用的空間 (ubuntu, debian類系統(tǒng))
=== 九、壓縮解壓 ===
bunzip2 file1.bz2 解壓一個(gè)叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個(gè)叫做 'file1' 的文件
gunzip file1.gz 解壓一個(gè)叫做 'file1.gz'的文件
gzip file1 壓縮一個(gè)叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創(chuàng)建一個(gè)叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時(shí)壓縮 'file1', 'file2' 以及目錄 'dir1'
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 : 創(chuàng)建一個(gè)非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1: 創(chuàng)建一個(gè)包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar : 顯示一個(gè)包中的內(nèi)容
tar -xvf archive.tar : 釋放一個(gè)包
tar -xvf archive.tar -C /tmp : 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 : 創(chuàng)建一個(gè)bzip2格式的壓縮包
tar -jxvf archive.tar.bz2 : 解壓一個(gè)bzip2格式的壓縮包
tar -zcvf archive.tar.gz dir1 : 創(chuàng)建一個(gè)gzip格式的壓縮包
tar -zxvf archive.tar.gz : 解壓一個(gè)gzip格式的壓縮包
zip file1.zip file1 : 創(chuàng)建一個(gè)zip格式的壓縮包
zip -r file1.zip file1 file2 dir1: 將幾個(gè)文件和目錄同時(shí)壓縮成一個(gè)zip格式的壓縮包
unzip file1.zip : 解壓一個(gè)zip格式壓縮包
=== 十麻掸、 文件權(quán)限操作 ===
ls -lh 顯示權(quán)限
ls /tmp | pr -T5 -W$COLUMNS 將終端劃分成5欄顯示
chmod ugo+rwx directory1 設(shè)置目錄的所有人(u)酥夭、群組(g)以及其他人(o)以讀(r )、寫(xiě)(w)和執(zhí)行(x)的權(quán)限
chmod go-rwx directory1 刪除群組(g)與其他人(o)對(duì)目錄的讀寫(xiě)執(zhí)行權(quán)限
chown user1 file1 改變一個(gè)文件的所有人屬性
chown -R user1 directory1 改變一個(gè)目錄的所有人屬性并同時(shí)改變改目錄下所有文件的屬性
chgrp group1 file1 改變文件的群組
chown user1:group1 file1 改變一個(gè)文件的所有人和群組屬性
find / -perm -u+s 羅列一個(gè)系統(tǒng)中所有使用了SUID控制的文件
chmod u+s /bin/file1 設(shè)置一個(gè)二進(jìn)制文件的 SUID 位 - 運(yùn)行該文件的用戶也被賦予和所有者同樣的權(quán)限
chmod u-s /bin/file1 禁用一個(gè)二進(jìn)制文件的 SUID位
chmod g+s /home/public 設(shè)置一個(gè)目錄的SGID 位 - 類似SUID 脊奋,不過(guò)這是針對(duì)目錄的
chmod g-s /home/public 禁用一個(gè)目錄的 SGID 位
chmod o+t /home/public 設(shè)置一個(gè)文件的 STIKY 位 - 只允許合法所有人刪除文件
chmod o-t /home/public 禁用一個(gè)目錄的 STIKY 位
=== 十一熬北、文件搜索相關(guān) ===
find / -name file1 從 '/' 開(kāi)始進(jìn)入根文件系統(tǒng)搜索文件和目錄
find / -user user1 搜索屬于用戶 'user1' 的文件和目錄
find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結(jié)尾的文件
find /usr/bin -type f -atime +100 搜索在過(guò)去100天內(nèi)未被使用過(guò)的執(zhí)行文件
find /usr/bin -type f -mtime -10 搜索在10天內(nèi)被創(chuàng)建或者修改過(guò)的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結(jié)尾的文件并定義其權(quán)限
find / -xdev -name \*.rpm 搜索以 '.rpm' 結(jié)尾的文件,忽略光驅(qū)诚隙、捷盤(pán)等可移動(dòng)設(shè)備
locate \*.ps 尋找以'.ps'結(jié)尾的文件
whereis halt 顯示一個(gè)二進(jìn)制文件讶隐、源碼或man的位置
which halt 顯示一個(gè)二進(jìn)制文件或可執(zhí)行文件的完整路徑
=== 十二、 系統(tǒng)重啟及關(guān)機(jī) ===
shutdown -h now : 關(guān)閉系統(tǒng)
init 0 : 關(guān)閉系統(tǒng)
telinit 0 : 關(guān)閉系統(tǒng)
shutdown -h hours: minutes &: 按預(yù)定時(shí)間關(guān)閉系統(tǒng)
shutdown -c : 取消按預(yù)定時(shí)間關(guān)閉系統(tǒng)
shutdown -r now : 重啟
reboot : 重啟
logout : 注銷
=== 十三久又、 防火墻相關(guān) ===
systemctl start firewalld : 啟動(dòng)
systemctl status firewalld : 查看狀態(tài)
systemctl stop firewalld : 停止
systemctl disable firewalld : 禁用
systemctl start firewalld.service : 啟動(dòng)一個(gè)服務(wù)
systemctl stop firewalld.service : 關(guān)閉一個(gè)服務(wù)
systemctl restart firewalld.service : 重啟一個(gè)服務(wù)
systemctl status firewalld.service : 顯示一個(gè)服務(wù)的狀態(tài)
systemctl enable firewalld.service : 在開(kāi)機(jī)時(shí)啟用一個(gè)服務(wù)
systemctl disable firewalld.service : 在開(kāi)機(jī)時(shí)禁用一個(gè)服務(wù)
systemctl is-enabled firewalld.service: 查看服務(wù)是否開(kāi)機(jī)啟動(dòng)
systemctl list-unit-files|grep enabled: 查看已啟動(dòng)的服務(wù)列表
systemctl --failed : 查看啟動(dòng)失敗的服務(wù)列表
firewall-cmd --version : 查看版本
firewall-cmd --help : 查看幫助
firewall-cmd --state : 顯示狀態(tài)
firewall-cmd --get-active-zones : 查看區(qū)域信息
firewall-cmd --get-zone-of-interface=eth0: 查看指定接口所屬區(qū)域
firewall-cmd --panic-on : 拒絕所有包
firewall-cmd --panic-off : 取消拒絕狀態(tài)
firewall-cmd --query-panic : 查看是否拒絕
firewall-cmd --zone=public --list-ports : 查看所有打開(kāi)的端口
firewall-cmd --reload : 更新防火墻規(guī)則
firewall-cmd --zone=public --add-port=80/tcp --permanent : 添加端口 ( --permanent永久生效巫延,沒(méi)有此參數(shù)重啟后失效)
firewall-cmd --zone= public --remove-port=80/tcp --permanent: 刪除端口
=== 十四、nginx 命令 ===
查看進(jìn)程號(hào)
ps -ef|grep nginx 找到nginx 安裝目錄和配置文件目錄
1地消、驗(yàn)證nginx配置文件是否正確
...nginx/sbin 目錄下
./nginx -t
2炉峰、啟動(dòng)nginx
/www/server/nginx/sbin/nginx -c /www/server/nginx/conf/nginx.conf
/www/server/nginx/sbin/nginx -t -c /www/server/nginx/conf/nginx.conf
3、重啟nginx
...nginx/sbin 目錄下
./nginx -s reload
nginx 操作
cd /usr/local/nginx
sudo ./nginx -t
sudo ./nginx -s reload
ps:
nginx -s reload :修改配置后重新加載生效
nginx -s reopen :重新打開(kāi)日志文件
nginx -t -c /path/to/nginx.conf 測(cè)試nginx配置文件是否正確
#啟動(dòng)操作 -c參數(shù)指定了要加載的nginx配置文件路徑
nginx -c /usr/local/nginx/conf/nginx.conf
4脉执、停止nginx
./nginx -s stop : 快速停止nginx
./nginx -s quit :完整有序的停止nginx
=== 掛載一個(gè)文件系統(tǒng) ===
mount /dev/hda2 /mnt/hda2 掛載一個(gè)叫做hda2的盤(pán) - 確定目錄 '/ mnt/hda2' 已經(jīng)存在
umount /dev/hda2 卸載一個(gè)叫做hda2的盤(pán) - 先從掛載點(diǎn) '/ mnt/hda2' 退出
fuser -km /mnt/hda2 當(dāng)設(shè)備繁忙時(shí)強(qiáng)制卸載
umount -n /mnt/hda2 運(yùn)行卸載操作而不寫(xiě)入 /etc/mtab 文件- 當(dāng)文件為只讀或當(dāng)磁盤(pán)寫(xiě)滿時(shí)非常有用
mount /dev/fd0 /mnt/floppy 掛載一個(gè)軟盤(pán)
mount /dev/cdrom /mnt/cdrom 掛載一個(gè)cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 掛載一個(gè)cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 掛載一個(gè)cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 掛載一個(gè)文件或ISO鏡像文件
mount -t vfat /dev/hda5 /mnt/hda5 掛載一個(gè)Windows FAT32文件系統(tǒng)
mount /dev/sda1 /mnt/usbdisk 掛載一個(gè)usb 捷盤(pán)或閃存設(shè)備
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 掛載一個(gè)windows網(wǎng)絡(luò)共享
=== vim 相關(guān) ===
:u 撤銷
:%d 清空內(nèi)容
:wq 保存退出
:set number 顯示行號(hào)
=== 雜項(xiàng) ===
熱鍵
Tab 一鍵補(bǔ)全命令
Ctrl + c 停止正在運(yùn)行的程序
Ctrl + d 相當(dāng)于exit 退出
Ctrl + l 清屏
shutdown 關(guān)機(jī) (服務(wù)器一般不關(guān)機(jī),正常情況下很少很少用, 所以慎用)
reboot 重啟命令
--help 幫助命令
man 命令說(shuō)明書(shū)
創(chuàng)建連續(xù)的目錄疼阔、文件
mkdir 2023091{0..4} -p
touch 2023091{0..4}.dat
linux 查看可疑IP登陸
last -f /var/log/wtmp
linux 清除記錄
echo > /var/log/wtmp : 清除用戶登錄記錄
echo > /var/log/lastlog: 清除最近登錄信息
echo > /var/log/secure : 登錄信息
echo > .bash_history : 清除保存的用戶操作歷史記錄·
history -cw : 清除所有歷史
查看占用端口
lsof -i
lsof -i:9002
24 linux文件傳輸
【優(yōu)點(diǎn)】簡(jiǎn)單方便,安全可靠半夷;支持限速參數(shù)
【缺點(diǎn)】不支持排除目錄
【用法】
scp就是secure copy婆廊,是用來(lái)進(jìn)行遠(yuǎn)程文件拷貝的。數(shù)據(jù)傳輸使用 ssh巫橄,并且和ssh 使用相同的認(rèn)證方式淘邻,提供相同的安全保證 。
命令格式:
scp [參數(shù)] <源地址(用戶名@IP地址或主機(jī)名)>:<文件路徑> <目的地址(用戶名 @IP 地址或主機(jī)名)>:<文件路徑>
把本地的source.txt文件拷貝到192.168.43.52機(jī)器上的/home/admin目錄下
scp /var/www/html/drupal/door.php admin@192.168.43.52:/home/admin
scp nginx.img root@192.168.33.35:/root
把192.168.43.52機(jī)器上的daye.txt文件拷貝到本地的/home/james目錄下
scp admin@192.168.43.52:/home/admin/daye.txt /home/james
把192.168.43.52機(jī)器上的door.php文件拷貝到192.168.43.226機(jī)器的/home/james目錄下
scp admin@192.168.43.52:/home/admin/door.php root@192.168.43.226:/home/james