日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux高级命令进阶(week1_day2)--技术流ken

發布時間:2024/3/12 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux高级命令进阶(week1_day2)--技术流ken 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

輸出重定向

?

場景:一般命令的輸出都會顯示在終端中,有些時候需要將一些命令的執行結果想要保存到文件中進行后續的分析/統計,則這時候需要使用到的輸出重定向技術。

>:覆蓋輸出,會覆蓋掉原先的文件內容

>>:追加輸出,不會覆蓋原始文件內容,會在原始內容末尾繼續添加

2>:錯誤輸出,會覆蓋掉原先的文件內容

2>>:錯誤追加輸出,會覆蓋掉原始文件內容,會在原始內容末尾繼續添加

&>:將標準輸出與錯誤輸出共同寫入到文件中。覆蓋原有內容

&>>:將標準輸出與錯誤輸出共同寫入到文件中(追加到原有內容的后面)

?

標準輸入重定向(STDIN,文件描述符為0):默認從鍵盤輸入,也可從其他文件或命令中輸入。

標準輸出重定向(STDOUT,文件描述符為1):默認輸出到屏幕。

錯誤輸出重定向(STDERR,文件描述符為2):默認輸出到屏幕。

?

案例1:使用覆蓋輸出(覆蓋原文內容)

[root@ken ~]# vim test [root@ken ~]# cat test this is ken [root@ken ~]# echo "this is oscar" > test [root@ken ~]# cat test this is oscar

?

案例2:使用追加輸出(原文中追加)

[root@ken ~]# cat test this is oscar [root@ken ~]# echo "this is ken" >> test [root@ken ~]# cat test this is oscar this is ken

?

案例3:使用錯誤輸出重定向

默認錯誤輸出會輸出倒終端之上

[root@ken ~]# cat klkl > test #使用輸出重定向無法使錯誤輸出導入到文本中 cat: klkl: No such file or directory [root@ken ~]# cat klkl 2> test #需要使用2>錯誤輸出重定向 [root@ken ~]# cat test cat: klkl: No such file or directory

?

案例4:將標準輸出與錯誤輸出共同寫入到文件中

[root@ken ~]# cat klkl &> test [root@ken ~]# cat test cat: klkl: No such file or directory

?

輸入重定向

?

工作中用到的比較少,了解即可,輸入重定向的作用是把文件直接導入到命令中。

案例:統計文本行數

[root@ken ~]# wc -l < /etc/passwd 28

?

管道符

?

管道命令符(|)的作用是把前一個命令原本要輸出到屏幕的標準正常數據當作是后一個命令的標準輸入。

例如我們需要統計passwd文件包含root的行數

[root@ken ~]# cat /etc/passwd | grep "root" | wc -l 2

把搜索命令的輸出值傳遞給統計命令,即把原本要輸出到屏幕的用戶信息列表再交給wc命令作進一步的加工,因此只需要把管道符放到兩條命令之間即可

?

通配符

?

為Linux運維人員,我們有時候也會遇到明明一個文件的名稱就在嘴邊但就是想不起來的情況。如果就記得一個文件的開頭幾個字母,想遍歷查找出所有以這個關鍵詞開頭的文件,該怎么操作呢?

通配符就是通用的匹配信息的符號,比如

  • 星號(*)代表匹配零個或多個字符(可以為0個)
  • 問號(?)代表匹配單個字符(單個字符必須存在)
  • 中括號內加上數字[0-9]代表匹配0~9之間的單個數字的字符,
  • 中括號內加上字母[abc]則是代表匹配a、b、c三個字符中的任意一個字符。
  • 案例1:查看dev目錄下所有以sda開頭的文件

    [root@ken ~]# ls /dev/sda* /dev/sda /dev/sda1 /dev/sda2

    ?

    案例2:查看dev目錄下以sda開頭,后面有一個字符的文件

    [root@ken ~]# ls /dev/sda? /dev/sda1 /dev/sda2

    加上問號之后/dev/sda就匹配不到了

    ?

    案例3:查看dev下以sda開頭,后面跟上數字的文件

    匹配不到sda

    [root@ken ~]# ls /dev/sda[0-9] /dev/sda1 /dev/sda2

    ?

    案例4:查看dev下以sda開頭,后面跟上字母的文件

    [root@ken ~]# ls /dev/sda[a-z] ls: cannot access /dev/sda[a-z]: No such file or directory

    匹配不到任何文件,也匹配不到/dev/sda,后面跟上字符必須存在才能匹配到。

    ?

    三種引號的作用

    ?

  • 單引號(''):轉義其中所有的變量為單純的字符串。
  • 雙引號(""):保留其中的變量屬性,不進行轉義處理。
  • 反引號(``):把其中的命令執行后返回結果。
  • ?

    案例1:單引號,不解釋變量即所見即所得

    [root@ken ~]# age=10 [root@ken ~]# echo 'my age is $age' my age is $age

    ?

    案例2:雙引號,解釋變量

    [root@ken ~]# age=10 [root@ken ~]# echo "my age is $age" my age is 10

    ?

    案例3:反引號,用來執行命令

    [root@ken ~]# name=`ls /root` [root@ken ~]# echo $name 10.txt 11.txt 12.txt 13.txt 14.txt 1.txt 2.txt 3.txt 4.txt 5 =5 5.txt 6.txt 7.txt 8.txt 9.txt anaconda-ks.cfg elasticsearch-6.4.0.tar.gz elasticsearch-6.4.0.tar.gz.1 ken kenken nohup.out redis-manager-1.1 redis-manager-1.1-release.tar.gz test test1.sh test.sh

    ?

    軟連接、硬連接

    ?

    軟連接

    軟連接:就是相當于windows下面的快捷方式

    【軟鏈接相當于快捷方式,硬鏈接相當于復制粘貼】

    創建完成后,源文件、軟鏈接和硬鏈接均可以查看到文件內容。

    編輯源文件,軟、硬鏈接跟著動。

    刪除源文件,軟鏈接失效,硬鏈接無影響。再重新建一個與源文件同名的文件,軟鏈接就直接鏈接到新的文件,而硬鏈接不變。因為軟鏈接是按著名稱進行鏈接。

    ln -s

    -s:指定源文件是誰 ?后面接 連接目標文件

    [root@ken ~]# ln -s ken kenken [root@ken ~]# ls elasticsearch-6.4.0.tar.gz ken nohup.out redis-manager-1.1-release.tar.gz elasticsearch-6.4.0.tar.gz.1 kenken redis-manager-1.1

    ?

    往連接文件添加一些內容

    [root@ken ~]# echo "this is ken" > kenken [root@ken ~]# cat kenken this is ken [root@ken ~]# cat ken this is ken

    發現源文件內容同步

    ?

    刪除連接文件

    [root@ken ~]# rm -rf kenken [root@ken ~]# cat ken this is ken

    源文件不變

    ?

    刪除源文件

    [root@ken ~]# rm -rf ken [root@ken ~]# cat kenken cat: kenken: No such file or directory

    連接文件失效

    ?

    再次創建源文件

    [root@ken ~]# touch ken [root@ken ~]# cat kenken [root@ken ~]# cat ken

    再重新建一個與源文件同名的文件,軟鏈接就直接鏈接到新的文件。因為軟鏈接是按著名稱進行鏈接

    ?

    總結:

    軟連接

    ln - s 原路徑 目標路徑

    特點:

    1、就是相當于win中的快捷方式

    2、刪除鏈接文件,源文件無影響

    3、刪除源文件,鏈接文件失效

    4、修改源文件\鏈接文件,內容都發生改變

    ?

    硬鏈接

    ln 源文件 目標文件

    [root@ken ~]# ln ken ken1 [root@ken ~]# ls elasticsearch-6.4.0.tar.gz ken kenken redis-manager-1.1 elasticsearch-6.4.0.tar.gz.1 ken1 nohup.out redis-manager-1.1-release.tar.gz

    ?

    總結:

    1、刪除鏈接文件,源文件無影響

    2、刪除源文件,鏈接文件無影響

    3、修改源文件\鏈接文件,內容都發生改變

    ?

    一切從“/”開始

    ?

    在Linux系統中,目錄、字符設備、塊設備、套接字等都被抽象成了文件,Linux系統中一切都是文件。既然平時我們打交道的都是文件,那么又應該如何找到它們呢?在Windows操作系統中,想要找到一個文件,我們要依次進入該文件所在的磁盤分區(假設這里是D盤),然后在進入該分區下的具體目錄,最終找到這個文件。但是在Linux系統中并不存在C/D/E/F等盤符,Linux系統中的一切文件都是從“根(/)”目錄開始的,并按照文件系統層次化標準(FHS)采用樹形結構來存放文件,以及定義了常見目錄的用途。另外,Linux系統中的文件和目錄名稱是嚴格區分大小寫的。例如,root、rOOt、Root、rooT均代表不同的目錄,并且文件名稱中不得包含斜杠(/)。Linux系統中的

    文件存儲結構如圖6-1所示。

    ?

    FHS是根據以往無數Linux系統用戶和開發者的經驗而總結出來的,是用戶在Linux系統中存儲文件時需要遵守的規則,用于指導我們應該把文件保存到什么位置,以及告

    訴用戶應該在何處找到所需的文件。但是,FHS對于用戶來講只能算是一種道德上的約束,有些用戶就是懶得遵守,依然會把文件到處亂放,有些甚至從來沒有聽說過它。

    ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? Linux系統中常見的目錄名稱以及相應內容

    目錄名稱

    應放置文件的內容

    /boot

    開機所需文件—內核、開機菜單以及所需配置文件等

    /dev

    以文件形式存放任何設備與接口

    /etc

    配置文件

    /home

    用戶主目錄

    /bin

    存放單用戶模式下還可以操作的命令

    /lib

    開機時用到的函數庫,以及/bin與/sbin下面的命令要調用的函數

    /sbin

    開機過程中需要的命令

    /media? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    用于掛載設備文件的目錄? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    /opt

    放置第三方的軟件

    /root

    系統管理員的家目錄

    /srv

    一些網絡服務的數據文件目錄

    /tmp

    任何人均可使用的“共享”臨時目錄

    /proc

    虛擬文件系統,例如系統內核、進程、外部設備及網絡狀態等

    /usr/local

    用戶自行安裝的軟件

    /usr/sbin

    Linux系統開機時不會使用到的軟件/命令/腳本

    /usr/share

    幫助與說明文件,也可放置共享文件

    /var

    主要存放經常變化的文件,如日志
    /lost+found

    當文件系統發生錯誤時,將一些丟失的文件片段存放在這里

    ?

    絕對路徑vs相對路徑

    ?

    在Linux系統中另外還有一個重要的概念—路徑。

    路徑指的是如何定位到某個文件,分為絕對路徑與相對路徑。

    絕對路徑指的是從根目錄(/)開始寫起的文件或目錄名稱

    相對路徑則指的是相對于當前路徑的寫法。

    轉載于:https://www.cnblogs.com/kenken2018/p/10447294.html

    總結

    以上是生活随笔為你收集整理的Linux高级命令进阶(week1_day2)--技术流ken的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。