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

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
3、請使用命令行展開功能來完成以下練習:
   (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
   (2)、創建/tmp/mylinux目錄下的:
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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

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

ls,cat,more,less, tail, head;cp,mv,rm


ls: list 列出目標目錄中所有的子目錄和文件

ls [選項] [目錄名]

  -a, --all: 顯示所有文件,包括隱藏文件;A的不包括(. ..)
  -l: 長格式
  -h, --human-readable:單位換算k,m
  -d: 顯示目錄自身的相關屬性;通常要與-l一起使用;
  -r, --reverse: 逆序顯示
  -R, --recursive: 遞歸

cat 文件查看命令

cat [OPTION]… [FILE]…鏈接文件并顯示出來

 -E: 顯示行結束符$
 -n: 對顯示出的每一行進行編號

more,文本查看

more [OPTIONS…] FILE…    

 -d: 顯示翻頁及退出提示

less 和man的用法差不多

        less [OPTIONS…] FILE…

tail 和head用法差不多

 tail [OPTION]… [FILE]…

            

 -c #: 指定獲取后#字節
 -n #: 指定獲取后#行
   -#:
 -f: 跟蹤顯示文件新追加的內容;

head,獲取文件頭的用法,比如非常大日志文件

head [OPTION]… [FILE]…

  -c #: 指定獲取前#字節
  -n #: 指定獲取前#行

cp 復制命令

cp [OPTION]… [-T] SOURCE DEST 元到目標

        cp [OPTION]… SOURCE… DIRECTORY 復制

        cp [OPTION]… -t DIRECTORY SOURCE…

            

-i:交互式
-r, -R: 遞歸復制目錄及內部的所有內容;
-a: 歸檔,相當于-dR --preserv=all,做備份的,文件保留成原來的樣子

例如:ls -l /etc   看這個文件  system-release ->centos-
release ,普通cp /etc/system-release /tmp/,再看文件大小不一樣,也沒有指向原來的文件有
指向所以沒有保存原來的樣子

-d:--no-dereference --preserv=links

cp --no-dereference /etc/system-release /tmp/sys.release ,ls -l /tmp看這個文件也有指向,文件大小也一樣,但是是錯誤鏈接,因為不是絕對路徑

--preserv[=ATTR_LIST] 保留你所指定的屬性
         mode: 權限
         ownership: 屬主屬組
         timestamp: 時間戳 
         links鏈接屬性
         xattr擴展屬性
         context 連接上下文
         a ll 所有原屬性
-p: --preserv=mode,ownership,timestamp
-v: --verbose
-f: --force

 mv: move,移動文件

       mv [OPTION]… [-T] SOURCE DEST

       mv [OPTION]… SOURCE… DIRECTORY

       mv [OPTION]… -t DIRECTORY SOURCE…

  -i: 交互式
  -f: 強制

 rm: remove,刪除

        rm [OPTION]… FILE..

-i: 交互式
-f: 強制刪除
-r: 遞歸


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

bash返回值

   成功:0
   失敗:1-255
   使用echo $! 查看

例如:

[root@test1 ~]# ls /tmp/1
/tmp/1
[root@test1 ~]# echo $?
0
[root@test1 ~]# ls /tmp/11
ls: cannot access /tmp/11: No such file or directory
[root@test1 ~]# echo $?
2
[root@test1 ~]#

命令行展開

~: 展開為用戶的主目錄

 ~USERNAME:展開為指定用戶的主目錄

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

 /tmp/{a,b} = /tmp/a, /tmp/b

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

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

[root@test1 ~]# mkdir /tmp/{a,b}_{c,d}
[root@test1 ~]# ll /tmp
total 48
drwxr-xr-x  2 root root 4096 Jun 13 07:17 a_c
drwxr-xr-x  2 root root 4096 Jun 13 07:17 a_d
drwxr-xr-x  2 root root 4096 Jun 13 07:17 b_c
drwxr-xr-x  2 root root 4096 Jun 13 07:17 b_d

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

[root@test1 ~]# mkdir -p /tmp/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#}}
[root@test1 ~]# tree /tmp/mylinux
/tmp/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#

24 directories, 0 files
[root@test1 ~]#

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

[root@test1 ~]# stat 1.c   用stat查看源數據
  File: `1.c'
  Size: 319             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 533990      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-05-15 15:03:22.000000000 +0800
Modify: 2016-02-24 15:21:51.000000000 +0800
Change: 2016-05-15 15:03:22.494563429 +0800
[root@test1 ~]#

  三個時間戳:

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

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

            change time: 改變時間, ctime,元數據發生改變

touch命令:可以手動修改前兩個時間戳

touch [OPTION]… FILE…

            -a: only atime

            -m: only mtime

            -t STAMP:

                 [[CC]YY]MMDDhhmm[.ss]

            -c: 如果文件不存,則不予創建

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


定義一個命令別名

alias NAME='VALUE'

                定義別名NAME,其相當于執行命令VALUE;

            注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久

有效,要定義在配置文件中;

                僅對當前用戶:~/.bashrc

                對所有用戶有效:/etc/bashrc

                Note: 編輯配置給出的新配置不會立即生效;

                bash進程重新讀取配置文件:

                    source /path/to/config_file

                    .  /path/to/config_file

        撤消別名:unalias

            unalias [-a] name [name …]

        Note: 如果別名同原命令的名稱,則如果要執行原命令,可使用"\COMMAND";


例如:

[root@test1 ~]# alias  顯示所有別名
alias cdnet='cd /etc/sysconfig/network-scripts/'
alias cp='cp -i'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@test1 ~]# alias cdnet='cd /etc/sysconfig/network-scripts/'
[root@test1 ~]# cdnet
[root@test1 network-scripts]#

如何在命令中引用另一個命令的執行結果

 |   使用管道命令可以引用另一個命令

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

ls l*[0-9]*[[:lower:]]

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

 ls [0-9]*[^0-9]

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

ls [^a-z][^A-Z]*

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

touch tfile-"$(date +%F-%H-%M-%S)"

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

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

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

cp -r /etc/*.d /tmp/mytest1/

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

cp -r /etc/[l,m,n]*.conf /tmp/mytest3/

原創文章,作者:zhutoyearn,如若轉載,請注明出處:http://www.www58058.com/18776

(0)
zhutoyearnzhutoyearn
上一篇 2016-06-23
下一篇 2016-06-23

相關推薦

  • 簡述硬盤參數和ext2文件系統

    硬盤類型: HDD機械硬盤和SSD固態硬盤: HDD是現在最普通的硬盤,容量大,穩定,是存儲數據的首選。SSD是現在新興的硬盤,相比HDD,它的并發i/o高,傳輸速度可達HDD的幾倍以上,無噪音低功耗,而且輕便防震,隨著各大廠商發力,性價比也越來越高,要求性能高或者數據輕度使用者可以優先考慮SSD。   容量:存儲數據的空間大小,一般來說HDD每G…

    Linux干貨 2016-04-19
  • bash腳本進階(續)

     1、打印99乘法表 [root@ _212_ ~/bin/for_script]# cat 99_changfa.sh  #!/bin/bash line=1 for i in `seq 1 9`;     …

    Linux干貨 2016-08-21
  • 文件系統層次標準FHS

    FHS針對目錄樹架構僅定義出三層目錄下應該放置哪些數據,分別是下面三個目錄: /(根目錄):與開機系統有關; /usr(unix software resource):與軟件安裝執行有關; /var(variable):與系統運作過程有關。   下面分別對上述三層目錄進行詳細的闡述。   (1) /(根目錄)   根目錄是整個系統最重要的一個目錄,…

    Linux干貨 2016-10-19
  • ubuntu kylin虛擬機安裝KVM

    1.確定物理機CPU是否支持虛擬化    查看方法1:計算機->屬性->處理器(Inter(R) Core(TM) i5-2450M),然后去網上查看自己的電腦CPU是否支持虛擬化,    地址http://ark.intel.com/zh-cn/找到自己CPU的信息,虛擬化技術后是否顯示為yes,如果是n…

    Linux干貨 2016-10-15
  • 用戶和組管理的命令

    用戶管理概念: 用戶類別:         管理員,普通用戶,(系統用戶和登錄用戶) 組類別:         管理組員,普通用戶組         基本組和附加組         私有組,公共組 數…

    Linux干貨 2016-12-21
  • LVS管理平臺使用手冊(第一版)[原創]

     為了更好管理、維護LVS平臺,本人基于Django+certmaster+func開發了一套管理平臺,主要功能模塊分為性能圖表、數據中心、虛擬IP池、主機管理、監控模塊等功能,基本上是按F5-LTM管理平臺思路來設計,下面只要對這幾大塊功能進行說明。1、性能圖表 功能說明:以小時、日、星期、月、年的圖表展示LVS SERVER、VIP、SERVE…

    Linux干貨 2015-03-28

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-23 13:36

    寫的很棒,只是一篇文章的排版不太一樣那?在看一下10題,可能有一點小瑕疵,在仔細看一下,加油

欧美性久久久久