4,文件盒目錄管理命令,shell的引用,shell歷史

目錄: 

cd : 切換目錄

    cd    路徑: 切換至該文件路徑

    cd ~[username]    : 切換至該用戶的家目錄,

    cd - : 切換至上一次所在的目錄


pwd:pring working directory: 顯示當前所在目錄


mkdir : 創建目錄

    -p : 先創建父目錄, 也就是 遞歸 創建

    -v : 顯示 創建 時 的 詳細 信息

wKiom1RGG4DiW8iyAAD6ocweh14989.jpg

這裏 涉及 到 一個 特性, bash關鍵字 的 展開, 例如

{a,b}_{c,d} 展開 之後 就是 a_c, a_d, b_c, b_d, 這個 在 創建 多個 文件 或 目錄 時 很有用


rmdir : 刪除空目錄: 這裏 注意, 要 刪除 的 目錄 一定 是 空 的。。,

    -p : 遞歸 刪除

    -v : 顯示 刪除 信息。。


shell中的 引用:

"" :強引用, 引用中可以加${PAHT}之類的變量引用,

'' :弱引用, 引用中間的字符串只能是字符串

`` :命令替換, 引用中的命令會被執行。, 當然,也可使用$(命令) 這種 形式 進行 命令替換


echo : 輸出 一句 話, 寫 腳本的 時候 有用, 相當於 c語言 裏的 printf, shell裏 也有 printf

wKiom1RGHaKDQNswAADrUlWNag8418.jpg

${NAME} 這個 是 引用 環境變量, 其中 {} 在 大多數情況 下 是 可以 省略 的, 但 如

${PATH}bbbb 這種 情況 就 不能 省略 了, 省略之後 就 變成

#PATHbbbb 了, 系統中 是 沒有 這個 環境變量 的。


shell特性 之 命令歷史:

bash會保留命令歷史在緩衝區中,當shell退出時,命令歷史會由緩衝區存放 到 ~/.bash_history 中

使用 ↑↓ 尖頭 可以 翻看 曾經執行 過 的 命令


history 快捷方式:

    !#: #爲命令歷史列表中的命令編號,可用於執行第#條命令

    !!: 執行上一條命令

    !-#: 執行倒數第#條命令

    !$: 引用上一個命令的最後一個參數

wKioL1RGICWCM_HzAAEogs0Cwrc169.jpg

執行 history 就 可以 看到 命令歷史 了, 這裏 太長了, 就 截取 了 最後 一部分, 先 看一下 快捷 方式 把, 

wKioL1RGIKTgyB-wAABi9gfSIs4372.jpg

這裏我又執行了下909號 的 這個 命令, 

wKiom1RGIJSwv6doAABiUBveot0778.jpg

這個是執行上一條語句,其實 還是 再 執行 一次 echo 語句, 

wKioL1RGIR_zRgwWAABYgV9ITxA873.jpg

這個 和 !! 沒區別 的, 也是 執行 上一條 語句, 當然, 把-1 改成 別的 就 有 區別 了。。


最後說下 !$ 把,

wKiom1RGIVXjGCxVAADPIfTlVLI356.jpg

我 最開始 是 在 / 目錄 下 查看 了 一下 我 的 家目錄, 然後 用 cd !$ 直接 跳轉 到 我的 家目錄, 這裏 的 !$ 就是 上個 命令 的 參數。。

----------------------------------------------------------

history選項:

    -c: 清空歷史

    -d#:刪除指定命令歷史,#爲命令歷史的編號

    -a:追加當前命令歷史到命令歷史文件中去。


命令歷史相關的環境變量:

    HISTSIZE:命令歷史中可以保存的命令的個數;

    HISTFILE: 命令歷史文件;

    HISTFILESIZE:命令歷史文件可以保存的命令的個數;

    HISTCONTROL: 控制命令歷史的生成;

ignoredups: 忽略記錄重複的命令;連續的相同命令才爲重複;

ignorespace: 不記錄以空白字符開頭的命令;

ignoreboth: 同時具有上面兩種特性;


shell中變量賦值:

wKioL1RGIxiTQX-5AABo4j0NBkQ712.jpg


FHS:文件系統目錄標準, 這個標準列出了Linux應該具有哪些目錄,這裏給出 根目錄下 的 一些 重要 的 目錄 的 作用。


/bin: 所有用戶可執行的程序

/sbin: 管理員可執行的程序

/usr/bin 

/usr/sbin

/usr/local/bin 

/usr/local/sbin

/boot: 存儲系統引導文件:內核、ramfs文件、bootloader(grub);

/dev: 設備文件存放目錄;

/etc: 配置文件的存放目錄;

/etc/sysconfig: 

/etc/init.d: 系統服務腳本

/home: 普通用戶,默認在/home下有一個與其名稱同名目錄,作爲用戶的家目錄;

/root: 管理員的家目錄;

/lib, /lib64:庫文件;

/media: 專用掛載位置,通常用來掛載便攜式設備;

/mnt: 專用掛載位置,掛載額外存儲設備;

/misc: 備用目錄

/opt: 備用目錄,但通常用來安裝第三方軟件;

/proc: 僞文件系統,內核參數的映射;

/sys: 僞文件系統,系統級別的用於配置外圍設備祕的參數;

/srv: 爲服務提供數據存放位置;

/tmp: 臨時文件系統;

/usr: shared, readonly

/usr/include: 頭文件

/var: 頻繁發生變化的文件

/var/log

/var/lock

/var/run

/var/cache


文件:


linux文件類型:

     普通文件:-, file, 這個 就 相當於 windows裏 的 txt 文件

目錄文件:d,directory, 這個 相當於 windows 裏 的 文件夾把。

鏈接文件(符號鏈接):l,link, 這個 指的是 軟連接, 相當於 快捷方式

設備文件:

字符設備:c, char, 這個 又叫做 串行設備接口, 如 鍵盤 什麼 的。

塊設備: b, block, 這個 又叫做 並行設備接口,如 硬盤

命名管道:p, pipeline, 不太理解, 學到了 再說 把。

套接字文件:s, socket, 這個 也 不太清楚。。

------------------------------------------

Linux文件時間戳:

訪問時間, access time, atime

修改時間, modify time, mtime

改變時間, change time, ctime

-------------------------------------------

文件目錄樹:

tree 命令, 這個 命令 一般 系統 不會 自帶 的, 需要 自己 安裝。。

#  yum install tree,   安裝 tree 命令

wKioL1RHo5fw72ICAADDuEcCyyA053.jpg

------------------------------------------

bash特性 之 命令別名:

# alias 別名='原始命令名'

當 alias 無參數 是 可以 查看 已定義 的 命令 別名

wKioL1RHpHLQncBvAAEAjPgA2cs877.jpg

這裏 還 可以 看到 ls 命令 也 是個 別名, ls='ls --color=auto', 這裏 如果 想 執行 命令的 原有 意思 可以 在 命令 前面 加 ‘ \ ’, 如,

wKiom1RHpPvgCAtFAADyRO5nlOU369.jpg

取消 命令 別名 後 ls 就 不顯示 顏色 了。。

# unalias 別名, 這個 是 用於 取消 命令 別名 的

----------------------------------------------

文本文件 的 查看:

cat File : 正序查看一個文件

-n 顯示行號

-E 顯示行結束符

-v 顯示非打印字符

-A 顯示所有字符

        -s      多個連續的空白行顯示爲一個空白行


tac File : 與cat 相反, 逆序 查看 一個 文件。。

wKioL1RHp-rANhGCAAD3HV5hYd0035.jpg

--------------------

more: 顯示 多行 文件, 用法 同 man, 不過 在 顯示 完文件 最後 一行 後 會 自動退出。

less: 顯示 多行 文件, 用法 同 man, 不過 貌似 man 是 用 less 來 實現 的。。。, 這個 與          more 的 區別 是 顯示 完 最後一行 後 不會 退出 了,

--------------------

head: 顯示 文件 的 前幾行, 默認 爲 顯示 前10行

tail: 顯示 文件 的 後幾行, 默認 爲 顯示 後10行

    -n# : 設置 所 顯示 的 行數, # 爲 數字,

wKioL1RHqYCDYf1RAAC-fiKg958505.jpg

-------------------------

echo 命令:

    -e : 允許使用類似 c 語言 裏面 的 轉義字符

    -n : 不 默認 輸出 換行 符

-------------------------

關於 文件 的 命令


touch : 創建 文件, 其實 是 修改 時間戳。。, 當 這個 文件 不存在 是 會 自動 創建文件。

        access time, atime, 

modify time, mtime

change time, ctime

        -c: 不創建空文件

-a: 僅修改訪問時間

-m: 僅修改修改時間

-t STAMP: [CC]YYMMDDhhmm.s

access time, atime

modify time, mtime

change time, ctime


-c: 不創建空文件

-a: 僅修改訪問時間

-m: 僅修改修改時間

-t STAMP: [CC]YYMMDDhhmm.s

wKiom1RHrU7BUjvdAAB0DvvPfQs530.jpg

在 一個 空 文件夾 裏面 創建 一個 a 文件, 可以 用 stat 來 查看 這個 文件 的 信息。


stat : 顯示 一個 文件 的 基本 信息。

wKioL1RHriXgh_JEAAEQHhSGI5E926.jpg


現在 來 改變 一下 文件 的 Access 時間戳: 

wKiom1RHrvngrM8dAAE_897z0AQ017.jpg

ok, 已經 改好 了

------------------------------------------------------------

cp: copy : 複製文件

SRC, DEST

cp SRC... DEST

    -r:遞歸複製

    -i: 人機交互

    -d: 當源爲鏈接文件時,複製鏈接文件本身而非指向的源文件

    -a: 相當於-dr

    -p: 保持原有屬性

    -f: 強制

假如SRC是一個文件:

如果目標是一個文件且存在:覆蓋

如果目標文件不存在:創建新文件

如果目標存在,且是個目錄:複製源至目標目錄,並保持原名


假如SRC有多個文件:

如果目標存在,且是一個文件:複製無法進行

如果目標存在,且是一個目錄:複製各文件至目標目錄中,並保持原名

如果目標不存在:複製無法進行


如果SRC只有一個且是目錄:-r

如果目標是一個文件且存在:失敗

如果目標文件不存在:創建新目錄

如果目標存在,且是個目錄:複製源目錄至目標目錄中,且保持原名

wKioL1RHsFLy58leAADSC02PrIE398.jpg

把 /etc/passwd 複製 到 當前 文件 加 的 aaa 文件 中, 並 查看 了 一下 aaa 文件。。

複製 大概 就 這些 把, 沒什麼 太高端 的 東西。。

---------------------------------------------------------

mv : move : 移動文件, 用法 和 cp 差不多, 

    可以直接移動目錄,而無須-r選項; 

wKiom1RHsdLzT2QhAAD625v9A0I571.jpg

----------------------------------------------------------

rm : remove :刪除 文件

    -r : 遞歸 刪除 文件, 加上 這個 選項 就 可以 刪除 非空 目錄 了,~

    -i : 人機交互

    -v : 刪除 的 詳細信息。

    -f : 強制刪除,不需要 人機 交互

wKioL1RHsxDQAQ8rAACpH7ghgco703.jpg

---------------------------------------------------------------

nano : 一個 簡單 的 文本 編輯器, 

    Ctrl+O 是 保存, Ctrl+X 是 退出


bash特性 之 globbing : 文件名 通配

    通配符:

            * : 表示 任意 長度 的 任意 字符

            ? : 表示 任意 單個 字符

            []: 指定 字符 範圍 內 的 任意 單個 字符

                [xyz]    x 或者 y 或者 z

                [a-z]    a 到 z 之間 的 任意 一個 字符

                [0-9]    0 到 9 之間 的 任意 一個 字符

                [a-z0-9] a 到 z , 0 到 9 之間 任意 一個 字符

            [^]: 匹配 到 指定 字符 範圍 外 的 任意 單個 字符

                [^0-9]     非 數字 字符

       [[:upper:]]  : 所有大寫字母

[[:lower:]]  : 所有小寫字母

[[:alpha:]]  : 大小寫字母

[[:digit:]]  : 數字

[[:alnum:]]  : 大小寫字母加數字

[[:space:]]  : 空白字符

[[:punct:]]  : 標點符號。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章