馬哥教育網絡班20期+第二周課程練習

Table of Contents

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

目錄管理

cd

cd  # 回到當前用戶的主目錄cd ~USERNAME  # 切換至指定用戶的主目錄cd -  # 在上一個目錄和當前目錄之間來回切換
  • 相關的環境變量

    • PWD: 保存了當前的目錄路徑

    • OLDPWD: 上一次所在目錄路徑

mkdir, rmdir

mkdir [OPTION]... /path/to...  # 創建目錄
  -p: 當目錄存在時不報錯,且可自動創建所需的各目錄;
  -v: 顯示詳細信息
  -m MODE: 創建目錄時直接指定權限;
rmdir [OPTION]... /path/to...  # 只能刪除空目錄
  -p: 層級刪除空目錄 
  -v: 顯示詳細信息

ls

顯示指定路徑下的文件列表

ls [OPTION]... [DIR]...
  -a, --all: 顯示所有文件,包括隱藏文件
  -l: 長格式
  -h, --human-readable: 單位換算
  -d: 顯示目錄自身的相關屬性;通常要與-l一起使用;
  -r, --reverse: 逆序顯示
  -R, --recursive: 遞歸
  • 其中 -rw-r–r– 最左側的一位表示文件類型

tree

列出目錄的層級結構

tree /path/to 
  -d: 只顯示目錄
  -L level: 指定顯示的層級數目
  -P pattern: 只顯示由指定pattern匹配到的路徑;

文件管理

cp

通過文件接口復制

cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
  -i: 交互式
  -r, -R: 遞歸復制目錄及內部的所有內容;  -a: 歸檔,相當于-dr --preserv=all
    -d: 不跟蹤符號文件鏈接(默認會跟蹤復制原文件)    --preserv[=ATTR_LIST]: 保留屬性
      ATTR_LIST: mode,ownership,timestamp,links,xattr,context,all  -p: --preserv=mode,ownership,timestamp
  -v: 顯示詳細信息verbose
  -f: --force
  • cp SRC DEST

    • 如果DEST是文件: 將SRC中的內容覆蓋到DEST中(使用-i以確認)

    • 如果DEST是目錄: 將SRC復制到該目錄下

    • 如果目標不存在: 新建DEST,并將SRC中內容填充到DEST中

    • 如果目標存在:

  • cp SRC… DEST

    • DEST必須存在,且為目錄

  • cp -r 目錄SRC DEST

    • 如果目標不存在: 新建DEST目錄,復制SRC中所有文件至DEST中

    • 如果DEST存在且為目錄: 在DEST中創建與SRC同名的目錄,復制SRC中的所有文件至該目錄中

dd

比較底層的復制命令,可用于文件或磁盤的復制

dd [OPTIONS] if=/PATH/SRC of=/PATH/DEST  bs=NUM: block size, 復制單元的大小  count=NUM: 復制多少個bs

dd if=/dev/sda of=/dev/sdb  # 復制磁盤dd if=/dev/sda of=/... bs=512 count=1  # 備份MBRdd if=/dev/zero of=/dev/sda bs=256 count=1  # 破壞MBR的bootloader

mv

移動文件或目錄,也可以用于重命名

mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
  -i: 交互式
  -f: 強制

rm

刪除文件或目錄

rm [OPTION]... FILE...
  -i: 交互式
  -f: 強制刪除
  -r: 遞歸刪除目錄

2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

命令返回值

腳本返回值

exit [n]  # 終止腳本,退出碼為n(默認為0)
  • 如果未給腳本指定退出狀態碼,整個腳本的退出狀態碼取決于腳本中執行的最后一條命令的狀態碼

查詢返回值

echo $?  # 通過查詢?變量可以知道上個命令的執行結果
  • 通常命令成功的返回值是0

命令或路徑補全和展開

  • 直接補全: 用戶給定的字符串只有一條惟一對應的命令或路徑,則按TAB直接補全

  • 補全列表: 對應的命令或路徑不唯一,按兩次TAB會給出列表

  • {}: 可承載一個以逗號分隔的列表,并將其展開為多個路徑,可嵌套使用

    • /tmp/{a,b}_{x,y}

    • /tmp/{bin,sbin,usr/{bin,sbin}}

  • {start..end}: 可以生成一個順序列表, 但這種方式很占內存

    • user{1..3}: 相當于 user1 user2 user3

3、請使用命令行展開功能來完成以下練習:

(1)、創建/tmp目錄下的:a_c, a_d, b_c, b

mkdir /tmp/{a_{c,d},b_c,b}

(2)、創建/tmp/mylinux目錄下的:

mkdir -p mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

文件的元數據

  • 文件權限

  • 文件Inode號

  • 文件數據塊的分布信息

  • 文件屬主和屬組

  • access time: 訪問時間,簡寫為atime,讀取文件內容

  • modify time: 修改時間, mtime,改變文件內容(數據)

  • change time: 改變時間, ctime,元數據發生改變(包含時間戳的改變)

stat file_name   # 查看文件的原數據

修改文件時間戳

touch [OPTION]... FILE...  # 改變文件時間戳或創建文件
  -a: only atime  # touch默認把3個時間都改為當前時間
  -m: only mtime
  -t [[CC]YY]MMDDhhmm[.ss]: 指定時間
  -c: 不自動創建空文件

5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

命令別名(alias)

alias  # 顯示當前shell進程所有可用的命令別名alias NAME='VALUE'  # 定義命令別名NAME# 如果要永久生效需要寫入bash配置文件中
unalias [-a] name...
  -a: 撤銷所有別名
  • 如果要忽略別名執行原命令的話,可使用 \COMMAND

引用命令結果

  • 在命令中使用 `COMMAND`

  • 在命令中使用 $(COMMAND)

6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。

ls /var | grep "^l.*[0-9].*[[:lower:]]$"

7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

ls /etc | grep "^[0-9].*[^0-9]$"

8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

ls /etc | grep "^[^[:alpha:]][[:alpha:]].*"

9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

touch /tmp/tfile-`date +%F-%H-%M-%S`

10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

mkdir /tmp/mytest1
cp -r /etc/p*[^0-9] /tmp/mytest1

11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

mkdir /tmp/mytest2
cp -r /etc/*.d /tmp/mytest2

12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

mkdir /tmp/mytest3
cp /etc/[lmn]*.conf /tmp/mytest3

原創文章,作者:Net20_木皮,如若轉載,請注明出處:http://www.www58058.com/18646

(0)
Net20_木皮Net20_木皮
上一篇 2016-06-23 11:01
下一篇 2016-06-23 11:02

相關推薦

  • test

    test

    Linux干貨 2016-08-08
  • linux開機啟動流程

    linux開機啟動流程:   一、BIOS 加電自檢 當你按電源開關開機時,電腦會首先去啟動BIOS(基本輸入輸出系統),BIOS一般是集成在主板上的. BIOS 的工作 1.檢測連接硬件,比如顯卡,內存,磁盤等等,檢測的目的是以后把這些設備信息提供給操作系統 2.尋找啟動磁盤,每一種BIOS都會有開機啟動菜…

    Linux干貨 2016-09-19
  • corosync的高可用——高可用mariadb數據庫

    corosync, pacemaker,nfs高可用mariadb 實驗環境: 4臺CentOS 7 的主機,并關閉的iptalbes和selinux功能 主機1:10.1.43.101 node1 corosync+pacemaker+amp 主機2:10.1.43.102 node2 corosync+pacemaker+amp 主機3:10.1.43.…

    Linux干貨 2016-11-24
  • 【26期】Linux第六周學習小總結

        時光匆匆,一周時光悠然而逝,帶給我們的只有知識的充實,和每日強大的自信心,學習的日益深入,慢慢的然我們的思緒和狀態帶回高中時光,吃飯上課睡覺三點一線的生活,枯燥中透露出稍微的晨曦,讓每個明天都充滿著期待,那我們的本周的學習中磁盤管理算是占了很大的比重,畢竟關于磁盤的知識很是難理解,那我就把本周的知識回顧溫習,同時分享給大家。 &n…

    2017-08-19
  • 遷移home到獨立分區

    1,fdisk ?/dev/sda ?創建10G的分區 Lsblk?查看下新創建分區是否同步 partx ?-a ?/dev/sda 同步 2,mkfs.ext4 ?/dev/sda6? -L? /home 創建文件系統跟卷標 3,mkdir ?/mnt/home ?創建一個掛載點 mount ?/dev/sda6??/mnt/home 掛載 4,cp? -…

    2017-12-14
  • 用戶組和權限

    用戶、組和權限   資源分派       Authentication   認證       Authorization    授權    &nbsp…

    Linux干貨 2016-08-04

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-23 14:12

    寫的很棒,案例也比較多,但是不要把課上的比較直接貼過來

欧美性久久久久