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
下一篇 2016-12-07

相關推薦

  • 分布式文件系統之MogileFS

    MogileFS是一個開源的分布式文件存儲系統,由LiveJournal旗下的Danga Interactive公司開發。Danga團隊開發了包括 Memcached、MogileFS、Perlbal 等多個知名的開源項目。目前使用MogileFS 的公司非常多,如日本排名先前的幾個互聯公司及國內的yupoo(又拍)、digg、豆瓣、1號店、大眾點評、搜狗和…

    Linux干貨 2017-06-16
  • Linux 文件管理、查看、編輯、查找命令及BASH特性

    1、文件管理類命令總結  (1)cp命令:copy                    源文件 :目標文件 :    &nbsp…

    Linux干貨 2016-10-17
  • 10.腳本練習2

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) POST?–>?Boot?Sequence(BIOS)?–>?Boot?Loader(MBR)? ?–>?Kernel+ramdisk(initrd)?–>?rootfs?–>?/sbin/init? ?–>?(/etc/inittab…

    2017-09-20
  • LNMMP架構實現Web動靜分離

    前言 前面的文章中說過LAMP架構包括:Linux操作系統,Apache網站服務器,MySQL數據庫,Perl、PHP或者Python編程語言,而今天要說的LNMMP 和LAMP類似,只是作為Web服務器的不再是Apache而是高性能的Nginx,同時引進Memcached加速緩存效率,用于加快訪問速度。 Memcached是一款開源、高性能、分布…

    Linux干貨 2015-06-15
  • Linux實驗-搭建路由環境

    Linux實驗-搭建路由環境 背景: 在學習網絡基礎過程中,為了加強理解路由功能,準備用Linux模擬一個路由環境。同時也試試Linux的路由轉發功能。 實驗簡介: 準備5個虛擬機,其中三個做路由,兩個做客戶機,相連的設備之間在同一個網段,三個路由設備在中間,兩個客戶機在兩側,最后實現兩個虛擬機能相互通信。 實驗規劃: 這里配的IP都是隨意配的,保證相連設備…

    2017-08-19
  • vim的使用

    本文主要講述vim的使用 一.vim是什么? vim是一個十分著名也十分強大的編輯器,是vi的增強版,是一個模式化的編輯器,英文名稱為 Visual Interface iMprove,在2000年2月Vim贏得了Slashdot Beanie的最佳開放源代碼文本編輯器的美稱。 二.vim的工作模式  (1)編輯模式:也叫命令模式,通過編輯命令實現…

    Linux干貨 2016-10-29

評論列表(1條)

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

    吐血,哈哈~

欧美性久久久久