linux基本命令
阿新 • • 發佈:2020-08-02
1.linux目錄結構
''' / 根目錄 /bin 存放著最常使用的指令 /sbin 存放著系統管理員使用的系統管理程式 /home 存放著普通使用者的主目錄 /root 系統管理員的主目錄 /lib 系統開機所需的最基本的動態連線共享庫 /etc 系統管理所需的配置檔案 /usr 存放使用者的應用程式和檔案 /boot 啟動linux的核心檔案 /srv 服務啟動之後所需的資料 /sys /tmp 臨時檔案 /dev 把所有硬體用檔案形式儲存 /media 掛載裝置 /mnt 臨時掛載別的檔案系統 /opt 額外安裝軟體所擺放的目錄 /usr/local 給主機額外安裝軟體所安裝的目錄 /var'''
2.檢視命令的用法
''' man command help info command which command 檢視命令的路徑 whereis command '''
3.與使用者和組相關
''' 建立子賬戶 adduser [-d] [指定目錄] username /*注意這個命令沒有home目錄*/ useradd [-g] [groupname] username 完全刪除子賬戶 userdel -r username 更換賬戶密碼 passwd username 檢視使用者 cat /etc/passwd id username 檢視組資訊 cat /etc/group 增加使用者組 groupadd group_name 刪除使用者組 groupdel group_name 移動使用者到另一個組 groupmod -g newgroup username 檢視檔案的所屬者 ls -ahl (下面命令受限,要用root賬戶) chown [-R] 使用者名稱 檔名 (改變檔案\目錄的所屬者) chgrp [-R] 組名 檔名 (改變檔案\目錄的所屬組) chown newowner:newgroup file usermod -g 組名 使用者名稱 (改變使用者的所屬組) sudo su 進入root su username 進入使用者 sudo 允許普通使用者執行root命令 給使用者新增sudo許可權(xxx is not in the sudoers file) 1.新增寫許可權 chmod u+w /etc/sudoers 2.開啟檔案 vim /etc/sudoers 在root ALL=(ALL) ALL 下面為使用者新增一行 3.撤銷寫許可權 chmod u-w /etc/sudoers'''
4.與檔案目錄相關
''' 建立一級目錄 mkdir xx 建立多級目錄 mkdir -p /xx/xx 刪除空目錄 rmdir 建立檔案 touch file 移動檔案 mv [檔名] [目標資料夾路徑] 重新命名 mv oldname newname 複製檔案\資料夾 cp [-r、-f、-rf] source dest (cp前加\強制覆蓋) 檢視檔案 cat [-n] file | more 分頁顯示 空格鍵 分頁檢視檔案 more filename 檢視大檔案 less filename 刪除檔案 rm -rf file 全部顯示 ls -a 編輯單個檔案 gedit file 編輯/檢視檔案 vi(vim) filename, 按 i 修改,然後按esc :w 儲存檔案但不退出 :wq 儲存檔案退出 :w file 將修改儲存到file檔案中 :q不儲存檔案退出 :q! 不儲存,強制退出 :e! 放棄所有的修改從上次儲存檔案開始再編輯 快捷鍵(正常模式下) yy 複製當前行 按p貼上 5yy就是複製下面5行 dd 刪除當前行 5dd刪除游標下的5行 /查詢內容 按回車就可找到要查詢的內容 再按n就會向下尋找 :set nu 設定行號,:set nonu 取消行號 輸入G到達文件底部 gg到達文件頂部 撤銷編輯的內容輸入 u 到達指定行 1.先設定行號 2.輸入要到達的行號 3.按shift+g 返回主目錄 cd cd~ 返回上一級 cd- cd .. ~ 表示 /home/user / 表示根目錄 ~表示當前使用者的home目錄,cd ~/.config/ 也就是切換到home下的隱藏目錄 檢視當前的絕對路徑 pwd 絕對路徑 / 相對路徑 ../ (..返回上一層) hul@hul-virtual-machine ~$cd ../../home (../返回上一級) head -n filename (顯示檔案前n行) tail -n filename (顯示檔案後n行) tail -f filename (實時追蹤該文件的所有更新) > 和 >> ls -l > a.txt 將顯示的內容覆蓋寫入a.txt ls -l >> a.txt 將顯示的內容追加進a.txt (ls -l /home/hul >> ~/桌面/a.txt) cat file > a.txt echo "寫入內容" > a.txt (將引號裡的寫入a.txt) echo $PATH (輸出環境變數路徑) 檔案及目錄許可權 drwxrwxr-x. 3(內部檔案個數) hul hul 45 Jul 31 09:13 test (第一組rwx表示檔案所有者的許可權,第二個rwx表示檔案所在組的使用者許可權,第三個r_x表示不同組的使用者的許可權) -rw-rw-r--. 1 hul hul 15(檔案大小位元組) Jul 31 09:57 test.py (第一個rw表示檔案所有者的許可權,第二個表示檔案所在組的使用者的許可權,第三個表示不同組的使用者的許可權) (檔案的rwx w表示可修改但不可刪 x表示可執行) (目錄的rwx w表示可修改可刪除內部檔案 x表示可執行) 更改檔案許可權 chmod u=rwx,g=rx,o=x 檔案目錄名 (u表示所有者 g表示所有組 o表示其他人 a表示所有人) chmod o+w 檔名 (給其他人都增加寫的許可權) chmod g=rx user (向和user同組的使用者開放user使用者的許可權,同組使用者可以訪問user) 建立軟連結 (還有硬連結沒寫) ln -s [原檔案或目錄] [軟連結名] (給原檔案建立一個軟連結,類似於快捷方式) rm -rf 軟連結名 (刪除軟連結)'''
5.壓縮解壓縮
''' gzip 壓縮成 .gz 檔案 gunzip zip [-r] xxx.zip 目錄/檔案 (zip -r mydesktop.zip ~/桌面/) unzip [-d] 目錄 xxx.zip (unzip -d ~/桌面/test/ mydesktop.zip ) tar 打包成 .tar.gz (tar -zcvf [test.tar.gz] [a.txt bbb.txt] ) (tar -zxvf [壓縮包檔名.tar.gz] -C [目錄] 解壓到指定目錄,目錄要存在) '''
6.查詢
''' find [搜尋的目錄] [-name -user -size] * (find ~/桌面 -name test2.py) | 管道符號 將前面的結果傳遞給後面的命令 grep 過濾查詢 (cat test2.py | grep -ni xx 查詢檔案中的xx,n表示顯示行號,i表示不區分大小寫) '''
7.防火牆
''' ubuntu 關閉防火牆才能遠端操作 檢視防火牆 sudo ufw status 關閉防火牆 ufw disable 開啟防火牆ufw enable 調整介面 alt+f2 gnome-tweaks centos7 檢視防火牆 systemctl status firewalld '''
8.任務排程
''' 任務排程(/etc/crontab) 1.crontab -e 2.*/1 * * * * [ls -l /etc >> /tmp/to.txt (第一個*表示分鐘 後面的依次表示小時 日 月 星期,有,-的用法) 3.每分鐘會自動呼叫 ls -l /etc >> /tmp/to.txt 或者 1.將任務寫入 xx.sh 檔案(date >> /tmp/mydate),給檔案一個可執行許可權 2.crontab -e 3.寫入排程指令 */1 * * * * [.sh檔案的路徑] 檢視排程任務crontab -l 結束排程任務crontab -r '''
9.檢視分割槽和統計檔案
''' lsblk -f 或者 lsblk 增加硬碟(硬碟分為IDE(hdx~)硬碟和SCSI(sdx~)硬碟) 1.虛擬機器新增硬碟 2.分割槽 3.格式化 4.掛載 5.設定自動掛載 磁碟情況查詢 df -lh 目錄佔用磁碟情況查詢 du -ach /目錄 (du -ach --max-depth=1 /home)
統計某個目錄下檔案或者資料夾的個數 ls -l [/home] | grep "^-[^d]" | wc -l (-開頭表示檔案 d開頭表示資料夾) ls -lR [/home] | grep "^-" | wc -l (遞迴統計)
樹狀結構顯示目錄 tree '''
10.掛載
''' centos7掛載cdrom mount -t auto /dev/cdrom /mnt/cdrom (這種掛載重啟失效) 取消掛載 umount /mnt/cdrom 虛擬網絡卡 真實網絡卡 想要永久掛載要修改/etc/fstab檔案實現 '''
11.程序和服務的管理與查詢
''' 檢視程序 ps [-aux] 父程序 ps -ef 殺死程序,要知道程序的服務名(例如連線服務程序 ps -aux | grep sshd) kill -9 <process id> killall 程序名稱 樹狀顯示 pstree -pu 服務管理 systemctl 服務名 [start | stop | restart | reload | status] 檢視服務名 setup 服務的執行級別- 動態監控程序 top [-d -i -p] top互動指令 P(以CPU使用率排序) M(以記憶體使用率排序) N(以pid排序) q(退出top) 檢視網路服務和埠 netstat -anp '''
12.安裝指令
''' centos的rpm和yum 查詢已安裝的rpm列表 rpm [-qa-qi -ql -qf] filename [| grep xxx] (-qa全部軟體包 -qi軟體資訊 -ql軟體包的檔案 -qf檔案全路徑名) 解除安裝 rpm -e [--nodeps] RPM包名稱 (--nodeps強制刪除) 安裝 rpm -ivh RPM包安裝路徑 檢視安裝的軟體 yum list | grep xxx 安裝軟體 yum install xxx (連網使用) 解除安裝軟體 yum remove xxx ubuntu的apt 映象原始檔 /etc/apt/sources.list sudo apt-get update sudo apt-get install package sudo apt-get upgrade 更新已安裝的包 sudo apt-get remove package sudo apt-cache show package 獲取包的相關資訊 sudo apt-get source package 下載該包的原始碼 sudo apt-get update 更換源
wget [-c] url 直接下載檔案或網頁 '''
13.ssh
''' 遠端登入要安裝ssh (ssh可以控制另一個伺服器 ssh [email protected]) 檢視ssh服務 dpkg -l | grep ssh 安裝ssh sudo apt-get install openssh-server service sshd start '''
14.程式構建
''' 1.配置 ./configure 2.編譯 make 3.安裝 make install ( wget xxx tar zxvf xxx cd xxx ./configure make make install ) '''
15.c/c++
''' 1.編譯 g++ -g hello.cpp -o xx 2.除錯(要輸入命令,例如 run list quit等) gdb xx 3.執行 ./xx '''
16.自定義命令列顏色
''' vim ~/.bashrc 修改後更新 source ~/.bashrc 修改PS1可以修改命令列顏色 '''
17.時間
date '+%Y-%m-%d %H:%M:%S' cal