N25 – 第二周博客作業

 

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

    more: more命令非常簡單,只用more file即可,但是more命令有一個特點,就是翻屏至文件尾部后自動退出

    less: less命令就是在使用man時是一樣的,因為man手冊就是調用less來查看的 

    head: head命令用來查看文件的前#行,#默認為10

    head -n 20 /etcrc.d//init.d//functions   -n 20也可以寫成-20

    [root@dhcp-10-129-6-166 ~]# head -n 10 /etc/rc.d/init.d/functions
    # -*-Shell-script-*-
    #
    # functions     This file contains functions to be used by most or all
    #               shell scripts in the /etc/init.d directory.
    #

    TEXTDOMAIN=initscripts

    # Make sure umask is sane
    umask 022
    [root@dhcp-10-129-6-166 ~]# ^C

     

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

    bash的工作特性之命令執行返回值

    每當我們在Linux系統上執行了一條命令,不單單會有命令結果的返回值,還有一種叫做命令執行返回值,也可以理解為命令的執行結果狀態的返回值。

    舉個栗子:

    我們使用man ls來看一下ls的man文檔中下面一段

    Exit status:

    0      if OK,

    1      if minor problems (e.g., cannot access subdirec-tory),

    2      if  serious  trouble  (e.g.,  cannot access com-mand-line argument).

    這里的0, 1, 2就是所謂的命令執行返回值,0代表一切都ok,從1-225都表示出現了不同的問題,當然,每個程序的每一個錯誤的執行返回值所代表的錯誤不一定相同,但是1-255都是均代表不是正常的返回值,只有0才是完全正確的執行返回值。

    那我們怎么查看命令執行的返回值呢?

    $?代表上一條命令執行的返回值,我們使用echo $?就可以在標準輸出上輸出狀態返回值了,看下面的栗子:

    先執行錯誤的命令 ls-H,然后使用echo $?得到了127這個錯誤的執行返回值,之后再執行ls -l,使用echo $?查看,得到了0的正確的狀態返回值,這里再強調一下,$?變量是針對上一條命令的執行狀態返回值,只是上一條命令。

    [root@dhcp-10-129-6-166 ~]# ls-H

    -bash: ls-H: 未找到命令

    [root@dhcp-10-129-6-166 ~]# echo $?

    127

    [root@dhcp-10-129-6-166 ~]# ls -l

    total 4

    drwxr-xr-x. 2 root root   26 Dec 13 00:55 1

    -rw-r–r–. 1 root root    0 Dec  1 23:51 FILE1

    -rw-r–r–. 1 root root    0 Dec  1 23:51 File1

    drwxr-xr-x. 3 root root   27 Dec  2 00:44 L1

    drwxr-xr-x. 2 root root    6 Dec  2 00:49 L11

    -rw——-. 1 root root 1046 Dec  1 22:08 anaconda-ks.cfg

    -rw-r–r–. 1 root root    0 Dec  1 23:51 file1

    [root@dhcp-10-129-6-166 ~]# echo $?

    0

    [root@dhcp-10-129-6-166 ~]#

    bash特性之命令行展開

    命令行展開機制中有這么幾個機制:~, {}

    ~可以展開為當前登錄用戶的家目錄

    栗子:root用戶登錄,在非家目錄使用cd ~會cd到root的家目錄

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

    栗子: 使用命令 mkdir /tmp/yourdad/{you, yourbrother} -pv,會生成 /tmp/yourdad/you 和目錄/tmp/yourdad/yourbrother. 

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

A 創建/tmp目錄下的 a_c, a_d, b_c和b_d

[root@dhcp-10-129-6-166 1]# pwd

/root/1

root@dhcp-10-129-6-166 1]# cd /tmp

[root@dhcp-10-129-6-166 tmp]# mkdir {a,b}_{c,d}

[root@dhcp-10-129-6-166 tmp]# ll

總用量 0

drwxr-xr-x. 2 root root 6 12月 13 05:12 a_c

drwxr-xr-x. 2 root root 6 12月 13 05:12 a_d

drwxr-xr-x. 2 root root 6 12月 13 05:12 b_c

drwxr-xr-x. 2 root root 6 12月 13 05:12 b_d

B 創建/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

[root@dhcp-10-129-6-166 tmp]# mkdir -p mylinux/{b{in,oot/grub},dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib{64,/modules},proc,s{bin,ys},tmp,usr/local/{s,}bin,var/{lo{ck,g},run}}
[root@dhcp-10-129-6-166 tmp]# tree
.
└── 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

25 directories, 0 files
[root@dhcp-10-129-6-166 tmp]#

 

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

元數據的英文稱為metadata, metadate不同于data,它不是文件的內容,而是文件的屬性

使用stat FILE來查看文件看到的就成為metadata, metadata包含很多的信息,文件的大小,inode, blocks數量,等等

還有最重要的就是文件的三個time stamp,即時間戳。

文件的時間戳有3種,acccess time stamp, change time stamp和modify time stamp

access time stamp為最近訪問時間,例如查看文件這種操作,就會改變文件的access time stamp

modify time stamp為最近修改時間,修改了文件的內容,就會改變文件的modify timestamp

change time stamp為最近改變時間 ,access time stamp或者modify time stamp更改都會聯動導致change time stamp的改變

如何查看文件的元數據信息呢?使用stat命令即可

[root@dhcp-10-129-6-166 ~]# stat /etc/rc.d/init.d/functions
File: '/etc/rc.d/init.d/functions'
Size: 13948           Blocks: 32         IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33970102    Links: 1
Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:bin_t:s0
Access: 2016-12-13 00:45:16.340999869 +0800
Modify: 2015-09-16 19:51:07.000000000 +0800
Change: 2016-12-01 21:52:39.201992295 +0800
Birth: –
[root@dhcp-10-129-6-166 ~]#

如何更改文件的時間戳呢?使用touch命令即可

touch [OPTION] FILE

            -c: 指定的文件路徑不存在時會自動創建文件

            -a:僅修改access time stamp

            -m:僅修改modify time stamp

            -t STAMP [[CC]YYMMDDhhmm[.ss]                         

            此處未完待續…..        

==========================================憤怒的分割線============================================

此時此刻,我的心情是非常想把眼前這臺Mac給砸了的,但是我不敢,我更舍不得,辛辛苦苦寫的博客,不知道手殘按了什么,呼啦啦一下就特么沒了,沒了你知道嗎?說出來你可能不信,這篇作業我寫了快兩個點了,就差前面兩道題了,結果就特么這么沒了…..我傷心的拿出了手機,下了一首劉歡的從頭再來,鼓勵我,攙扶著我寫了這段分割線……明天再繼續吧,心如在,夢就在,天地之間還有真愛,看成敗,人生豪邁,只不過是從頭再來。。。。。

==========================================分割線走了==============================================

==========================================分割線又來了============================================

上午終于抽出時間補上了后面的作業,下午再做前面的吧

==========================================分割線又走了============================================

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

如何定義一個命令的別名:

alias的用法:alias [-p] [name[=value] …]

舉個栗子,如果要為命令取別名使用alias NAME=COMMAND [OPTION]

[root@dhcp-10-129-6-166 ~]# alias la='ls -a'

將ls -a 這條命令起個別名叫 la

舉個栗子:

[root@dhcp-10-129-6-166 ~]# alias cp

alias cp='cp -i'

[root@dhcp-10-129-6-166 ~]#

上面的栗子說的是,當我們使用root用戶運行cp命令時,實際上cp命令是"cp -i"這條命令的別名
如何在命令中引用另一個名字的執行結果

引用命令的執行結果可以使用$和`

栗子:使用$來引用命令的執行結果,在root 家目錄下本來沒有文件,使用touch $(ls /)命令,會在root家目錄下創建ls /命令所顯示出來的所有目錄

[root@dhcp-10-129-6-166 ~]# pwd
/root
[root@dhcp-10-129-6-166 ~]# ls
[root@dhcp-10-129-6-166 ~]# touch $(ls /)
[root@dhcp-10-129-6-166 ~]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@dhcp-10-129-6-166 ~]#

栗子2:使用“來引用命令的執行結果, 執行ls命令,在/tmp目錄下本來沒有文件,使用touch `echo $?` ,會在/tmp目錄下創建一個文件名為0的文件

[root@dhcp-10-129-6-166 ~]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@dhcp-10-129-6-166 ~]# touch /tmp/`echo $?`
[root@dhcp-10-129-6-166 ~]# ls /tmp
0  mytest1  mytest2  mytest3  tfile-2016-12-13-18-57-48
[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# touch /var/1a9{a,9,@}{a,A,$}

[root@dhcp-10-129-6-166 ~]# ls /var/1a9*

/var/1a99$  /var/1a99a  /var/1a9@A  /var/1a9a$  /var/1a9aa

/var/1a99A  /var/1a9@$  /var/1a9@a  /var/1a9aA

[root@dhcp-10-129-6-166 ~]# mkdir /var/1a9FF{a,9,@}{a,A,$}

[root@dhcp-10-129-6-166 ~]# ls /var/1a9FF*

/var/1a9FF9$:

/var/1a9FF9A:

/var/1a9FF9a:

/var/1a9FF@$:

/var/1a9FF@A:

/var/1a9FF@a:

/var/1a9FFa$: 

/var/1a9FFaA:

/var/1a9FFaa:

[root@dhcp-10-129-6-166 ~]# ls -R /var/1*[0-9]*[a-z]

/var/1a99A  /var/1a9@A  /var/1a9aA

/var/1a99a  /var/1a9@a  /var/1a9aa

/var/1a9FF9A:

/var/1a9FF9a:

/var/1a9FF@A:

/var/1a9FF@a:

/var/1a9FFaA:

/var/1a9FFaa:

[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# ls /etc/[0-9]*[^0-9]

ls: cannot access /etc/[0-9]*[^0-9]: No such file or directory

[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# ls -R /etc/[^[:alpha:]][[:alpha:]]*

ls: cannot access /etc/[^[:alpha:]][[:alpha:]]*: No such file or directory

 

9. 在/tmp目錄下創建以tfile開頭,后面跟當前日期和時間的文件,文件名如(tfiel-2016-05-27-09-32-22)

[root@dhcp-10-129-6-166 tmp]# touch tfile-$(date +%Y-%m-%D-%H-%M-%S)

touch: cannot touch 'tfile-2016-12-12/13/16-18-56-53': No such file or directory

[root@dhcp-10-129-6-166 tmp]# touch 1

[root@dhcp-10-129-6-166 tmp]# ll

total 0

-rw-r–r–. 1 root root 0 Dec 13 18:57 1

[root@dhcp-10-129-6-166 tmp]# rm 1

rm: remove regular empty file '1'? y

[root@dhcp-10-129-6-166 tmp]# touch tfile-$(date +%Y-%m-%d-%H-%M-%S)

[root@dhcp-10-129-6-166 tmp]# ll

total 0

-rw-r–r–. 1 root root 0 Dec 13 18:57 tfile-2016-12-13-18-57-48

[root@dhcp-10-129-6-166 tmp]#

 

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

[root@dhcp-10-129-6-166 ~]# cp -r /etc/p*[^0-9] /tmp/mytest1

[root@dhcp-10-129-6-166 ~]# ls /tmp/mytest1

pam.d    pki       popt.d   prelink.conf.d  profile.d

passwd   plymouth  postfix  printcap        protocols

passwd-  pm        ppp      profile         python

[root@dhcp-10-129-6-166 ~]#

 

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

[root@dhcp-10-129-6-166 ~]# cp -r /etc/*.d /tmp/mytest2

[root@dhcp-10-129-6-166 ~]# ls /tmp/mytest2

bash_completion.d  ld.so.conf.d    rc.d       rwtab.d

binfmt.d           logrotate.d     rc0.d      statetab.d

chkconfig.d        modprobe.d      rc1.d      sudoers.d

cron.d             modules-load.d  rc2.d      sysctl.d

depmod.d           my.cnf.d        rc3.d      tmpfiles.d

dnsmasq.d          pam.d           rc4.d      xinetd.d

dracut.conf.d      popt.d          rc5.d      yum.repos.d

grub.d             prelink.conf.d  rc6.d

init.d             profile.d       rsyslog.d

[root@dhcp-10-129-6-166 ~]#

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

[root@dhcp-10-129-6-166 ~]# mkdir /tmp/mytest3

[root@dhcp-10-129-6-166 ~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3

[root@dhcp-10-129-6-166 ~]# ls /tmp/mytest3

ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf

libaudit.conf  locale.conf   man_db.conf     nsswitch.conf

[root@dhcp-10-129-6-166 ~]#

 

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

(0)
JLJL
上一篇 2016-12-07 11:03
下一篇 2016-12-07 11:58

相關推薦

  • Linux內核編譯過程詳解

    前言 Linux內核是Linux操作系統的核心,也是整個Linux功能體現的核心,就如同發動機在汽車中的重要性。內核主要功能包括進程管理、內存管理、文件管理、設備管理、網絡管理等。Linux內核是單內核設計,但卻采用了微內核的模塊化設計,支持內核線程以及動態裝載內核模塊的能力。 Linux作為一個自由軟件,在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂…

    Linux干貨 2015-04-01
  • 第一周 Linux基礎知識

    Linux基礎

    2018-03-18
  • N22 網絡班第五周課程作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; grep -E "^(root|fedora|user1)\>" /etc/passwd | ll grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f 1,7…

    Linux干貨 2016-09-19
  • Find小總結及應用

    Find總結及應用 搜索命令:     locate命令:         在文件系統上查找符合條件的文件         非實時查找( 數據庫查找)…

    Linux干貨 2016-08-16
  • CentOS Linux解決Device eth0 does not seem to be present

    CentOS Linux解決Device eth0 does not seem to be present 今天早上打開xshell鏈接虛擬機,突然鏈接不上。然后進入虛擬機執行 ifconfig 或者 ip addr list 命令發現eth0 不見。然后執行重啟網卡命令發現  解決辦法:   首先,打開/etc/udev/rules.d/70-p…

    Linux干貨 2016-08-02
  • 文本處理工具應用練習

    練習:  1 、找出ifconfig 命令結果中本機的IPv4 地址 思路:我們使用ifconfig命令可知,ip地址是在第二行,所以我們先篩選出第二行,       第二行中的分隔符看起來很混亂,都是不規則的,有一個空格或多個空格的,沒有標準       所以我們最好是建立一個標準分隔,…

    Linux干貨 2016-08-08

評論列表(1條)

  • 小飝
    小飝 2016-12-08 00:39

    吐血,哈哈~

欧美性久久久久