Linux經常使用命令


  • Part One 用戶命令

  • who相關命令
  • who: 顯示當前登陸用戶 如圖1-1所示
  • who am i: 顯示當前登陸用戶信息 如圖1-2所示
  • whoami: 顯示當前登陸用戶名 如圖1-3所示
  • who -q: 統計當前登陸用戶個數和顯示用戶名 如圖1-4所示
  • who -u: 顯示閒置時間,若該用戶在前一分鐘以內有進行任何動做,將標示成"."號,若是該用戶已超過24小時沒有任何動做,則標示出"old"字符串。 如圖1-5所示
  • who -H: 顯示各欄信息 如圖1-6所示
  • who -m: 等同於 who am i 如圖1-7所示
  • who -w: 顯示用戶的信息狀態欄 如圖1-8所示
  • who -H -l: 顯示用戶登陸來源 如圖1-9所示
  • who -T -H: 顯示終端屬性 如圖1-10所示

  • 查看系統當前登陸用戶狀態
  • w: 能夠看到登陸用戶的信息與cpu佔用率。
  • last:查看最近登陸的用戶信息。

  • useradd與adduser添加用戶
    注意: 這兩條命令是同樣的,參數也是同樣的,adduser是useradd的一個perl腳本,做用是提供交人機互式操做。
  • 參數說明
  • -c:加上備註文字,備註文字保存在passwd的備註欄中。html

  • -d:指定用戶登入時的主目錄,替換系統默認值/home/ <用戶名>
  • -D:變動預設值。python

  • -e:指定帳號的失效日期,日期格式爲MM/DD/YY,例如06/30/12。缺省表示永久有效。linux

  • -f:指定在密碼過時後多少天即關閉該帳號。若是爲0帳號當即被停用;若是爲-1則帳號一直可用。默認值爲-1.nginx

  • -g:指定用戶所屬的羣組。值可使組名也能夠是GID。用戶組必須已經存在的,期默認值爲100,即users。git

  • -G:指定用戶所屬的附加羣組。web

  • -m:自動創建用戶的登入目錄。正則表達式

  • -M:不要自動創建用戶的登入目錄。redis

  • -n:取消創建以用戶名稱爲名的羣組。sql

  • -r:創建系統帳號。shell

  • -s:指定用戶登入後所使用的shell。默認值爲/bin/bash。

  • -u:指定用戶ID號。該值在系統中必須是惟一的。0~499默認是保留給系統用戶帳號使用的,因此該值必須大於499。

    例:
  • useradd admin -u 512 -d /home/em -g root -c "測試" -e 14/10/2018 -n: 建立一個名爲admin的用戶,設置用戶id爲512,替換默認/home/admin目錄爲/home/em,而且添加此用戶爲root組用戶,添加備註,設置帳號失效日期,取消創建以用戶名稱爲名的羣組。 如圖1-11所示
  • passwd admin:給admin設置密碼爲123456。
  • ssh登陸新用戶: 如圖1-12
  • groups: 查看當前用戶用戶組 如圖1-13所示
  • 進入根目錄下etc目錄中,查看passwd文件,裏面包含了用戶信息: 如圖1-14所示
admin:x:512:0:測試:/home/em:/bin/bash

說明:從左到右數據依此爲:用戶名:密碼:用戶id:用戶組id:備註:用戶主目錄:shell命令主目錄。

  • 刪除用戶userdel
  • userdel username: 刪除用戶
  • userdel -f username: 刪除用戶帳號與相關的文件

  • 切換用戶
  • su username:須要輸入切換用戶的密碼。

  • Part Two 文件操做相關

  • 查看文件
  • ls命令及參數
  • a : 顯示全部文件及目錄 (包括以.開頭的隱藏文件或文件夾)
  • -l : 除文件名稱外,亦將文件型態、權限、擁有者、文件大小等資訊詳細列出
  • -r : 將文件以相反次序顯示(原定依英文字母次序)
  • -t : 將文件依創建時間之前後次序列出
  • -A : 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
  • -F : 在列出的文件名稱後加一符號;例如可執行檔則加 "*", 目錄則加 "/"
  • -R : 若目錄下有文件,則如下之文件亦皆依序列出(遞歸文件夾顯示全部文件)

  • 查看文件內容
  • cat 文件名 :顯示文件內容。
  • cat -n 文件名 : 顯示行號。
  • cat 文件 | head -3: 查看文件前三行。
  • cat 文件1 文件2:將兩個文件鏈接起來輸出顯示。
  • head -3 文件: 查看文件前三行。
  • tail -5 文件 : 查看文件後5行。
  • less 文件 : 分頁查看文件,less分頁內容少。
  • more 文件: 分頁查看文件,more分頁內容多。

  • 建立空文件
  • touch: touch命令用於修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統會創建一個新的文件。顯示時間記錄可用ls -l查看文件信息。
  • touch a 文件 : 改變檔案的讀取時間記錄。
  • touch m 文件 : 改變檔案的修改時間記錄。
  • 建立空文件夾
  • mkdir folder : 建立名爲folder的空文件夾。
  • mkdir -p a/b : 建立二級目錄,a文件夾下有b文件夾。

  • 刪除文件與文件夾
  • rm:刪除文件與文件夾。
  • -i: 刪除前逐一詢問確認。
  • -f: 即便原檔案屬性設爲惟讀,亦直接刪除,無需逐一確認。
  • -r:將目錄及如下之檔案亦逐一刪除。
  • rm -f 文件:刪除文件且以yes跳過詢問操做。
  • rm -rf 文件夾:刪除文件夾及文件夾內的文件。

  • 複製文件
  • cp複製
  • -a:此選項一般在複製目錄時使用,它保留連接、文件屬性,並複製目錄下的全部內容。其做用等於dpR參數組合。
  • -d:複製時保留連接。這裏所說的連接至關於Windows系統中的快捷方式。
  • -f:覆蓋已經存在的目標文件而不給出提示。
  • -i:與-f選項相反,在覆蓋目標文件以前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。
  • -p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。
  • -r:若給出的源文件是一個目錄文件,此時將複製該目錄下全部的子目錄和文件。
  • -l:不復制文件,只是生成連接文件。
  • cp 文件 路徑/新文件名 :複製文件到新路徑並重命名。例:cp a.py code/aa.py
  • cp 文件 路徑:複製文件到其餘路徑,不更改文件名字。例: cp b.py code
  • cp 文件夾 -r 路徑 :複製文件夾全部內容到新的路徑,不會複製文件夾自己。
  • cp 文件夾 -r 路徑/新文件夾名字 : 複製文件夾內容到路徑下的新文件夾中。
  • mv爲文件或目錄更名、或將文件或目錄移入其它位置。
  • -i: 若指定目錄已有同名文件,則先詢問是否覆蓋舊文件。
  • -f: 在mv操做要覆蓋某已有的目標文件時不給任何指示。
  • mv 文件 文件 :將文件1更名爲文件2。
  • mv 文件 文件夾:將文件移動到文件夾。
  • mv 文件夾 文件夾:目標目錄已存在,將源目錄移動到目標目錄;目標目錄不存在則更名。

  • 更改文件權限
  • chmod
  • u: 表示該文件的擁有者,g 表示與該文件的擁有者屬於同一個羣體(group)者,o 表示其餘之外的人,a 表示這三者皆是。
  • +: 表示增長權限、- 表示取消權限、= 表示惟一設定權限。
  • r: 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該文件是個子目錄或者該文件已經被設定過爲可執行。
  • -c : 若該文件權限確實已經更改,才顯示其更改動做
  • -f : 若該文件權限沒法被更改也不要顯示錯誤訊息
  • -v : 顯示權限變動的詳細資料
  • -R : 對目前目錄下的全部文件與子目錄進行相同的權限變動(即以遞迴的方式逐個變動)
drwxr-xr-x 2 root root 4096 Oct 13 15:49 abc
-rwxr--r-- 1 root root 1158 Oct 10 15:04 a.py
-rwxr--r-- 1 root root  440 Oct 10 15:07 b.py
-rw-r--r-- 1 root root   56 Oct 13 15:03 code

說明:d表示文件夾,-rwxr--r--意思是,當前用戶可執行操做爲rwx,可讀寫執行,同組用戶可對該文件執行r--讀操做,其餘用戶可對改文件執行r--讀操做。

  • 新建一個c.py文件
    用 ll 命令查看c.py的權限爲 -rwxr--r--
    注: ll = ls -l
-rw-r--r--  1 root root        0 Oct 13 16:02 c.py
  • chmod修改權限方法一
  • chmod u+x c.py:修改c.py文件爲當前用戶的可執行文件。
-rwxr--r--  1 root root        0 Oct 13 16:02 c.py
  • 二進制修改權限
  • chmod 754 a.py:修改c.py爲當前用戶和同組可執行文件。
-rwxr-xr--  1 root root        0 Oct 13 16:02 c.py

說明:7表明rwx,5表明r-x,4表明r--,若是將三位權限當作三位二進制,爲0就是沒有權限,爲1就是有權限,那rwx就是二進制的111,r-x就是二進制的101,r--就是二進制的100,因此權限754就是給c.py添加當前用戶和同組用戶的可執行文件。

  • chown 更改文件的全部者
  • user : 新的文件擁有者的使用者 ID
  • group: 新的文件擁有者的使用者組(group)
  • chown user 文件:改變文件的全部者
  • chown root:user 文件:將文件擁有着設置爲root組的用戶user。
  • chown -R root:admin 文件夾:將文件夾全部文件全部者設置爲root下admin用戶。

  • Part Three 其餘Linux命令

  • clear:清屏。
  • logout/exit:退出登陸。
  • cd:切換目錄。cd ~ 回到根目錄
  • pwd:查看當前工做目錄。
  • man 命令:得到某個命令的幫助文檔。
  • 命令 --help:得到命令的參數說明。
  • wget 網址:下載網址的內容。
  • wall 內容:給全部線上設置mesg y的用戶發消息,設置爲mesg n的用戶不會收到,注意root用戶發的消息不能拒絕。wall 加 某個用戶就是對某個用戶發消息,不加參數就是給全部人發。
  • history:查看全部歷史命令。
  • history -c:清除歷史命令。
  • history -d 命令編號:刪除某條歷史命令。
  • !+歷史命令編號:執行某條命令。
  • date:查看當前時間。
  • cal:查看日曆。
  • cal 12 2018:查看某年某月的日曆。
  • cal 2018:查看某年日曆。
  • alias 別名="命令":給命令起別名,能夠經過別名來執行命令。例:alias ca="cal"
  • unalias 別名: 撤銷別名。
  • wc 文件:統計文件內容行數,字節數,單詞個數。
  • wc -l 文件:只看文件內容行數。
  • sort a.txt | uniq |wc -l:排序文件去重再查看行數。sort排序,uniq去重。
  • diff 文件1 文件2:比較兩個文件的不一樣的地方。
  • gzip/gunzip:壓縮/解壓縮文件。
  • tar -xvf:解歸檔。
  • ln -s /a/b/c/d.txt haha:建立一個haha的軟連接能夠直接訪問d.txt文件,若是不加 -s 就是硬連接,至關於文件的引用,只要引用數不爲0 ,文件就會一直存在。
  • echo輸出語句
  • echo 內容 > 文件 :再次寫入會覆蓋上次內容。
  • echo 內容 >> 文件: 追加寫入。
  • echo 內容 > 文件1 2>文件2 :錯誤輸出重定向,正確的結果輸入文件1,出錯就輸出文件2。
a=10
b=3
echo $a
10
echo $[a+b]
13

  • Part Four 進程

  • ps
  • -w: 顯示加寬能夠顯示較多的資訊
  • -au: 顯示較詳細的資訊
  • rss: 佔用的記憶體大小
  • r: 正在執行中
  • s: 靜止狀態
  • t: 暫停執行
  • n: 低優先序的行程
  • ps -ef:顯示全部的進程
  • 關閉進程
  • kill 進程編號:關閉進程
  • kill -9 進程編號:強制殺死某個進程
  • ps -ef | grep httpd | grep -v grep---進程不包含搜索操做自己這條進程

  • top
  • top:實時顯示進程的狀態

停止運行中的進程ctrl+c
暫停進程並置於後臺-ctrl+z

  • redis-server &:服務名後面加&放在後臺運行。
  • jobs ---查看後臺進程
  • bg %編號 --- 讓後臺暫停的進程繼續再後臺運行,編號爲後臺進程編號
  • fg %編號--- 讓後臺進程再前臺運行

  • netstat
  • netstat -nap | grep 80:查某個端口被誰佔用。
    參考

  • Part Five Linux啓動過程與目錄說明

  • 啓動過程
  • 內核的引導。
  • 運行 init。
  • 系統初始化。
  • 創建終端 。
  • 用戶登陸系統。
  • Linux系統有7個運行級別(runlevel)

  • 運行級別0:系統停機狀態,系統默認運行級別不能設爲0,不然不能正常啓動
  • 運行級別1:單用戶工做狀態,root權限,用於系統維護,禁止遠程登錄
  • 運行級別2:多用戶狀態(沒有NFS)
  • 運行級別3:徹底的多用戶狀態(有NFS),登錄後進入控制檯命令行模式
  • 運行級別4:系統未使用,保留
  • 運行級別5:X11控制檯,登錄後進入圖形GUI模式
  • 運行級別6:系統正常關閉並重啓,默認運行級別不能設爲6,不然不能正常啓動
  • shutdown: 關機
  • shutdown -c:取消關機
  • init 0:關機且不發送通知
  • init 6:重啓
  • rebot:重啓

  • linux目錄說明

  • /bin:bin是Binary的縮寫, 這個目錄存放着最常用的命令。

  • /boot:這裏存放的是啓動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件。

  • /dev:dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。

  • /etc:這個目錄用來存放全部的系統管理所須要的配置文件和子目錄。

  • /home:用戶的主目錄,在Linux中,每一個用戶都有一個本身的目錄,通常該目錄名是以用戶的帳號命名的。

  • /lib:這個目錄裏存放着系統最基本的動態鏈接共享庫,其做用相似於Windows裏的DLL文件。幾乎全部的應用程序都須要用到這些共享庫。

  • /lost+found:這個目錄通常狀況下是空的,當系統非法關機後,這裏就存放了一些文件。

  • /media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。

  • /mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,咱們能夠將光驅掛載在/mnt/上,而後進入該目錄就能夠查看光驅裏的內容了。

  • /opt: 這是給主機額外安裝軟件所擺放的目錄。好比你安裝一個ORACLE數據庫則就能夠放到這個目錄下。默認是空的。

  • /proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,咱們能夠經過直接訪問這個目錄來獲取系統信息。
    這個目錄的內容不在硬盤上而是在內存裏,咱們也能夠直接修改裏面的某些文件,好比能夠經過下面的命令來屏蔽主機的ping命令,使別人沒法ping你的機器:

  • /root:該目錄爲系統管理員,也稱做超級權限者的用戶主目錄。

  • /sbin:s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序。

  • /selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,相似於windows的防火牆,可是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。

  • /srv:該目錄存放一些服務啓動以後須要提取的數據。

  • /sys: 這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統。
    該文件系統是內核設備樹的一個直觀反映。當一個內核對象被建立的時候,對應的文件和目錄也在內核對象子系統中被建立。

  • /tmp:這個目錄是用來存放一些臨時文件的。

  • /usr:這是一個很是重要的目錄,用戶的不少應用程序和文件都放在這個目錄下,相似於windows下的program files目錄。

  • /usr/bin:系統用戶使用的應用程序。

  • /usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序。

  • /usr/src:內核源代碼默認的放置目錄。

  • /var:這個目錄中存放着在不斷擴充着的東西,咱們習慣將那些常常被修改的目錄放在這個目錄下。包括各類日誌文件。

  • Part Six 進程管道通訊與短路運算

  • 管道通訊語法
  • 命令1 | 命令2:命令1的輸出做爲命令2的輸入。
  • ls | grep codes:查詢codes目錄是否存在。
  • 短路運算
  • 命令1 || 命令2 || 命令3:從左至右依此執行,誰正確就執行誰,後面再也不執行。
  • 命令1 && 命令2 && 命令3:從左到右,依此執行。

  • Part Seven linux安裝軟件

  • yum安裝
  • yum search git ---查找軟件
  • yum install git --- 安裝軟件 yun -y install git ---跳過yes步驟,以yes來安裝
  • yum remove git --- 卸載軟件
  • yum info git --- 查看軟件信息
  • yum update 軟件名字 更新軟件
  • yum update ----- 更新全部的軟件
  • yum list installed--- 列出已經安裝的文件

  • code安裝以python3環境爲準
  • step 1:下載源代碼 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
  • step 2:解壓縮 gunzip Python-3.7.0.tgz
  • step 3:解歸檔 tar -xvf Python-3.7.0.tar
  • step 4:安裝底層依賴庫 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
  • step 5:進到解歸檔後的文件夾路徑 cd Python-3.7.0
  • step 6:執行可執行文件./configure --prefix=/usr/local/python37 --enable-optimizations
  • step 7:構建安裝 make && make install 源代碼構建安裝
  • step 8:配置PATH環境變量 export PATH=$PATH:/usr/local/python37/bin
  • step 9:註冊軟連接(符號連接) ln -s /usr/local/python37/bin/python/3 /usr/bin/python3


  • Part Eight web服務器配置與防火牆

  • nginx

    先yum安裝nginx服務器,命令yum install nginx

  • systemctl start 服務名字 --- 啓動服務
  • systemctl stop 服務名字 中止服務 ----
  • systemctl restart 服務名字 重複服務 ----
  • systemctl status 服務名字 查看信息 ----
  • systemctl enable 服務名字 ---- 開機自啓
  • systemctl disable 服務名字---- 關閉自啓
  • journalctl -xe---查看啓動服務失敗的錯誤緣由
  • systemctl status 服務.service--- 查看失敗錯誤緣由

  • httpd---Apache

    yum安裝httpd服務器,yum install nginx

  • 注意 : 兩個服務器默認使用的是80端口,要想同時使用必須修改其中一個端口號。修改方法,進入/etc目錄下找到安裝文件夾/nginx,修改nginx.conf文件中listen。參考

  • 防火牆

    阿里雲服務器自帶防火牆,咱們能夠不使用它而本身配置,配以前須要關閉阿里雲的防火牆。關閉阿里雲的防火牆-----打開安全組規則,設置端口爲1-65535,打開所有端口。

Linux自帶防火牆firewalld

  • 配置firewalld防火牆
  • systemctl start firewalld : 啓動防火牆服務
  • firewalld-cmd --add-service = 服務 : ---添加服務 配置防火牆---
  • firewalld-cmd --add-port=80/tcp :---打開端口
  • firewalld-cmd --permanent --add-port=80/tcp: ---永久打開端口
  • firewalld-cmd --query-port=443/tcp: ---查詢端口是否打開
  • firewalld-cmd --query-service=ssh:---查詢是否有某個服務
  • firewalld-cmd --remove-port=443/tcp:---刪除端口

    >firewalld默認打開22端口用於ssh鏈接,因此要用什麼服務,就開一個端口,而且設置這個服務默認使用端口爲開的端口。

  • Part Nine vim編輯器

  • 使用方法
  • vim 文件:進入命令模式,命令模式下按shift + 兩次zshift + 冒號進入末行模式,在末行模式下輸入wq保存退出,q退出,wq!是強制保存退出,按i進入編輯模式,按Esc退出編輯模式。
  • 設置編輯模式下的格式
  • vim .vimrc.vimrc文件是vim的配置文件
set nu --- 設置行號顯示
syntax on --- 設置語法高亮顯示
set tabstop =4 --- 設置一個tab爲4個空格
map <F2> gg99999dd --- 設置功能鍵,按F2刪除全部內容
inoremap _main if __name__ == '__main__': --- 設置快捷鍵,輸入_main快捷輸入
inoremap _#  #!/usr/bin/python3 --- 設置快捷鍵,輸入_#快捷輸入#!/usr/bin/python3
  • 命令模式下
  • 0 :--光標移動到當前行最開始
  • $ :--光標移動到當前行最末尾
  • h: --光標向左移動
  • l: --光標向右移動
  • k :--光標向上移動
  • ``j```: --光標向下移動
  • gg--光標移到最開始
  • G: --光標移動到最末尾
  • nG:--光標移動到第幾行 == ngg
  • yy: --複製光標當前行
  • nyy:--複製光標當前行到下面n行
  • p: --粘貼
  • dd :--刪除光標當前行
  • ndd: --刪除光標下n行包含當前光標行
  • ctrl+e: --下翻一行
  • ctrl+y:--上翻一行
  • ctrl+f: --向前翻頁
  • ctrl+b :--向後翻頁
  • u:--撤銷操所
  • ctrl+r: --恢復操做
  • ctrl+x ctrl+o:--代碼提示
  • /word:-- 查找當前光標下內容中word這個詞
  • ?word: --查找當前光標上內容中word這個詞
  • vim -d 文件1 文件2 --比較兩個文件的區別

  • 末行模式下
  • :n1,n2s/world1/world2/gice --- n1行到n2行進行替換
  • :1,$s/world1/world2/gice --全文替換world1爲world2
    --g:全局模式,正則表達式的全局匹配 i忽略大小寫,c每次替換都要確認 ,-e容許錯誤,靜默處理,忽略錯誤
  • :w: --保存
  • :q: --退出
  • :set nu: --設置行號
  • :set ts =4: --設置tab爲4個空格
  • :set autoindent:--自動縮進

若是vim打開了多個文件,能夠在末行模式下經過:b<編號>切換到其餘文件 :ls查看打開文件編號

  • 打開多個文件:
  • :vs anotherfile 垂直拆分兩個窗戶顯示不一樣文件,兩次ctrl+w 切換光標到另外一個文件
  • :sp anotherfile水平拆分
  • :wqa: --退出所有窗口
  • :map <F1> gg999999dd ---映射快捷鍵 刪除全部(命令模式下的映射)
  • :inoremap _main if __name__ == '__main__'::---輸入模式下的映射 nore---非遞歸 避免_main死循環

改配置

  • vim .vimrc--- 必須叫.vimrc這個名字

  • Part Else 遠程鏈接與拷貝

  • 遠程鏈接
  • ssh root@112.74.164.93:遠程鏈接用戶名爲root,主機爲112.74.164.93的服務器。
  • 遠程拷貝

  • scp 文件1 root@112.74.164.93:/root/a.py --將文件1拷貝到ip93的root目錄下而且名爲a.py
  • scp root@ip1+絕對路徑 root@ip2+絕對路徑 ---將一臺機器的文件 傳到另外一個機器
  • sftp root@112.74.164.93---ftp遠程下載

  • python配置

    python 代碼加 #!/usr/bin/python3而後再修改.py文件爲可執行權限,再./文件執行python文件,如./a.py便可執行,但前提是將python的安裝文件中的執行程序軟鏈接到/usr/bin/python3目錄下。

  • Linux向windows互輸文件

    xshll 與 xftp的傳輸,點擊圈的按鈕。

image.png

相關文章
相關標籤/搜索