1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網營銷解決方案
      linux獲取命令行參數(shù) linux命令結果作為參數(shù)

      linux 下如何編寫c程序,獲得命令行結果?

      void executeShell(const char *shell){

      成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網技術服務公司,擁有項目網站建設、網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元高淳做網站,已為上家服務,為高淳各地企業(yè)和個人服務,聯(lián)系電話:18980820575

      FILE *stream;

      char buf[1024];

      memset( buf, '\0', sizeof(buf) );//初始化buf,以免后面寫如亂碼到文件中

      stream = popen( shell , "r" ); ? //將命令的輸出 通過管道讀取(“r”參數(shù))到FILE* stream

      fread( buf, sizeof(char), sizeof(buf), stream); //將剛剛FILE* stream的數(shù)據(jù)流讀取到buf中

      pclose( stream );

      printf("%s \n",buf);//打印輸出結果

      }

      基本linux命令

      基本linux命令有哪些呢?

      1、ls命令

      就是 list 的縮寫,通過 ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。

      常用參數(shù)搭配:

      ls -a 列出目錄所有文件,包含以.開始的隱藏文件

      ls -A 列出除.及..的其它文件

      ls -r 反序排列

      ls -t 以文件修改時間排序

      ls -S 以文件大小排序

      ls -h 以易讀大小顯示

      ls -l 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來

      實例:

      (1) 按易讀方式按時間反序排序,并顯示文件詳細信息

      ls -lhrt

      (2) 按大小反序顯示文件詳細信息

      ls -lrS

      (3)列出當前目錄中所有以"t"開頭的目錄的詳細內容

      ls -l t*

      (4) 列出文件絕對路徑(不包含隱藏文件)

      ls | sed "s:^:`pwd`/:"

      (5) 列出文件絕對路徑(包含隱藏文件)

      find $pwd -maxdepth 1 | xargs ls -ld

      2、cd 命令

      cd(changeDirectory) 命令語法:

      cd [目錄名]

      說明:切換當前目錄至 dirName。

      實例:

      (1)進入要目錄

      cd /

      (2)進入 "home" 目錄

      cd ~

      (3)進入上一次工作路徑

      cd -

      (4)把上個命令的參數(shù)作為cd參數(shù)使用。

      cd !$

      3、pwd 命令

      pwd 命令用于查看當前工作目錄路徑。

      實例:

      (1)查看當前路徑

      pwd

      (2)查看軟鏈接的實際路徑

      pwd -P

      4、mkdir 命令

      mkdir 命令用于創(chuàng)建文件夾。

      可用選項:

      -m: 對新建目錄設置存取權限,也可以用 chmod 命令設置;

      -p: 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統(tǒng)將自動建立好那些尚不在的目錄,即一次可以建立多個目錄。

      實例:

      (1)當前工作目錄下創(chuàng)建名為 t的文件夾

      mkdir t

      (2)在 tmp 目錄下創(chuàng)建路徑為 test/t1/t 的目錄,若不存在,則創(chuàng)建:

      mkdir -p /tmp/test/t1/t

      5、rm 命令

      刪除一個目錄中的一個或多個文件或目錄,如果沒有使用 -r 選項,則 rm 不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復原狀。

      rm [選項] 文件…

      實例:

      (1)刪除任何 .log 文件,刪除前逐一詢問確認:

      rm -i *.log

      (2)刪除 test 子目錄及子目錄中所有檔案刪除,并且不用一一確認:

      rm -rf test

      (3)刪除以 -f 開頭的文件

      rm -- -f*

      6、rmdir 命令

      從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須具有對其父目錄的寫權限。

      注意:不能刪除非空目錄

      實例:

      (1)當 parent 子目錄被刪除后使它也成為空目錄的話,則順便一并刪除:

      rmdir -p parent/child/child11

      7、mv 命令

      移動文件或修改文件名,根據(jù)第二參數(shù)類型(如目錄,則移動文件;如為文件則重命令該文件)。

      當?shù)诙€參數(shù)為目錄時,第一個參數(shù)可以是多個以空格分隔的文件或目錄,然后移動第一個參數(shù)指定的多個文件到第二個參數(shù)指定的目錄中。

      實例:

      (1)將文件 test.log 重命名為 test1.txt

      mv test.log test1.txt

      (2)將文件 log1.txt,log2.txt,log3.txt 移動到根的 test3 目錄中

      mv llog1.txt log2.txt log3.txt /test3

      (3)將文件 file1 改名為 file2,如果 file2 已經存在,則詢問是否覆蓋

      mv -i log1.txt log2.txt

      (4)移動當前文件夾下的所有文件到上一級目錄

      mv * ../

      8、cp 命令

      將源文件復制至目標文件,或將多個源文件復制至目標目錄。

      注意:命令行復制,如果目標文件已經存在會提示是否覆蓋,而在 shell 腳本中,如果不加 -i 參數(shù),則不會提示,而是直接覆蓋!

      -i 提示

      -r 復制目錄及目錄內所有項目

      -a 復制的文件與原文件時間一樣

      實例:

      (1)復制 a.txt 到 test 目錄下,保持原文件時間,如果原文件存在提示是否覆蓋。

      cp -ai a.txt test

      (2)為 a.txt 建議一個鏈接(快捷方式)

      cp -s a.txt link_a.txt

      9、cat 命令

      cat 主要有三大功能:

      1.一次顯示整個文件:

      cat filename

      2.從鍵盤創(chuàng)建一個文件:

      cat filename

      只能創(chuàng)建新文件,不能編輯已有文件。

      3.將幾個文件合并為一個文件:

      cat file1 file2 file

      -b 對非空輸出行號

      -n 輸出所有行號

      實例:

      (1)把 log2012.log 的文件內容加上行號后輸入 log2013.log 這個文件里

      cat -n log2012.log log2013.log

      (2)把 log2012.log 和 log2013.log 的文件內容加上行號(空白行不加)之后將內容附加到 log.log 里

      cat -b log2012.log log2013.log log.log

      (3)使用 here doc 生成新文件

      cat log.txt EOF

      Hello

      World

      PWD=$(pwd)

      EOF

      ls -l log.txt

      cat log.txt

      Hello

      World

      PWD=/opt/soft/test

      (4)反向列示

      tac log.txt

      PWD=/opt/soft/test

      World

      Hello

      10、more 命令

      功能類似于 cat, more 會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示。

      命令參數(shù):

      +n 從笫 n 行開始顯示

      -n 定義屏幕大小為n行

      +/pattern 在每個檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示

      -c 從頂部清屏,然后顯示

      -d 提示“Press space to continue,’q’ to quit(按空格鍵繼續(xù),按q鍵退出)”,禁用響鈴功能

      -l 忽略Ctrl+l(換頁)字符

      -p 通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似

      -s 把連續(xù)的多個空行顯示為一行

      -u 把文件內容中的下畫線去掉

      常用操作命令:

      Enter 向下 n 行,需要定義。默認為 1 行

      Ctrl+F 向下滾動一屏

      空格鍵 向下滾動一屏

      Ctrl+B 返回上一屏

      = 輸出當前行的行號

      :f 輸出文件名和當前行的行號

      V 調用vi編輯器

      !命令 調用Shell,并執(zhí)行命令

      q 退出more

      實例:

      (1)顯示文件中從第3行起的內容

      more +3 text.txt

      (2)在所列出文件目錄詳細信息,借助管道使每次顯示 5 行

      ls -l | more -5

      按空格顯示下 5 行。

      11、less 命令

      less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 less 在查看之前不會加載整個文件。

      常用命令參數(shù):

      -i 忽略搜索時的大小寫

      -N 顯示每行的行號

      -o 文件名 將less 輸出的內容在指定文件中保存起來

      -s 顯示連續(xù)空行為一行

      /字符串:向下搜索“字符串”的功能

      ?字符串:向上搜索“字符串”的功能

      n:重復前一個搜索(與 / 或 ? 有關)

      N:反向重復前一個搜索(與 / 或 ? 有關)

      -x 數(shù)字 將“tab”鍵顯示為規(guī)定的數(shù)字空格

      b 向后翻一頁

      d 向后翻半頁

      h 顯示幫助界面

      Q 退出less 命令

      u 向前滾動半頁

      y 向前滾動一行

      空格鍵 滾動一行

      回車鍵 滾動一頁

      [pagedown]: 向下翻動一頁

      [pageup]: 向上翻動一頁

      實例:

      (1)ps 查看進程信息并通過 less 分頁顯示

      ps -aux | less -N

      (2)查看多個文件

      less 1.log 2.log

      可以使用 n 查看下一個,使用 p 查看前一個。

      12、head 命令

      head 用來顯示檔案的開頭至標準輸出中,默認 head 命令打印其相應文件的開頭 10 行。

      常用參數(shù):

      -n行數(shù) 顯示的行數(shù)(行數(shù)為復數(shù)表示從最后向前數(shù))

      實例:

      (1)顯示 1.log 文件中前 20 行

      head 1.log -n 20

      (2)顯示 1.log 文件前 20 字節(jié)

      head -c 20 log2014.log

      (3)顯示 t.log最后 10 行

      head -n -10 t.log

      13、tail 命令

      用于顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。

      常用參數(shù):

      -f 循環(huán)讀取(常用于查看遞增的日志文件)

      -n行數(shù) 顯示行數(shù)(從后向前)

      (1)循環(huán)讀取逐漸增加的文件內容

      ping 127.0.0.1 ping.log

      后臺運行:可使用 jobs -l 查看,也可使用 fg 將其移到前臺運行。

      tail -f ping.log

      (查看日志)

      14、which 命令

      在 linux 要查找某個文件,但不知道放在哪里了,可以使用下面的一些命令來搜索:

      which 查看可執(zhí)行文件的位置。

      whereis 查看文件的位置。

      locate 配合數(shù)據(jù)庫查看文件位置。

      find 實際搜尋硬盤查詢文件名稱。

      which 是在 PATH 就是指定的路徑中,搜索某個系統(tǒng)命令的位置,并返回第一個搜索結果。使用 which 命令,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的命令。

      常用參數(shù):

      -n  指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。

      實例:

      (1)查看 ls 命令是否存在,執(zhí)行哪個

      which ls

      (2)查看 which

      which which

      (3)查看 cd

      which cd(顯示不存在,因為 cd 是內建命令,而 which 查找顯示是 PATH 中的命令)

      查看當前 PATH 配置:

      echo $PATH

      或使用 env 查看所有環(huán)境變量及對應值

      15、whereis 命令

      whereis 命令只能用于程序名的搜索,而且只搜索二進制文件(參數(shù)-b)、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。whereis 及 locate 都是基于系統(tǒng)內建的數(shù)據(jù)庫進行搜索,因此效率很高,而find則是遍歷硬盤查找文件。

      常用參數(shù):

      -b 定位可執(zhí)行文件。

      -m 定位幫助文件。

      -s 定位源代碼文件。

      -u 搜索默認路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。

      實例:

      (1)查找 locate 程序相關文件

      whereis locate

      (2)查找 locate 的源碼文件

      whereis -s locate

      (3)查找 lcoate 的幫助文件

      whereis -m locate

      跪求紅旗LINUX高手進來指教下(在線等)

      last login:Wed Apr 23 00:08:34 on tty1

      [root@yuanban ~]#

      是說使用yuanban帳號登錄的時間。

      -bash:字符:command not found

      [root@yuanban ~]#

      你在#號后面要輸入命令才會執(zhí)行,亂輸入不會執(zhí)行的,它會提示你此命令未找到。

      startx 只是xinit的一個前端工具,它所做的只是設置好一些變量,資源。然后再用xinit 啟動X window.

      xinit的命令格式:

      xinit [ [client] clientargs] [-- [server] [display] serverargs]

      startx所做的工作:

      一.獲取命令行參數(shù)

      1.client段

      clientargs:

      完全從命令行中獲取,無默認值

      client:

      如果沒有指定,但是已經指定clientargs,則使用/usr/X11R6/bin/xterm

      如果沒有指定,且沒有指定clientargs,則使用./defaultclientargs,即按以下順序取值:

      $HOME/.xinitrc - /usr/X11R6/lib/X11/xinit/xinitrc

      /usr/X11R6/lib/X11/xinit/xinitrc其實就是執(zhí)行/etc/X11/Xsessions這個腳本

      而/etc/X11/Xsession又會檢查$HOME/.xsession,如果存在則把它作為client.

      所以如果$HOME/.xinitrc不存在時,它可以使用$HOME/.xsession;而當$HOME/.xinitrc存在

      時,它并不會使用$HOME/.xsession

      2.server段

      跟client類似

      增加一個display的設置,默認為":0"

      二.設置標志認證

      三.通過xinit啟動X

      四.關閉X時,進行一些收尾工作。

      對xinit來說,如果沒有指定client,則使用$HOME/.xinitrc,如果這個也不存在則使用xterm;如果沒有指定server,則使用$HOME/.xserverc,如果這這個不存在的話則使用X :0。

      所以當由startx啟動X時

      client的順序是: 命令行 - $HOME/.xinitrc - $HOME/.xsession - /usr/X11R6/lib/X11/xinit/xinitrc

      server的順序是: 命令行 - $HOME/.xserverrc - /usr/X11R6/lib/X11/xinit/xserverrc

      以上"-"表示:當前一個不存在時,則取下面一個,直到存在。

      Linux命令

      命令格式: 命令 [-選項] [參數(shù)]

      如:ls -la /usr

      **說明: **

      大部分命令遵從該格式

      多個選項時,可以一起寫 eg:ls –l –a à ls –la

      簡化選項與完整選項(注:并非所有選項都可使用完整選項) eg:ls –all à ls –a

      作用:切換用戶身份

      語法:su [選項] 用戶名

      -c 僅執(zhí)行一次命令,而不切換用戶身份

      $ su – root

      env

      $ su – root –c “useradd longjing”

      文件或目錄的CRUD

      英文:change directory 命令路徑:內部命令 執(zhí)行權限:所有用戶

      作用: 切換目錄

      語法:cd [目錄] / 切換到根目錄

      .. 回到上一級目錄

      . 當前目錄

      ~ 當前用戶的宿主目錄(eg:# cd ~用戶名 進入某個用戶的家目錄)

      英文:list 命令路徑:/bin/ls 執(zhí)行權限:所有用戶

      作用:顯示目錄文件

      語法:ls [-alrRd] [文件或目錄]

      -a all 顯示所有文件,注意隱藏文件,特殊目錄.和..

      -l(long) 顯示詳細信息

      -R(recursive) 遞歸顯示當前目錄下所有目錄

      -r (reverse) 逆序排序

      -t(time) 按修改時間排序(降序)

      英文:print working directory 命令路徑:/bin/pwd 執(zhí)行權限:所有用戶

      作用:顯示當前工作目錄

      語法:pwd [-LP]

      -L 顯示鏈接路徑,當前路徑,默認

      -P 物理路徑

      eg:# cd /etc/init.d

      英文:make directories 命令路徑:/bin/mkdir 執(zhí)行權限:所有用戶

      作用:創(chuàng)建新目錄

      語法:mkdir [-p] 目錄名

      -p 父目錄不存在情況下先生成父目錄 (parents)

      eg: mkdir linux/test 如果目錄linux不存在,則報錯,使用參數(shù)-p即可自動創(chuàng)建父目錄。

      命令路徑:/bin/touch 執(zhí)行權限:所有用戶

      作用:創(chuàng)建空文件或更新已存在文件的時間

      語法:touch 文件名

      eg:touch a.txt b.txt touch {a.txt,b.txt} 同時創(chuàng)建多個文件

      創(chuàng)建帶空格的文件 eg:touch "program files" 在查詢和刪除時也必須帶雙引號

      注意:生產環(huán)境中,文件名,一定不要加空格

      英文:copy 命令路徑:/bin/cp 執(zhí)行權限:所有用戶

      作用:復制文件或目錄

      語法:cp [–rp] 源文件或目錄 目的目錄

      -r -R recursive 遞歸處理,復制目錄

      -p 保留文件屬性 (原文件的時間不變)

      eg:

      1,相對路徑 cp –R /etc/* . cp –R ../aaa ../../test/

      2,,絕對路徑 cp –R / ect/service /root/test/aa/bb

      英文:move 命令路徑:/bin/mv 執(zhí)行權限:所有用戶

      作用:移動文件或目錄、文件或目錄改名

      語法:mv 源文件或目錄 目的目錄

      英文:remove 命令路徑:/bin/rm 執(zhí)行權限:所有用戶

      作用:刪除文件

      語法: rm [-rf] 文件或目錄

      -r (recursive)刪除目錄,同時刪除該目錄下的所有文件

      -f(force) 強制刪除文件或目錄 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認

      注意:工作中,謹慎使用rm –rf 命令。

      擴展點 :刪除亂碼文件

      一些文件亂碼后使用rm -rf 依然無法刪除

      此時,使用ll -i 查找到文件的inode節(jié)點

      然后使用find . -inum 查找到的inode編號 -exec rm {} -rf ;

      就能順利刪除了

      英文:concatenate 命令路徑:/bin/cat 執(zhí)行權限:所有用戶

      作用:顯示文件內容

      語法:cat [-n] [文件名]

      -n 顯示行號

      eg:cat /etc/services

      命令路徑:/bin/more 執(zhí)行權限:所有用戶

      作用:分頁顯示文件內容

      語法:more [文件名]

      空格或f 顯示下一頁

      Enter鍵 顯示下一行

      q或Q 退出

      命令路徑:/usr/bin/head 執(zhí)行權限:所有用戶

      作用:查看文件前幾行(默認10行)

      語法:head [文件名]

      -n 指定行數(shù)

      eg:head -20 /etc/services head –n 3 /etc/services

      命令路徑:/usr/bin/tail 執(zhí)行權限:所有用戶

      作用:查看文件的后幾行

      語法:tail [文件名]

      -n 指定行數(shù)

      -f (follow) 動態(tài)顯示文件內容

      獲取一個大文件的部分文件,可使用head或tail命令

      head -n 100 /etc/services config.log

      英文: link 命令路徑:/bin/ln 執(zhí)行權限:所有用戶

      作用:產生鏈接文件

      語法:

      ln -s [源文件] [目標文件] 創(chuàng)建軟鏈接 源文件 使用 絕對路徑

      ln [源文件] [目標文件] 創(chuàng)建硬鏈接

      eg:ln -s /etc/service ./service.soft

      創(chuàng)建文件/etc/service的軟鏈接service.soft

      eg:/etc/service /service.hard

      創(chuàng)建文件/etc/service的硬鏈接/service.hard

      軟連接類似于windows下的快捷方式

      軟連接文件格式:

      lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service - /etc/services

      1 硬鏈接數(shù)量,如果該文件沒有硬鏈接,就只有本身一個硬鏈接。

      13鏈接文件的長度

      格式解析(特征):

      1, 軟連接的文件類型是 l(軟連接),軟連接文件的權限 都是 lrwxrwxrwx

      2,- 箭頭指向到源文件

      真正的權限取決于對源文件的權限

      時間值為創(chuàng)建軟連接的時間

      軟連接可以跨文件系統(tǒng)生成

      硬鏈接特征

      1,相當于 cp -p +同步更新

      2,通過i節(jié)點識別,與源文件有相同的inode節(jié)點

      3,硬鏈接不能跨分區(qū),ln /home/test/issuels /boot/test (錯誤)

      4,不能針對目錄使用 ln /tmp/ aa.hard (無法將目錄/tmp 生成硬鏈接)

      刪除軟連接

      rm -rf symbolic_name

      英文:manual 命令路徑:/usr/bin/man 執(zhí)行權限:所有用戶

      作用:獲取命令或配置文件的幫助信息

      語法:man [命令/配置文件]

      eg:man ls man services

      (查看配置文件時,不需要配置文件的絕對路徑,只需要文件名即可)

      調用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,按q退出。

      使用/加上關鍵的參數(shù)可直接定位搜索, n 查找下一個,shift+n 查找上一個

      eg: /-l 直接查看-l的介紹

      擴展:man的級別 (幫助文檔的類型, 了解1 5即可)

      man man-pages 查看每一種類型代表的含義 man文檔的類型(1~9)

      1是命令,5是配置文件 man優(yōu)先顯示命令,可指定幫助類型

      eg:man 5 passwd (5代表配置文件級別)

      [圖片上傳失敗...(image-6718d2-1624438708895)]

      help 查看shell內置命令的幫助信息

      eg:help cd

      內置命令,使用whereis,which,man都不能查看

      type 命令 查看內部命令還是外部命令

      命令名 --help 列舉該命令的常用選項

      eg: cp --help

      命令路徑:/bin/find 執(zhí)行權限:所有用戶

      作用:查找文件或目錄

      語法:find [搜索路徑] [匹配條件]

      如果沒有指定搜索路徑,默認從當前目錄查找

      find命令選項

      -name 按名稱查找 精準查找

      eg:find /etc -name “init” 在目錄/etc中查找文件init

      -iname 按名稱查找

      find查找中的字符匹配:

      *:匹配所有

      ?:匹配單個字符

      eg:find /etc -name “init???” 在目錄/etc中查找以init開頭的,且后面有三位的文件

      模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉義,可使用 單雙引號括住查詢條件,或者使用*。

      eg: # find . –name *g

      -size ****按文件大小查找

      以block為單位,一個block是512B, 1K=2block +大于 -小于 不寫是等于

      eg:find /etc -size -204800 在etc目錄下找出大于100MB的文件

      100MB=102400KB=204800block

      **-type ** 按文件類型查找

      f 二進制文件l 軟連接文件 d 目錄 c 字符文件

      eg: find /dev -type c

      find****查找的基本原則 :

      占用最少的系統(tǒng)資源,即查詢范圍最小,查詢條件最精準

      eg:

      如果明確知道查找的文件在哪一個目錄,就直接對指定目錄查找,不查找根目錄/

      命令路徑:/bin/grep 執(zhí)行權限:所有用戶

      作用:在文件中搜尋字串匹配的行并輸出

      語法:grep [-cinv] '搜尋字符串' filename

      選項與參數(shù):

      -c :輸出匹配行的次數(shù)(是以行為單位,不是以出現(xiàn)次數(shù)為單位)

      -i :忽略大小寫,所以大小寫視為相同

      -n :顯示匹配行及行號

      -v :反向選擇,顯示不包含匹配文本的所有行。

      eg:grep ftp /etc/services

      eg:#grep -v ^# /etc/inittab 去掉文件行首的#號

      eg:# grep -n “init”/etc/inittab 顯示在inittab文件中,init匹配行及行號

      eg:# grep -c“init”/etc/inittab 顯示在inittab文件中,init匹配了多少次

      命令路徑:/usr/bin/which 執(zhí)行權限:所有用戶

      作用: 顯示系統(tǒng)命令所在目錄(絕對路徑及別名)

      which命令的作用是,在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的命令

      alias ls='ls --color=auto'

      /bin/ls

      /usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)

      命令路徑:/usr/bin/whereis 執(zhí)行權限:所有用戶

      作用:**搜索命令所在目錄 配置文件所在目錄 及幫助文檔路徑 **

      eg: which passwd 和 whereis passwd

      eg:查看/etc/passwd配置文件的幫助,就用 man 5 passwd

      英文:GNU zip 命令路徑:/bin/gzip 執(zhí)行權限:所有用戶

      作用:壓縮(解壓)文件,壓縮文件后綴為.gz

      gzip只能壓縮文件,不能壓縮目錄;不保留原文件

      語法:gzip 文件

      -d將壓縮文件解壓(decompress)

      解壓使用gzip –d或者 gunzip

      命令路徑:/usr/bin/bzip2 執(zhí)行權限:所有用戶

      作用: 壓縮(解壓)文件,壓縮文件后綴為.bz2

      語法:bzip2 [-k] [文件]

      -k:產生壓縮文件后保留原文件(壓縮比高)

      -d 解壓縮的參數(shù)(decompress)

      解壓使用bzip2 –d或者 bunzip2

      命令路徑:/usr/bin/zip 執(zhí)行權限:所有用戶

      作用: 壓縮(解壓)文件,壓縮文件后綴為.zip

      語法:zip 選項[-r] [壓縮后文件名稱] [文件或目錄]

      -r壓縮目錄

      eg:zip services.zip /etc/services 壓縮文件;

      zip -r test.zip /test 壓縮目錄

      如果不加-r選項,壓縮后的文件沒有數(shù)據(jù)。

      解壓使用unzip

      命令路徑:/bin/tar 執(zhí)行權限:所有用戶

      作用:文件、目錄打(解)包

      語法:tar [-zcf] 壓縮后文件名 文件或目錄

      -c 建立一個壓縮文件的參數(shù)指令(create),后綴是.tar

      -x 解開一個壓縮文件的參數(shù)指令(extract)

      -z 以gzip命令壓縮/解壓縮

      -j 以bzip2命令壓縮/解壓縮

      -v 壓縮的過程中顯示文件(verbose)

      -f file 指定文件名,必選項

      1, 單獨的打包 ,解包 tar –cf tar –xf

      2, 打包之后,進行壓縮 gzip bzip2

      3, 一步到位 tar –zcvf tar -zxvf

      tar -cf -xf 單獨 壓縮 解壓縮

      tar -z 以gzip打包目錄并壓縮 文件格式.tar.gz(.tgz)

      tar -j 以bzip2打包目錄并壓縮 文件格式.tar.bz2

      eg:tar -zcvf dir1.tar.gzdir1 使用gzip將目錄dir1壓縮成一個打包并壓縮文件dir1.tar.gz

      eg: tar -cvf bak.tar . 將當前目錄的文件打包為bak.tar

      eg: tar -xvf bak.tar 解壓

      eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar使用gzip將打包文件bak.tar壓縮為bak.tar.gz

      eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2將打包文件bak.tar壓縮為bak.tar.bz2

      eg: tar -rvf bak.tar /etc/password 將/etc/password追加文件到bak.tar中(r)

      eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的壓縮文件

      eg:tar -xjf test.tar.bz2 解壓

      最常用: tar + gzip

      tar –zcvf 壓縮

      tar –zxvf 解壓

      補充:

      1,文件路徑, 壓縮包帶文件路徑

      2,源文件是保留的,不會被刪除

      **shutdown **[選項] 時間

      選項: -c: 取消前一個關機命令

      -h:關機

      -r:重啟

      eg:

      shutdown -h now 立即關機 shutdown -h 20:30 定時關機

      其他關機命令 halt poweroff init 0

      其他重啟命令

      **reboot **重啟系統(tǒng) reboot -h now立即重啟

      init 6

      注意:生產環(huán)境中,關機命令和重啟命令謹慎執(zhí)行。

      善于查看man help等幫助文檔

      利用好Tab鍵 自動補全

      掌握好一些快捷鍵

      ctrl + c(停止當前進程)

      ctrl + z 掛起當前進程,放后臺

      ctrl + r(查看命令歷史) history

      ctrl + l(清屏,與clear命令作用相同)

      方向箭頭 上 下 可以查看執(zhí)行過的命令

      ctrl + a 行首 ctrl + e 行尾

      ctrl + k 清除 ctrl+ w 清除單詞

      vim/vi是Unix / Linux上最常用的文本編輯器而且功能非常強大。

      只有命令,沒有菜單。

      《大碗》編輯器版

      周圍的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什么插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開著,就是一個字:酷!你說這么牛X的一東西,怎么著學會也得小半年吧。半年!?入門都遠著呢!能學會移動光標就不錯了,你還別說耗不起,就這還是左右移動!!!

      :

      [圖片上傳失敗...(image-a08366-1624438708894)]

      命令模式:又稱一般模式

      編輯模式:又稱底行模式,命令行模式

      |

      命令

      |

      作用

      |

      |

      a

      |

      在光標后附加文本

      |

      |

      A(shift + a)

      |

      在本行行末附加文本 行尾

      |

      |

      i

      |

      在光標前插入文本

      |

      |

      I(shift+i)

      |

      在本行開始插入文本 行首

      |

      |

      o

      |

      在光標下插入新行

      |

      |

      O(shift+o)

      |

      在光標上插入新行

      |

      |

      命令

      |

      作用

      |

      |

      :set nu

      |

      設置行號

      |

      |

      :set nonu

      |

      取消行號

      |

      |

      gg

      G

      |

      到第一行

      到最后一行

      |

      |

      nG

      |

      到第n行

      |

      |

      :n

      |

      到第n行

      |

      |

      命令

      |

      作用

      |

      |

      :w

      |

      保存修改

      |

      |

      :w new_filename

      |

      另存為指定文件

      |

      |

      :w a.txt

      |

      內容追加到a.txt文件中 文件需存在

      |

      |

      :wq

      |

      保存修改并退出

      |

      |

      shift+zz(ZZ)

      |

      快捷鍵,保存修改并退出

      |

      |

      :q!

      |

      不保存修改退出

      |

      |

      :wq!

      |

      保存修改并退出(文件所有者可忽略文件的只讀屬性)

      |

      不保存并退出:

      1, 有修改,但是修改后的內容是不保存的

      2, 有突發(fā)情況,導致窗口退出。修改文件之后,直接刪除同名的.swp文件

      |

      命令

      |

      作用

      |

      |

      x

      |

      刪除光標所在處字符 nx 刪除光標所在處后n個字符

      |

      |

      dd

      |

      刪除光標所在行,ndd刪除n行

      |

      |

      :n1,n2d

      |

      刪除指定范圍的行(eg :1,3d 刪除了123這三行)

      |

      |

      dG

      |

      刪除光標所在行到末尾的內容

      |

      |

      D

      |

      刪除從光標所在處到行尾

      |

      |

      命令

      |

      作用

      |

      |

      yy、Y

      |

      復制當前行

      |

      |

      nyy、nY

      |

      復制當前行以下n行

      |

      |

      dd

      |

      剪切當前行

      |

      |

      ndd

      |

      剪切當前行以下n行

      |

      |

      p、P

      |

      粘貼在當前光標所在行下 或行上

      |

      |

      命令

      |

      作用

      |

      |

      r

      |

      取代光標所在處字符

      |

      |

      R(shift + r)

      |

      從光標所在處開始替換字符,按Esc結束

      |

      |

      u

      |

      undo,取消上一步操作

      |

      |

      ctrl+r

      |

      redo,返回到undo之前

      |

      |

      命令

      |

      作用

      |

      |

      /string

      |

      向后搜索指定字符串 搜索時忽略大小寫 :set ic

      |

      |

      ?string

      |

      向前搜索指定字符串

      |

      |

      n

      |

      搜索字符串的下一個出現(xiàn)位置,與搜索順序相同

      |

      |

      N(Shift + n)

      |

      搜索字符串的上一個出現(xiàn)位置,與搜索順序相反

      |

      |

      :%s/old/new/g

      |

      全文替換指定字符串

      |

      |

      :n1,n2s/old/new/g

      |

      在一定范圍內替換指定字符串

      |

      % 指全文,s 指開始,g 指全局替換

      eg: :41,44/yang/lee/c 從41行到44行,把yang替換為lee,詢問是否替換

      eg: :41,44/yang/lee/g 同上,不詢問,直接替換

      使用替換命令來添加刪除注釋

      :% s/^/#/g 來在全部內容的行首添加 # 號注釋

      :1,10 s/^/#/g 在1~10 行首添加 # 號注釋

      vi里面怎么查命令??

      :!which cp

      vi里面怎么導入命令的結果?

      :r !which cp

      v 可視字符模式

      V****(shift+v) 可視行模式,選擇多行操作

      **ctrl+v **可視塊模式(列模式),操作列

      I或者O進入插入模式。

      1,圖形化界面

      2,setup 命令虛擬界面

      3,修改配置文件(以網絡方式為NAT示例)

      vi /etc/sysconfig/network-scripts/ifcfg-eth0

      BOOTPROTO=static

      ONBOOT=yes

      IPADDR=192.168.2.129

      NETMASK=255.255.255.0

      GATEWAY=192.168.2. 2 #網段2任意,IP地址2固定,網段為vmnet8的設置的IP網段

      DNS1=114.114.114.114

      DNS2=8.8.8.8

      重啟網絡生效:

      service network restart

      命令路徑:/bin/ping 執(zhí)行權限:所有用戶

      作用:測試網絡的連通性

      語法:ping 選項 IP地址

      -c 指定發(fā)送次數(shù)

      ping 命令使用的是icmp協(xié)議,不占用端口

      eg: # ping -c 3 127.0.0.1

      英文:interface configure 命令路徑:/sbin/ifconfig 執(zhí)行權限:root

      作用:查看和設置網卡網絡配置

      語法:ifconfig [-a] [網卡設備標識]

      -a:顯示所有網卡信息

      ifconfig [網卡設備標識] IP地址 修改ip地址

      英文:network statistics 命令路徑:/bin/netstat 執(zhí)行權限:所有用戶

      作用:主要用于檢測主機的網絡配置和狀況

      -a all顯示所有連接和監(jiān)聽端口

      -t (tcp)僅顯示tcp相關選項

      -u (udp)僅顯示udp相關選項

      -n 使用數(shù)字方式顯示地址和端口號

      -l (listening) 顯示監(jiān)控中的服務器的socket

      eg:# netstat -tlnu 查看本機監(jiān)聽的端口

      tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

      協(xié)議 待收數(shù)據(jù)包 待發(fā)送數(shù)據(jù)包 本地ip地址:端口 遠程IP地址:端口

      netstat –antpl

      臨時生效:

      hostname 主機名

      [圖片上傳失敗...(image-ceed36-1624438708893)]

      永久生效:修改配置文件

      vi /etc/sysconfig/network

      [圖片上傳失敗...(image-2b9d9e-1624438708893)]

      修改主機名和ip地址之間的映射關系

      vi /etc/hosts

      192.168.2.120 node-1.edu.cn node-1

      可配置別名

      [圖片上傳失敗...(image-ec86cf-1624438708893)]

      進程和程序的區(qū)別:

      1、程序是靜態(tài)概念,本身作為一種軟件資源長期保存;而進程是程序的執(zhí)行過程,它是動態(tài)概念,有一定的生命期,是動態(tài)產生和消亡的。

      2、程序和進程無一一對應關系。一個程序可以由多個進程共用;另一方面,一個進程在活動中有可順序地執(zhí)行若干個程序。

      進程和線程的區(qū)別:

      進程: 就是正在執(zhí)行的程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,并占用一定的系統(tǒng)資源。

      線程: 輕量級的進程;進程有獨立的地址空間,線程沒有;線程不能獨立存在,它由進程創(chuàng)建;相對講,線程耗費的cpu和內存要小于進程。

      進程管理的作用?

      判斷服務器的健康狀態(tài)

      查看系統(tǒng)所有的進程

      殺死進程

      作用:查看系統(tǒng)中的進程信息

      語法:ps [-auxle]

      常用選項

      查看系統(tǒng)中所有進程

      ps應用實例 # ps -u or ps -l 查看隸屬于自己進程詳細信息

      作用: 查看當前進程樹

      語法:pstree [選項]

      -p 顯示進程PID

      -u 顯示進程的所屬用戶

      作用:查看系統(tǒng)健康狀態(tài)

      顯示當前系統(tǒng)中耗費資源最多的進程,以及系統(tǒng)的一些負載情況。

      語法:top [選項]

      -d 秒數(shù),指定幾秒刷新一次,默認3秒(動態(tài)顯示)

      作用:關閉進程

      語法:kill [-選項] pId

      kill -9 進程號(強行關閉) 常用

      kill -1 進程號(重啟進程)

      添加用戶

      語法:useradd [選項] 用戶名

      修改密碼命令

      語法:passwd [選項] [用戶名]

      用戶密碼:生產環(huán)境中,用戶密碼長度8位以上,設置大小寫加數(shù)字加特殊字符,要定期更換密碼。

      ys^h_L9t

      刪除用戶

      -r 刪除賬號時同時刪除宿主目錄(remove)

      作用:用于查看Linux文件系統(tǒng)的狀態(tài)信息,顯示各個分區(qū)的容量、已使用量、未使用量及掛載點等信息。看剩余空間

      語法:df [-hkam] [掛載點]

      -h(human-readable)根據(jù)磁盤空間和使用情況 以易讀的方式顯示 KB,MB,GB等 -k  以KB 為單位顯示各分區(qū)的信息,默認

      -M 以MB為單位顯示信息 -a  顯示所有分區(qū)包括大小為0 的分區(qū)

      作用:用于查看文件或目錄的大小(磁盤使用空間)

      語法:du [-abhs] [文件名目錄]

      -a 顯示子文件的大小

      -h以易讀的方式顯示 KB,MB,GB等

      -s summarize 統(tǒng)計總占有量

      eg:

      du -a(all) /home  顯示/home 目錄下每個子文件的大小,默認單位為kb

      du -b /home  以bytes為單位顯示/home 目錄下各個子目錄的大小

      du -h /home 以K,M,G為單位顯示/home 文件夾下各個子目錄的大小

      du -sh /home  以常用單位(K,M,G)為單位顯示/home 目錄的總大小 -s summarize

      df命令和du命令的區(qū)別:

      df命令是從文件系統(tǒng)考慮的,不僅考慮文件占用的空間,還要統(tǒng)計被命令或者程序占用的空間。

      du命令面向文件,只計算文件或目錄占用的空間。

      作用:查看內存及交換空間使用狀態(tài)

      語法: free [-kmg]

      選項:

      -k: 以KB為單位顯示,默認就是以KB為單位顯示

      -m: 以MB為單位顯示

      -g: 以GB為單位顯示

      清理緩存命令:

      echo 1 /proc/sys/vm/drop_caches

      求 linux下 c++高手,命令行傳參數(shù)的題,

      GNU/Linux的命令行選項有兩種類型:短選項和長選項,前者以 '-' 作為前導符,后者以 '--' 作為前導符

      。比如有一個命令:

      $ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt

      在GNU/Linux系統(tǒng),對這種情況的一種合理解釋是:

      a是短選項,帶一個參數(shù)vv;

      add是長選項,無參數(shù);

      b是短選項,無參數(shù);

      file是長選項,帶一個參數(shù)a.txt;

      b.txt是參數(shù);

      -是參數(shù),通常表示標準輸入,stdin;

      --是一個指示符,表明停止掃描參數(shù),其后所有部分都是參數(shù),而不是選項;

      -e是參數(shù);

      c.txt是參數(shù)

      為了簡化程序設計,有幾個庫函數(shù)可以優(yōu)雅地分析命令行參數(shù),原型如下:

      #include unistd.h

      int getopt(int argc, char * const argv[],

      const char *optstring);

      extern char *optarg;

      extern int optind, opterr, optopt;

      #define _GNU_SOURCE

      #include getopt.h

      int getopt_long(int argc, char * const argv[],

      const char *optstring,

      const struct option *longopts, int *longindex);

      int getopt_long_only(int argc, char * const argv[],

      const char *optstring,

      const struct option *longopts, int *longindex);

      我們先看看用于分析短參數(shù)的getopt函數(shù)。參數(shù)含義如下:

      argc, argv是從main函數(shù)獲取的參數(shù),原樣傳給getopt;

      optstring指示如何分析參數(shù)。

      關于optstring,還有幾點說明:

      如果選項帶參數(shù),該選項后接冒號,比如上例中optstring為"a:b",指示a帶參數(shù),b沒有參數(shù);

      如果選項帶可選參數(shù),該選項后接兩個冒號,比如"a::b",表明a可能有參數(shù),也可能沒有;

      如果optstring的開頭字符為':',表明如果指明選項帶參數(shù),而實際命令行沒有參數(shù)時,getopt返回':'而不是'?'(默認情況下返回'?',和無法識別的參數(shù)返回一樣);

      如果optstring的開頭字符為'+',表明一但遇到一個無選項參數(shù),馬上停止掃描,隨后的部分當作參數(shù)來解釋;

      如果optstring的開頭字符為'-',表明如果遇到無選項參數(shù),則把它當作選項1(不是字符'1')的參數(shù)

      該函數(shù)每解析完一個選項,就返回該選項字符。

      如果選項帶參數(shù),參數(shù)保存在optarg中。如果選項帶可選參數(shù),而實際無參數(shù)時,optarg為NULL。

      當遇到一個不在optstring指明的選項時,返回字符‘?’。如果在optstring指明某選項帶參數(shù)而實際沒有參數(shù)時,返回字符‘?’或者字符‘:’,視optstring的第一個字符而定。這兩種情況選項的實際值被保存在optopt中。

      當解析錯誤時,如果opterr為1則自動打印一條錯誤消息(默認),否則不打印。

      當解析完成時,返回-1。

      每當解析完一個argv,optind就會遞增。如果遇到無選項參數(shù),getopt默認會把該參數(shù)調后一位,接著解析下一個參數(shù)。如果解析完成后還有無選項的參數(shù),則optind指示的是第一個無選項參數(shù)在argv中的索引。

      函數(shù)getopt_long()的工作方式類似于getopt(),不過它還能接收長選項。在接收長選項之前,我們必須定義個一個結構體數(shù)組變量longopts,指明我們希望獲取的長選項。

      struct option {

      const char *name;

      int has_arg;

      int *flag;

      int val;

      };

      含義如下:

      name指明長選項的名稱;

      has_arg指明該選項是否帶參數(shù),1為是,0為否,2為可選;

      flag指明長選項如何返回,如果flag為NULL,則getopt_long返回val。否則返回0,flag指向一個值為val的變量。如果該長選項沒有發(fā)現(xiàn),flag保持不變;

      val指明返回的值,或者需要加載到被flag所指示的變量中。

      option數(shù)組的最后一個元素必須全部填充0.

      getopt_long的最后一個參數(shù)longindex在函數(shù)返回時指向被搜索到的選項在longopts數(shù)組中的下標。longindex可以為NULL,表明不需要返回這個值。

      getopt_long_only類似于getopt_long,但是它把'-'開頭的選項當作長選項來處理。如果該選項與長選項不匹配,而與短選項匹配,則可以作為短選項解析。

      在短選項找到的時候,getopt_long和getopt_long_only的表現(xiàn)和getopt一樣。如果長選項找到了,如果flag為 NULL,返回val,否則返回0。錯誤情況的處理和getopt一樣,只是返回'?'時還可能是別的情況引起的:選項含糊不明確或者無關參數(shù)。

      我們拿Linux手冊的一個例子來說事。

      #include stdio.h /* for printf */

      #include stdlib.h /* for exit */

      #include getopt.h

      int

      main (int argc, char **argv) {

      int c;

      int digit_optind = 0;

      while (1) {

      int this_option_optind = optind ? optind : 1;

      int option_index = 0;

      static struct option long_options[] = {

      {"add", 1, 0, 0},

      {"append", 0, 0, 0},

      {"delete", 1, 0, 0},

      {"verbose", 0, 0, 0},

      {"create", 1, 0, ’c’},

      {"file", 1, 0, 0},

      {0, 0, 0, 0}

      };

      c = getopt_long (argc, argv, "abc:d:012",

      long_options, option_index);

      if (c == -1)

      break;

      switch (c) {

      case 0:

      printf ("option %s", long_options[option_index].name);

      if (optarg)

      printf (" with arg %s", optarg);

      printf ("\n");

      break;

      case ’0’:

      case ’1’:

      case ’2’:

      if (digit_optind != 0 digit_optind != this_option_optind)

      printf ("digits occur in two different argv-elements.\n");

      digit_optind = this_option_optind;

      printf ("option %c\n", c);

      break;

      case ’a’:

      printf ("option a\n");

      break;

      case ’b’:

      printf ("option b\n");

      break;

      case ’c’:

      printf ("option c with value ‘%s’\n", optarg);

      break;

      case ’d’:

      printf ("option d with value ‘%s’\n", optarg);

      break;

      case ’?’:

      break;

      default:

      printf ("?? getopt returned character code 0%o ??\n", c);

      }

      }

      if (optind argc) {

      printf ("non-option ARGV-elements: ");

      while (optind argc)

      printf ("%s ", argv[optind++]);

      printf ("\n");

      }

      exit (0);

      }

      我們用digit_optind和this_option_optind來跟蹤選項012是否在一起,比如選項 -012 和-0 -1 -2 的optind情況是不一樣的,前者返回0、1、2時optind相同,而后者optind的值依次大1。

      希望你能看懂。。。


      分享標題:linux獲取命令行參數(shù) linux命令結果作為參數(shù)
      文章起源:http://www.ef60e0e.cn/article/hisgcp.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        沾益县| 广饶县| 皋兰县| 宜宾县| 遂溪县| 梅州市| 武强县| 吉安县| 灵宝市| 阳山县| 昌平区| 洛宁县| 栖霞市| 阿图什市| 廊坊市| 光山县| 紫金县| 鄂尔多斯市| 泾川县| 潞城市| 青岛市| 清镇市| 秦安县| 轮台县| 永嘉县| 邵东县| 儋州市| 祁东县| 扎赉特旗| 抚宁县| 安图县| 突泉县| 广饶县| 密山市| 新竹县| 大荔县| 太白县| 永寿县| 德兴市| 惠安县| 札达县|