Linux學習的經常使用命令

Linux學習的經常使用命令html

  公司一直用的服務器都是window服務器,本身也很久沒接觸Linux了,命令忘得差很少了,以前也是菜雞水平,就佈置個服務啥的,正好最近不怎麼忙,本身學習下,記錄下經常使用的命令以便翻閱。
前端

版本:centOS 6.5java

環境: VMware虛擬機linux

  首先先安卓VMware虛擬機,配置一臺系統爲centOS 6.5的虛擬機,先下載好鏡像,而後安裝的時候注意選擇,我選的是比較全的桌面版本,一千多個包,後期省的裝一些東西了,虛擬機裝好後須要將本身網絡打通,本身百度下教程。正則表達式

 

幾個配置經常使用的命令:shell

  service network restart -----重啓網絡服務apache

  vi /etc/sysconfig/network-scripts/ifcfg-eth0 -----打開網絡配置文件,進入編輯模式vim

  vi /etc/resolv.conf -----配置網關,網段是本身的網段(nameserver 192.168.235.2)centos

  vi /etc/sysconfig/network ---- 修改主機名host緩存

  刪除文件:

    rm -rf -------文件名 : 刪除文件夾和文件(甚用!!!!切記!!!!!)
    -r -------遞歸輪詢遍歷刪除
    -f -------刪除時忽略不存在的文件,沒有提示能夠 man 命令一下查看

  查看java是否安裝:java -version
  查看tomcat是否安裝:ps -ef|grep tomcat

 

 一:文件系統的操做

  init 0 ------關機
  reboot -f ------重啓虛擬機
  pwd --------- 查看當前地址完整的目錄
1:目錄操做:
  cd .. ----------返回上上級目錄
  cd ~ ---------直接進入root目錄
  cd 目錄名字 ---------打開目錄
  mkdir 目錄名字 ---------建立一個目錄
  cp 源文件目錄 目標文件目錄 -r -----------拷貝一個文件夾(-r是輪詢複製)
  rmdir 文件夾 -------刪除文件夾(只能刪除空目錄,如不是空,用rm -rf 文件夾名稱)
  mv 目錄/文件名字 其餘路徑 --------------移動文件或目錄
  mv 舊目錄名字 新目錄名字 ---------更改文件或目錄的名字
  ll 或者 ls --------查看當前目錄下的全部文件
2:文件操做
  touch 文件名 -------------建立一個空文件
  cp 源文件目錄 目標文件目錄 -----------拷貝一個文件夾
  rm 文件名 ----------- 刪除文件,會須要確認刪除,若是加上-f,直接刪除
  cat 文件名 -------------一次性顯示文件內容,文件內容多用more
  more 文件名 -------------顯示文件內容(按 Space 鍵,顯示文本的下一屏內容。
    按 Enier 鍵,只顯示文本的下一行內容。按 B 鍵,顯示上一屏內容。按 Q 鍵,退出。)
  less 文件名 -------------顯示文件內容,和more類似,Q退出,具體看百度
  head -10 文件名 -------------打印文件開始 10 行
  tail -10 文件名 -------------打印文件最後 10 行
  tail –f 文件名 -------------查看文件的內容變化
  find 查找路徑 –name 文件名或者目錄名(後面加*是以這個爲開頭的文件或者目錄) ------------查找問價或者目錄(最後顯示絕對路徑)

3:文件內容操做(注意權限問題):
編輯模式:
  i -----進入文件以後,按i進入編輯模式
  vi filename -----從打開或新建文件,並將光標置於第一行首
  vi +n filename -----從打開文件,並將光標置於第 n 行首
  vi + filename -----從打開文件,並將光標置於最後一行首
  vi +/pattern filename -----從打開文件,並將光標置於第一個與pattern 匹配的串處
命令行模式:

  esc -----從編輯模式退出來,進入命令輸入模式
  set nu -----顯示行號
  q -----退出vi編輯
  w -----寫入,保存文件
  wq -----保存退出
  ! -----強制操做
  nG -----光標移至第 n 行首
  n+ -----光標下移 n 行
  n- -----光標上移 n 行
  n$ -----光標移至第 n 行尾
  H -----光標移至屏幕頂行
  M -----光標移至屏幕中間行
  L -----光標移至屏幕最後行
  dd -----刪除 行
  x 或 X -----刪除一個字符,x 刪除光標後的,而 X 刪除光標前的
  uu 恢復前一個動做(經常使用)
通常模式
  yy 複製光標所在行(經常使用)
  nyy 複製光標所在行的向下 n 行,例如, 20yy 則是複製 20行(經常使用)
  p,P p 爲複製的數據粘貼在光標下一行,P 則爲粘貼在光標上一行(經常使用)
  /pattern   -----從光標開始處向文件尾搜索

  pattern :?pattern  -----從光標開始處向文件首搜索

  pattern n  -----在同一方向重複上一次搜索命令 N:在反方向上重複上一次搜索命令
  :s/p1/p2/g -----將當前行中全部 p1 均用 p2 替代
  :n1,n2s/p1/p2/g  -----將第 n1 至 n2 行中全部 p1 均用 p2 替代
  :g/p1/s//p2/g  -----將文件中全部 p1 均用 p2 替換

4:文件上傳
  安裝lrzsz:yum install lrzsz -y
  rz :上傳
  sz  filename:下載(不能下載目錄,能夠先打壓縮包再傳輸)
  WinSCP傳輸文件速度快,傳輸大文件可使用,是Linux和window之間的傳輸工具,也可使用相似於xshell的xftp,感受也挺方便的

 

 二:磁盤指令  

  df -----看硬盤信息,默認硬盤分區的大小以 kb 顯示,能夠在 df 後面加參數-m mb 單位, -k kb 單位 , -h 更易於閱讀
  du 文件名字/目錄名字 -----查看文件或者目錄的大小,默認單位爲 kb
    -k kb 單位,-m mb 單位,-a 全部文件和目錄,-h 更易於閱讀,--max-depth=0 目錄深度

 

 

 三:網絡指令 

  ifconfig ------查看網絡配置信息
  ping 地址 ------測試網絡是否通(注意linux下會一直髮送,ctrl+c結束)
  netstat ------查看網絡相關信息
    -a (all)顯示全部選項,默認不顯示 LISTEN 相關
    -t (tcp)僅顯示 tcp 相關選項
    -u (udp)僅顯示 udp 相關選項
    -n 拒絕顯示別名,能顯示數字的所有轉化成數字。
    -l 僅列出有在 Listen (監聽) 的服務狀態
    -p 顯示創建相關連接的程序名
    -r 顯示路由信息,路由表
    -e 顯示擴展信息,例如 uid 等
    -s 按各個協議進行統計
    -c 每隔一個固定時間,執行該 netstat 命令。
    提示:LISTEN 和 LISTENING 的狀態只有用-a 或者-l 才能看到
  telnet ip port -------測試遠程端口是否通(需安裝 telnet : yum install telnet -y) ,測試成功後,按 ctrl + ] 鍵,而後彈出 telnet>時,再按 q退出

 

四:系統管理

1:用戶操做
  useradd/adduser username ------建立用戶
  passwd username ------修改密碼
  userdel username ------刪除用戶
  usermod -l 新的名字 原來的名字 ------修改用戶名
  usermod -L 用戶名 ------鎖定帳號
  usermod -U 用戶名 ------解除鎖定
  whoami ------查看當前登陸用戶名,普通用戶可查看/etc/passwd 文件,得出系統一個有多少個用戶,root 用戶還能夠查看/etc/shadow 文件,

    來得出系統一個有多少用戶

  usermod [-LU][-c <備註>][-d <登入目錄>][-e <有效期限>][-f <緩衝天數>][-g <羣組>][-G <羣組>][-l <賬號名稱>]
  [-s <shell>][-u <uid>][用戶賬號] ------修改用戶
    參數說明:
    -c<備註>  修改用戶賬號的備註文字。
    -d登入目錄>  修改用戶登入時的目錄。
    -e<有效期限>  修改賬號的有效期限。
    -f<緩衝天數>  修改在密碼過時後多少天即關閉該賬號。
    -g<羣組>  修改用戶所屬的羣組。
    -G<羣組>  修改用戶所屬的附加羣組。
    -l<賬號名稱>  修改用戶賬號名稱。
    -L  鎖定用戶密碼,使密碼無效。
    -s<shell>  修改用戶登入後所使用的shell。
    -u<uid>  修改用戶ID。
    -U  解除密碼鎖定。


2:用戶組操做
  groupadd 用戶組名 ------建立用戶組
  groupdel 用戶組名 ------刪除用戶組
  groupmod -n new_name old_name -----修改用戶組名
  groups ------查看當前用戶所在的用戶組
  groups username ------查看指定用戶所在的組
  注意:建立用戶時,系統默認會建立一個和用戶名字同樣的主組。
  usermod -g 組名 用戶 —— 把用戶的主組改成其餘的組
  usermod -G 組名 用戶 —— 把用戶添加到附加組當中
  若是想查看一個組下面一共有多少用戶,能夠經過查看 /etc/group 文件的內容來獲得(cat /etc/group)

3:系統權限
  ll /usr ------查看/usr 目錄下的每一個文件或目錄的權限
權限類別:
  Linux 中,每一個文件或目錄都擁有三種權限
  權限     對文件的影響      對目錄的影響
  r(讀取)      可讀取文件       可列出目錄內容
  w(寫入)     可修改文件內容       可在目錄中建立刪除文件
  x(執行)      能夠執行這個      可訪問目錄內容
UGO 模型:
  Linux 權限基於 UGO 模型進行控制
  U 表明 User, G 表明 Group, O 表明 other
  每個文件的權限基於 UGO 進行設置,權限三個一組(rwx), 對應 UGO 分別設置
  每一個文件都有一個擁有者,所屬組即(Group), 不屬於上面的都是 other

  chown username 文件/目錄 ------修改全部者
  chown username:groupname 文件/目錄 ------同時修改一個文件或目錄的全部者和屬組
    若是要遞歸修改整個目錄下的全部者或屬組,加參數-R,如:chown -R mytest:test 目錄名字
  chgrp groupname name ------修改文件/目錄的屬組
  chmod ugo+rwx name ------修改文件/ 目錄的權限(其中 ugo 表明的是要對誰進行權限操做,
    rwx 表明進行怎樣的權限操做,+表明的受權,-表明的取消權限)

權限的另一種修改方式:

  將 rwx rwx rwx 三組權限的讀寫執行權限分別用 0 和 1 代替,1 表明有權限,0 表明沒權限,最後將三組二進制轉化成十進制。

  命令:chmod 700 myfile 其中 700 轉化成二進制爲 111000000,對應的權限只有全部者纔有讀寫和執行的權限

 

五:系統配置
  vi /etc/group --------用戶組信息配置
  vi /etc/shadow 和/etc/passwd 系統存在的全部用戶名 --------用戶信息配置
  vi /etc/inittab --------系統服務初始化配置
   參數解釋:
    0:停機狀態
    1:單用戶模式,root 帳戶進行操做
    2:多用戶,不能使用 net file system,通常不多用
    3:徹底多用戶,一部分啓動,一部分不啓動,命令行界面
    4:未使用、未定義的保留模式
    5:圖形化,3 級別中啓動的進程都啓動,而且會啓動一部分圖形界面進程。
    6:中止全部進程,卸載文件系統,從新啓動
    這些級別中 一、二、4 不多用,相對而言 0、三、五、6 用的會較多。3 級別和 5 級別除了桌面相關的進程外沒有什麼區別。

    爲了減小資源佔用,推薦都用 3 級別
    注意 :linux 默認級別爲 3,不要把 initdefault 設置爲 0 和 6


  vi /etc/sysconfig/network --------修改主機名
  vi /etc/hosts --------修改host文件,能夠配置DNS(配置映射),而後直接拼映射名
  vi /etc/resolv.conf --------DNS 服務器的地址文件
  date --------查看系統時間
  cal --------查看日曆
  date -s 2012-08-02 --------更新系統時間,只修改系統的日期
  date -s 10:08:00 --------更新系統時間,修改時間不修改日期
  date -s "2018-01-01 04:53:00" --------更新系統時間,同時修改日期和時間


  雖然 date 命令可以修改時間,可是手動修改確定是不許確的
  爲了能讓修改的時間更精確,能夠用 ntp 來作時間同步,它會到時間,服務器裏去同步時間,保證了時間的準確度。
  須要事先安裝 ntp 服務:yum install ntp -y
  

  ntpdate cn.ntp.org.cn  --------更新系統時間
  該命令表示爲:到域名爲 cn.ntp.org.cn 的時間服務器上同步時間。
  注:全球的時間服務器有不少個,能夠到百度或谷歌上搜,不必定用cn.ntp.org.cn 的時間服務器。

  vi /etc/profile --------Linux系統的環境變量
  echo $PATH --------系統在目錄裏命令對應的程序
  ./test.sh --------執行test.sh文件
  /usr/test/test.sh --------執行test.sh文件

六:重定向和管道
1:輸出重定向
  > 輸出重定向到一個文件或設備 覆蓋原來的文件
    (例:ls > shsxt ,這個命令會將 ls 的查看結果輸出到 shsxt 這個文件裏,再也不將內容打印到屏幕上)
   >> 輸出重定向到一個文件或設備 追加原來的文件
    (命令:echo 「shsxt is good」 >> shsxt 將「shsxt is good」追加到 shsxt 文件裏)
2:輸入重定向
  < 輸入重定向到一個程序
    (cat < test ,將 test 文件裏的內容看成是 cat 命令的輸入)
3:標準輸出重定向
  1>等同於>,可是發生錯誤時候,不會重定向到指定文件
4:錯誤輸出重定向
  2> --------把錯誤的輸出日誌重定向到指定文件裏,正確的日誌則不會
5:結合使用
  2>&1  --------將一個標準錯誤輸出重定向到標準輸出 ,即不管是正確的
  輸出仍是錯誤的輸出都重定向到指定文件裏。1 和 2 結合着使用,在平常中使用比較頻繁,由於做爲一個開發人員,
  咱們通常會把全部的日誌都保存下來,不管正確與否。
  注意:以上重定向符號都是覆蓋的,若想追加則用」>>」
6:管道
  命令 「|」 表示把前一個輸出當作後一個輸入
  介紹這個命令以前,先介紹 grep 命令。grep 命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配到的行打印出來。
  |和 grep 命令結合使用: netstat -anp | grep 22
  命令含義:把 netstat –anp 命令的輸出 當作是 grep 命令的輸入。
  上面的命令就是:先用 netstat –anp 命令查出本機的端口信息,而後把 netstat 輸出的端口信息,
  用做 grep 命令的輸入進行匹配搜索,而且匹配的是 22 ,即查看 22 端口是否開着。

7:命令執行控制
  命令:&& --------前一個命令執行成功纔會執行後一個命令該命令,
    例子:cat shsxt && ping www.baidu.com
  先執行 cat shsxt 命令,當 cat shsxt 命令執行成功後,才執行 ping 命令。
  命令:|| 前一個命令執行失敗纔會執行後一個命令
  cat shsxt || ping www.baidu.com
  從上圖可看出 ping 命令沒有執行,這是因爲 cat shsxt 命令執行成功了,||命令只有第一個命令執行成功後,
  纔會執行第二個命令。第一個命令 cat sxt 執行失敗了,而後才執行 ping 命令。


七:服務操做
  chkconfig --------查詢操做系統在每個執行等級中會執行哪些系統服務,其中包括各種常駐服務
  service 服務名 start/stop/status/restart --------對服務的狀態進行操做,查詢,重啓
  防火牆操做:
    查看狀態:service iptables status
    關閉與開啓:
    1 )永久性生效,重啓後不會復原
      開啓: chkconfig iptables on
      關閉: chkconfig iptables off
    2) 即時生效,重啓後復原
      開啓: service iptables start
      關閉: service iptables stop


  chkconfig --level 2345 name off|on --------服務初執行等級更改(若不加級別,默認是 2345 級別,命令:chkconfig name on|off)

  運行級別備註:
    0:關機。不能將系統缺省運行級別設置爲0,不然沒法啓動。
    1:單用戶模式,只容許root用戶對系統進行維護。
    2:無網絡鏈接的多用戶模式,不能使用NFS(至關於Windows下的網上鄰居)
    3:有網絡鏈接的字符界面的多用戶模式,
    4:未定義
    5:圖形界面的多用戶模式。
    6:重啓。不能將系統缺省運行級別設置爲0,不然會一直重啓


八:進程操做
  ps -aux --------查看全部進程的信息(-a 列出全部,-u 列出用戶,-x 詳細列出,如 cpu、內存等)
  ps - ef | grep ssh --------查看全部進程裏 CMD 是 ssh 的進程信息。
  ps -aux --sort -pcpu --------根據 CPU 使用來升序排序
  名詞解釋:
    PID: 運行着的命令(CMD)的進程編號
    TTY: 命令所運行的位置(終端)
    TIME: 運行着的該命令所佔用的 CPU 處理時間
    CMD: 該進程所運行的命令

  ping www.baidu.com > ping.log & ------若想一個程序放在後臺運行,只要在命令後面加 &符號
  jobs –l   ------列出當前鏈接的全部後臺進程()
    注意: jobs 命令只看當前終端生效的,關閉終端後,在另外一個終端 jobs已經沒法看到後臺跑得程序了。
    此時應該用 ps -ef | grep 進程名 來查詢後臺進程的(ps -ef | grep ping)


  後臺進程有時運行一段時間後,系統會自動把該進程掛起來,致使進程沒法正常運行。故後臺常常通常和 nohup 命令結合使用,
  告訴系統不要把該進程掛起,這樣子該命令就能夠 24*7 小時不間斷的運行了。
  命令: nohup ping www.baidu.com > ping2.log &
  此時該命令還不夠完美,由於這時 ping 命令的輸出重定向只會把正確的日誌重定向到 ping2.log 裏,
  咱們要想全部的日誌都定向到指定文件裏。因此咱們應該這樣寫:nohup ping www.baidu.com > ping2.log 2>&1 &

  kill pid -9 ------強制殺死pid爲-9的進程(能夠先用jobs –l 或 ps 命令先查出對應程序的 PID 或 PPID ,而後殺死掉進程)

九:其餘經常使用命令
1:yum

  yum是一個在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端軟件,包管理器。基於 RPM 包管理,可以從指定的服務器自動下載 RPM 包,而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件,包,無須繁瑣地一次次下載、安裝。因爲 centos 系統的 yum 默認是到國外網站下載,有時下載速度會很慢,故咱們能夠換一個 yum 的下載源,這裏咱們換一個國內的下載源 阿里雲鏡像。

 

第一步:備份你的原鏡像文件,以避免出錯後能夠恢復。
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
需先安裝 yum install wget –y


第二步:下載新的 CentOS-Base.rep 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
下載完以後,vim /etc/yum.repos.d/CentOS-Base.repo 查看一下文件內容。


第三步:運行 yum makecache 生成緩存
查看當前源
yum list | head -50

2:wget
  wget 是一個從網絡上自動下載文件的自由工具,支持經過 HTTP、HTTPS、FTP 三個最多見的 TCP/IP 協議 下載,並可使用 HTTP 代理
  wget 用法:

    wget [option] 網址 -O 指定下載保存的路徑(例:wget www.baidu.com -O baidu.html)

    注意:wget 工具還能夠用來作一些簡單的爬蟲,本身不會,能夠自行百度

 

3:tar
  -z gzip 進行解壓或壓縮,帶.gz 須要加,壓縮出來.gz 也須要加
    -x 解壓
    -c 壓縮
    -f 目標文件,壓縮文件新命名或解壓文件名
    -v 解壓縮過程信息打印
  解壓命令:tar -zvxf xxxx.tar.gz


  例子:先用 rz 命令或 wscp 上傳一個 tar 包,而後解壓

  壓縮命令:tar -zcf 壓縮包命名 壓縮目標
    例子:tar -zcf tomcat.tar.gz apache-tomcat-7.0.61
    將 apache-tomcat-7.0.61 目錄壓縮成 tomcat.tar.gz 包。

4:zip
  主要參數
  -c:將解壓縮的結果
  -l:顯示壓縮文件內所包含的文件
  -p:與-c 參數相似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換
  -t:檢查壓縮文件是否正確
  -u:與-f 參數相似,可是除了更新現有的文件外,也會將壓縮文件中的其它文件解壓縮到目錄中
  -v:執行是時顯示詳細的信息
  -z:僅顯示壓縮文件的備註文字
  -a:對文本文件進行必要的字符轉換
  -b:不要對文本文件進行字符轉換
  -r:遞歸處理,將指定目錄下的全部文件和子目錄一併處理
  -C:壓縮文件中的文件名稱區分大小寫
  -j:不處理壓縮文件中原有的目錄路徑
  -L:將壓縮文件中的所有文件名改成小寫
  -M:將輸出結果送到 more 程序處理
  -n:解壓縮時不要覆蓋原有的文件
  -o:沒必要先詢問用戶,unzip 執行後覆蓋原有文件
  -P:使用 zip 的密碼選項
  -q:執行時不顯示任何信息
  -s:將文件名中的空白字符轉換爲底線字符
  -V:保留 VMS 的文件版本信息
  -X:解壓縮時同時回存文件原來的 UID/GID

  壓縮命令:zip -r 包名 目標目錄
  需先安裝 zip:yum install zip –y 壓縮完後,查看一下,發現多了個 tomcat.zip 包。

  unzip filename ----------解壓文件,需先安裝unzip,命令: yum install unzip –y (注意目錄衝突)

相關文章
相關標籤/搜索