linux基本原則:1、一切接文件;2、配置文件保存爲純文本格式。
linux命令格式: 命令 選項 參數;多個選項可以組合,例如 -a -b等同於-ab; ls -l -a /etc/ 等同於 ls -la /etc/ 代表完整展示etc目錄下文件(包含以.開頭的隱藏文件)詳情
linux命令類型(通過type 命令 查看分類):
內置命令(shell內置):help 命令 便可查看相關內置命令文檔
外部命令:man 命令 可以查看外部命令相關文檔;使用空格向下翻屏,使用b向上翻屏,使用j向下進一行,使用k向上進一行,查找選項使用/-加選項進行查找,比如/-l,出來後可以使用n查找下一個,退出使用q,幫助使用h
linux命令學習方式:查文檔
一、ps顯示進程
ps a 顯示所有進程
ps -a 顯示同一終端下的所有程序
ps -A 顯示所有進程
ps c 顯示進程的真實姓名稱
ps -N 反向選擇
ps e 顯示環境變量
ps f 顯示程序間的關係
ps -H 顯示樹狀結構
ps u 顯示指定用戶的所有進程
ps -au 指定用戶的所有進程
ps -aux 顯示所有使用者的行程
ps -ef 查看所有進程
二、查看資源:
1、系統
uname -a 查看內核/操作系統/CPU信息
head -n 1 /etc/issue 查看操作系統版本
cat /proc/cpuinfo 查看CPU信息
hostname 查看計算機名
lspci -tv 列出所有PCI設備
lsusb -tv 列出所有USB設備
lsmod 列出加載的內核模塊
env 查看環境變量
2、空間資源
free -m 查看內存使用量和交換區使用量
df -h 查看磁盤空間利用大小,-h以易讀的方式顯示結果(即帶單位,否則顯示的數字爲B)
du -sh <目錄> 查看指定目錄所佔空間大小,-s遞歸整個目錄的大小
grep MemTotal /proc/meminfo 查看內存總量
grep MemFree /proc/meminfo 查看空閒內存量
uptime 查看系統運行時間、用戶量、負載
cat /proc/loadavg 查看系統負載
3、磁盤和分區
mount | column -t 查看掛接的分區狀態
fdisk -l 查看所有分區
swapon -s 查看所有交換分區
hdparm -i /dev/hda 查看磁盤參數(適用於IDE設備)
dmesg | grep IDE 查看啓動時IDE設備檢測狀況
4、網絡
ifconfig 查看所有網絡接口的屬性
iptables -L 查看防火牆設置
route -n 查看路由表
netstat -lntp 查看所有監聽端口
netstat -antp 查看所有已經建立的連接
netstat -s 查看網絡統計信息
5、進程
ps -ef 查看所有進程
top 實時顯示進程狀態
6、用戶
w 查看活動用戶
id <用戶名> 查看指定用戶信息
last 查看用戶登錄日誌
cut -d: -f1 /etc/passwd 查看系統所有用戶
cut -d: -f1 /etc/group 查看系統所有組
crontab -l 查看當前用戶的計劃任務
7、服務
chkconfig --list 列出所有系統服務
chkconfig --list | grep on 列出所有啓動的系統服務
8、程序
rpm -qa 查看所有安裝的軟件包
三、打包/解包:
tar -cvf 包名.tar /文件夾名 如:tar -cvf bag.tar /floder 將floder文件夾打包爲bag.tar
-c:打包選項
-v:顯示打包進度
-f:使用檔案文件
四、修改文件 vim
vim file.py 用vim打開名爲“file.py”的文件
insert 開始編輯模式
esc 退出編輯模式
home 跳到行開頭
end 跳到行尾
:set ff=unix 修改文件中的換行符爲unix格式
:set ff=dos 修改文件中的換行符爲dos格式
:wq 退出並保存
五、複製文件到其他目錄 cp
cp -r dir1 dir2 將dir1整個目錄複製到dir2路徑下
cp -r dir1/. dir2 將dir1目錄下的文件全部複製到dir2路徑下
若複製過程中詢問是否覆蓋,輸入y回車便可,也可直接將-r改爲-rf直接覆蓋複製
cp參數:
-a: 通常用在複製目錄時使用,保留鏈接、文件屬性,並複製目錄下的所有內容,等同於dpR參數組合
-d:複製時保留鏈接(相當於windows系統中的快捷方式)
-f:覆蓋已經存在的目標文件而不給出提示
-i:在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋
-p:除複製文件的內容外,把修改時間和訪問權限也複製到新文件中
-r:若給出的源文件是一個目錄文件,將複製該目錄下所有的子目錄與文件
-l:不復制文件,只生成鏈接文件
六、移動文件或將文件改名 mv
mv [選項] 源文件或目錄 目標文件或目錄
視mv命令第二個參數類型的不同完成不同功能,若第二個參數類型是文件則完成重命名操作,此時源文件(源目錄)只能有一個,它將所給的源文件(源目錄)重命名爲給定的目標文件名;若第二個參數類型是目錄則完成移動操作,源文件(源目錄)可以有多個,它將各參數指定的源文件均移至目標目錄中,在跨文件系統移動文件時,mv先拷貝,再將原文件刪除。
mv參數:
-b:若需覆蓋文件,則覆蓋前先備份
-f:若目標文件已經存在則不進行詢問而直接覆蓋
-i:若目標文件已經存在則會詢問是否覆蓋
-u:update若目標文件已經存在且source比較新,纔會更新
-t:指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況
實例:
1、mv a.log a.txt 將a.log改名爲a.txt
2、mv a.txt b 將a.txt文件移動到b目錄下
3、mv a.txt b.txt c.txt d 將a.txt、b.txt、c.txt移動到d目錄下
4、mv -t /home/usr/target/ a.txt b.txt c.txt 將a.txt、b.txt、c.txt移動到/home/usr/target/目錄下
5、mv -i a.txt b.txt 將文件a.txt改名爲b.txt,若b.txt已經存在則詢問是否覆蓋
6、mv -f a.txt b.txt 將文件a.txt改名爲b.txt,即使b.txt存在也是不經詢問直接覆蓋掉
7、mv dir1 dir2 若目錄dir2不存在則將dir1改名爲dir2;否則將dir1目錄移動到dir2目錄下
8、mv * ../移動當前文件夾下的所有文件到上一級目錄
9、mv a/*.txt b 將當前目錄的a子目錄裏的txt文件都移動到b子目錄裏
10、mv a.txt -b b.txt 文件被覆蓋前做簡單備份,前面加參數-b
七、刪除文件或目錄 rm
rm [選項] 文件
rm參數:
-f:忽略不存在的文件
-i:進行交互式刪除
-r:將參數中列出的全部目錄和子目錄均遞歸的刪除
-v:詳細顯示進行的步驟
八、定時任務 crontab
crontab -e 編輯定時任務
crontab -l 列出所有定時任務
定時任務格式
* * * * * command
分鐘(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表週日)
第一個*:0~59分鐘,每分鐘用*或者*/1表示
第二個*:0~23小時,每小時用*表示
第三個*:1~31日,每天用*表示
第四個*:1~12月,每月用*表示
第五個*:0~6,0代表週日,每天用* 表示
command:bash命令
說明:1、整數間的-指定一個整數範圍,0-5表示整數0,1,2,3,4,5;2、用,隔開的一系列值指定一個列表,3,4,5表示整數3、4、5;3、用/可以用來指定間隔頻率,比如0-59/2表示每兩分鐘,*/3爲每三個月
九、處理殭屍進程
使用top命令查看有沒有殭屍進程:
使用ps axf命令查看具體殭屍進程,找到殭屍進程的父進程,將父進程kill掉以後就可以關掉殭屍進程
十、修改文件夾權限(777爲所有人可讀寫)
root權限下chmod 777 filepath
十一、後臺運行命令並輸出日誌
nohup commmand > logpath 2>&1
command:bash命令
logpath:輸出日誌地址
舉例:
nohup python3 test.py > out.log 2>&1 &
後臺運行python腳本text.py並將日誌輸出到out.log中
十二、查找文件/目錄
find 目錄 -name '文件/目錄名稱'
從“目錄”下查找名字爲“文件/目錄名稱”的文件或目錄
實例:
find / -name 'girl.jpg'
從根目錄查找名字爲“girl.jpg”的文件
find /var/ -name 'www'
從“var”目錄查找名字爲“www”的文件夾