Linux 命令集錦

linux 一切從根開始,一切皆文件~ 讓咱們從一些命令開始瞭解吧linux

基本命令

  man  command:manual;查看命令幫助手冊正則表達式

 

  ls:list;查看當前文件夾下的內容ubuntu

    -a  查看全部內容,包含隱藏文件及文件夾vim

    -l   以列表形式顯示文件及文件夾的詳細信息centos

    -h  配合 -l 以人性化的方式顯示文件及文件夾的大小bash

  pwd:print work directory;查看當前工做目錄網絡

  cd  [路徑]:change directory;切換工做目錄app

    cd ~       切換到家目錄ssh

    cd          切換到家目錄工具

    cd .(點)  切換到當前目錄

    cd ..       切換到上級目錄

    cd -     切換到上次所在的目錄,至關於回看功能

  touch  [文件名]:新建文件

  mkdir  [目錄名]:make directory;建立目錄

    -p  遞歸建立目錄

  rm  [文件名]:remove;刪除指定文件

    -r  recursion;遞歸刪除目錄下的內容,刪除目錄時須要添加此參數

    -f  force;強制刪除;忽略不存在的文件,取消提示

    -i  爲了防止誤刪,以逐個確認要刪除的文件

  clear:清屏;快捷鍵是 ctrl + l

  cp:copy;拷貝文件或目錄

    -a  一般在複製目錄時使用,它保留連接、文件屬性、並遞歸的複製目錄;簡單來講,就是保持文件的原有屬性

    -f   force;已經存在的目標文件直接覆蓋,不會提示

    -i   交互式複製,在覆蓋目標文件以前給與提示,要求用戶確認

    -r   recursion;遞歸拷貝目錄下的內容,拷貝目錄時須要添加此參數

    -v  顯示拷貝進度

  scp:拷貝遠程文件/目錄

    遠程拷貝:scp TargetUserName@TargetHostIP : TargetFileName  LocalPath(Absolute  or  Relative)

    複製到遠程:scp  LocalFileName  RemoteUserName@RemoteHostIP : RemoteFileName

    -r  recursion;遞歸拷貝目錄下的內容,拷貝目錄時須要

    注意:scp 的前提條件是目標主機已經安裝了 openssh-server;安裝命令:sudo  apt-get  install  openssh-server

  mv:move;移動、重命名

    -f  force;已經存在的目標文件直接覆蓋,不會提示

    -i  交互式操做,在覆蓋目標文件以前給與提示,詢問是否重寫

    -v  顯示移動進度

  history:歷史命令記錄,保存在 ~/.bash_history 文件中

    history  查看歷史命令

    !n       根據編號使用第n條命令

    

 

初級命令

  echo:回顯命令,輸出 echo 後面的內容,默認輸出到控制檯

  >:輸出重定向

    如 ls > test.txt;將執行結果重定向到一個文件(會覆蓋)

  >>:追加劇定向

    如:ls >> test.txt;將執行結果追加到一個文件

  more:分屏顯示;每次只顯示一頁,按空格鍵顯示下一頁,按 q 退出顯示,按 h 獲取幫助

  |:管道;一個命令的輸出能夠經過管道做爲另外一個命令的輸入,| 的左端表示放,右端表示取

    如:ls -lh | more

  ln:連接

    硬連接:ln  源文件  連接文件

    軟連接:ln  -s  源文件  連接文件

  xargs:分組

    -n  分幾組

  head:默認取文件的前 10 行內容

    -n20  取前 20 行,簡寫爲 -20

  tail:默認取文件的最後 10 行內容

    -n100  取最後 100 行,簡寫爲 -100

    -f    動態打印,經常使用於動態查看日誌

    例子:取文件的第 20 - 30 行內容:head  -30  /home/Desktop/test.txt  |  tail  -11 

  grep:文本搜索;若是找到過濾內容,則輸出包含內容的全部行(排行老三)

    -v  顯示不包含匹配文本的全部行(取反)

    -n  顯示行號

    -c  只輸出匹配行的數量

    -i   忽略大小寫

    -An  顯示過濾結果及接下來的 n 行

    多個條件:

      • &          grep -n 'read' | grep 'download' | grep 'write'            過濾包含 read 和 download 和 write 內容的行
      • ||          grep -n 'read\|download\|write'            過濾包含 read 或 download 或 write 的行,(\| 表示轉義 |)

    支持正則表達式:

      ^     行首,搜尋 a 開頭的行;grep  -n  '^a'  1.txt

      $       行尾,搜索 z 結尾的行;grep  -n  'z$'  1.txt

      []       匹配中括號裏一系列字符中的一個;grep  -n  '[AB]cd[EF]'  1.txt,那麼包含 AcdE... 的行被輸出

      .(點)  匹配一個非換行的字符;grep  -n  'A.A'  1.txt,那麼包含 AbA, AcA... 的行被輸出

  sed:行文件編輯工具(擅長對行內容進行操做)(排行老二)

    匹配條件分爲兩種:數字行號或者匹配關鍵字

    關鍵字匹配格式:'/keyword/'  (隔離符號 / 能夠換成 @、#、!等符號)

    -n  取消默認輸出

    -i   文件編輯

      i   (insert)在匹配到的內容上一行增長內容

      a  (append)在匹配到的內容下一行增長內容

      d   刪除匹配的內容

      s   替換匹配到的內容

    例子:

    查看:

    • 取文件的第 20 - 30 行內容:sed  -n  '20, 30p'  /home/Desktop/test.txt

    替換:sed -i '行號s#原內容#替換後內容#列號' 文件名

    • 替換所有sed爲SED          sed -i 's#sed#SED#g' sed.txt
    • 替換首每行的第1個sed爲SED                    sed -i 's#sed#SED#' sed.txt
    • 替換第2行的首個SED爲sed                       sed -i '2s#SED#sed#' sed.txt
    • 替換每行的第2個SED爲sed                       sed -i 's#SED#sed#2' sed.txt
    • 替換第3行的第2個SED爲sed                     sed -i '3s#SED#sed#2' sed.txt

    增長:sed -i '行號a\增長的內容' 文件名

    • 在第一行上增長內容(內容佔一行)(不指定行數,則在每行上增長內容)                sed -i '1i\insert-1' sed.txt 
    • 在第二行下增長內容                                    sed -i '2a\zengjia-2' sed.txt 
    • 在1~3行上都增長內容                                 sed -i '1,3i\tongshi-2' sed.txt 
    • 在1~3行下都增長內容                                 sed -i '1,3a\tongshi-2' sed.txt 

    刪除:sed -i '行號d' 文件名

    • 刪除第4行內容                    sed -i '4d' sed.txt
    • 刪除3~5行內容                   sed -i '3,5d' sed.txt

  awk:很是強大的文檔編輯工具,不能能操做文件的,還能操做文件的(排行老大)

    -F  指定行的分隔符

    !     取反

    print 顯示內容:

      $0    顯示當前全部內容

      $n    顯示當前行的第 n 內容,若是存在多個 $n,它們之間有逗號,隔開

    常見內置變量:

      FILENAME  當前輸入文件的文件名,該變量是隻讀的

      NR       指定顯示行的行號

      NF       輸出最後一列的內容

      OFS       輸出格式的列分隔符,缺省是空格

      FS       輸出文件的列分隔符,缺省是連續的空格和 Tab 建

    例子:

    • 取文件中不包含 test 的行                         awk '!/test/' test.txt
    • 取文件的第 20 - 30 行內容                            sed  -n  'NR==20, NR==30'  /home/Desktop/test.txt
    • 打印第1列的內容                                           awk '{print $1}' awk.txt
    • 打印第一行第1和第3列內容                           awk  'NR==1 {print $1,$3}' awk.txt
    • 指定行的分隔符,查看內容                           awk -F ':' '{print $1,$7}' awk.txt 
    • 設置顯示分隔符,查看內容                      awk 'BEGIN{OFS=":"} {print NR,$0}' awk.txt

  find:查找文件/目錄;用法:find  路徑  -type  f/d  -name  test  -size  2M/+2M

    -name   按照文件名查找文件

    -perm    按照文件權限來查找文件

    -user     按照文件屬主來查找文件

    -group   按照文件所屬的組來查找文件

    -size   指定文件大小(或範圍)來查找文件

    -type     查找某一類型的文件    

      • f    普通文件
      • d   目錄 
      • b    塊設備文件                 
      • c    字符設備文件
      • p    管道文件      
      • l     符號連接文件  

    例子:

    • find  ./  -name  test.sh    當前目錄,名稱爲 test.sh 的文件
    • find  ./  -name  '*.sh'     當前目錄,後綴爲 .sh 的文件
    • find  ./  -name  '[A-Z]*'       當前目錄,以大寫字母開頭的文件
    • find  /tmp  -size  2M     /tmp 目錄,等於2M的文件
    • find  /tmp  -size  +2M     /tmp 目錄,大於2M的文件
    • find  /tmp  -size  -2M     /tmp 目錄,小於2M的文件
    • find  ./  -size  +4K  -size  -5K    當前目錄,大於4K,小於5K的文件
    • find  ./  -perm  777       當前目錄,權限爲 777 的文件或目錄 

   tar:歸檔命令

    打包壓縮:tar  [參數]  打包文件名  文件

      tar  -zcvf  test.tar.gz  *  將當前路徑下全部的文件和文件夾打包並壓縮到 test.tar.gz 文件中

    解壓:tar  -zxvf  test.tar.gz   解壓到當前路徑下

      tar  -zxvf  test.tar.gz  -C  /home/ubuntu/Desktop/  解壓到指定路徑

  chmod:修改權限

    數字法:

字母 說明
r 讀取權限,數字代號爲 "4"
w 寫入權限,數字代號爲 "2"
x 執行權限,數字代號爲 "1"
- 不具任何權限,數字代號爲 "0"

如執行:chmod u=rwx, g=rx, o=r filename 就等同於:chmod u=7, g=5, o=4 filename

chmod 751 file:

  文件全部者:讀/寫/執行

  同組用戶:讀/執行

  其它用戶:執行

&:後臺展現符號(將一個命令從前臺轉到後臺執行,並輸出進程ID)

[root@centos7_3 ~]# sleep 5
// 界面暫停5秒
[root@centos7_3 ~]# sleep 5 &
[1] 22760
[root@centos7_3 ~]# ps -aux | grep "sleep" | grep -v auto
root 22760 0.0 0.0 107896 608 pts/0 S 10:30 0:00 sleep 5
[root@centos7_3 ~]#

    所有信息符號:2>&1

    • 1    表示正確輸出的信息
    • 2    表示錯誤輸出的信息
    • 2>&1    表明全部輸出的信息

    符號示例:

      • 標準正確輸出:cat test.txt 1>>true.log
      • 標準錯誤輸出:fsdfaasdfsdfa  test.txt 2>>false.log

    案例:

      腳本內容

#!/bin/bash
echo "$0"
bad command

    1 和 2 分開使用(把正確輸出追加到true.log,錯誤輸出追加到false.log,注意空格):bash case.sh 1>>true.log 2>>false.log

    1 和 2 混合使用(把輸出所有追加到 result.log):bash case.sh 1>>result.log 2>&1

 

管理命令

sudo   -s:切換到root用戶

passwd  test:設置 test 用戶的密碼

exit:退出登陸用戶

who:查看登陸用戶

reboot、init6:重啓

shutdown  -now、init0:當即關機

shutdown  -h 20:23:定時關機

shutdown  -h +10:十分鐘後自動關機

 

查看內核版本

  cat  /etc/redhat-release

        [root@hahaha ~]# cat /etc/redhat-release         CentOS Linux release 7.4.1708 (Core) 

查看運行級別

  runlevel

  0  關機狀態

  1  單用戶

  2  多用戶,但沒有 NFS(網絡文件系統)

  3  完整的多用戶模式,命令模式,文本模式

  4  未使用

  5  x11,桌面模式

  6  重啓狀態

網卡

  網卡啓動:ifup  網卡名稱

  重啓某個網卡:ifup  網卡名稱  &&  ifdown  網卡名稱; 千萬不要只關閉網卡噢

    demo:  ifdown  enp0s3  &&  ifup  enp0s3

修改主機名

  臨時修改:hostname test

  永久修改(須要重啓):vim  /etc/hostname(centos7版本)  或者  使用命令 hostnamectl  set-hostname  hahaha

查看磁盤分區使用狀況

  df  -h

 

 

 

 隨時補充 ~

相關文章
相關標籤/搜索