實驗樓Linux實驗(一)

2021-09-26 12:58:06 字數 1985 閱讀 3934

在每個使用者的 home 目錄中有乙個 shell 每次啟動時會預設執行乙個配置指令碼,以初始化環境,包括新增一些使用者自定義環境變數等等。zsh 的配置檔案是 .zshrc,相應 bash 的配置檔案為 .bashrc 。它們在 etc 下還都有乙個或多個全域性的配置檔案,不過我們一般只修改使用者目錄下的配置檔案。

我們可以簡單地使用下面命令直接新增內容到 .zshrc 中:

$ echo 「path=$path:/home/shiyanlou/mybin」 >> .zshrc

上述命令中 >> 表示將標準輸出以追加的方式重定向到乙個檔案中,注意前面用到的 > 是以覆蓋的方式重定向到乙個檔案中,使用的時候一定要注意分辨。在指定檔案不存在的情況下都會建立新的檔案。

搜尋檔案

與搜尋相關的命令常用的有 whereis,which,find 和 locate 。

whereis 簡單快速
$ whereis who

$ whereis find

此處輸入的描述

locate 快而全
通過「 /var/lib/mlocate/mlocate.db 」資料庫查詢,不過這個資料庫也不是實時更新的,系統會使用定時任務每天自動執行 updatedb 命令更新一次,所以有時候你剛新增的檔案,它可能會找不到,需要手動執行一次 updatedb 命令(在我們的環境中必須先執行一次該命令)。它可以用來查詢指定目錄下的不同檔案型別,如查詢 /etc 下所有以 sh 開頭的檔案:

$ sudo apt-get update

$ sudo apt-get install locate

$ locate /etc/sh

注意,它不只是在 /bin 目錄下查詢,還會自動遞迴子目錄進行查詢。
查詢 /usr/share/ 下所有 jpg 檔案:

注意要新增 * 號前面的反斜槓轉義,否則會無法找到。
如果想只統計數目可以加上 -c 引數,-i 引數可以忽略大小寫進行查詢,whereis 的 -b、-m、-s 同樣可以使用。

which 小而精
which 本身是 shell 內建的乙個命令,我們通常使用 which 來確定是否安裝了某個指定的軟體,因為它只從 path 環境變數指定的路徑中去搜尋命令:

$ which man

find 精而細
find 應該是這幾個命令中最強大的了,它不但可以通過檔案型別、檔名進行查詢而且可以根據檔案的屬性(如檔案的時間戳,檔案的許可權等)進行搜尋。find 命令強大到,要把它講明白至少需要單獨好幾節課程才行,我們這裡只介紹一些常用的內容。

這條命令表示去 /etc/ 目錄下面 ,搜尋名字叫做 inte***ces 的檔案或者目錄。這是 find 命令最常見的格式,千萬記住 find 的第乙個引數是要搜尋的地方:

$ sudo find /etc/ -name inte***ces

注意 find 命令的路徑是作為第乙個引數的, 基本命令格式為 find [path] [option] [action] 。
下面以 -mtime 引數舉例:

-mtime n:n 為數字,表示為在 n 天之前的「一天之內」修改過的檔案

-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改過的檔案

-mtime -n:列出在 n 天之內(包含 n 天本身)被修改過的檔案

-newer file:file 為乙個已存在的檔案,列出比 file 還要新的檔名

列出 home 目錄中,當天(24 小時之內)有改動的檔案:

$ find ~ -mtime 0

列出使用者家目錄下比 code 資料夾新的檔案:

$ find ~ -newer /home/shiyanlou/code

實驗樓 Linux 學習筆記

1.1 linux 歷史的歷史 早期作業系統能夠處理批處理程式,它從檔案或者穿孔卡片讀取資料,然後輸出到另乙個檔案或者印表機,稱為批處理作業系統。後來,出現了能夠支援多個使用者從不同終端同時操作主機的系統,稱為分時作業系統。然後許多人紛紛嘗試開發分時作業系統,unix 就如此誕生,實現了 tcp i...

實驗樓之linux學習

cd etc passwd 第二個分號後即是是否需要密碼登入,去掉即可不需要密碼登入 兩種解決方法 1.實驗樓上的解決方案我試過沒有成功,在此列出來.如果哪位大神看到了請指出我的錯誤 以hhh使用者為例,想要在根目錄上建立乙個資料夾,使用命令 sudo mkdir 1 提示is not in the...

Linux實驗樓學習筆記

目錄linux指令彙總 環境變數 etc profile 環境變數的作用域比自定義變數的要大,如 shell 的環境變數作用於自身和它的子程序。在所有的 unix 和類 unix 系統中,每個程序都有其各自的環境變數設定,且預設情況下,當乙個程序被建立時,除了建立過程中明確指定的話,它將繼承其父程序...