馬哥教育-第二周作業

問題一:文件管理類命令

常規命令:mkdir、rmdir、stat、touch、copy、mv、rm

(1).mkdir  創建目錄:

注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在;

-p:自動按需創建父目錄;

-v:顯示創建過程;

-m 參數:直接給定所需權限;

例子:問題:創建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

[root@localhost ~]# tree /tmp/x

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

(2).rmdir  僅用于刪除空目錄

-p:刪除某目錄后,如果其父目錄為空,則一并刪除之;

例子:刪除空目錄 testdir

[root@localhost ~]# rmdir testdir

 

(3).stat  查看文件狀態

例子:查看目錄 x 的信息

[root@localhost tmp]# stat x

文件: `x'

大小: 4096 塊: 8 IO 塊: 4096 目錄

設備: fd00h/64768d Inode: 622755 硬鏈接: 4

權限: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

最近訪問: 2016-11-22 23:26:19.000000000 +0800

最近更改: 2016-11-22 20:30:04.000000000 +0800

最近改動: 2016-11-22 20:30:04.000000000 +0800

 

[root@localhost tmp]# stat x

File: `x'

Size: 4096 Blocks: 8 IO Block: 4096 directory

Device: fd00h/64768d Inode: 622755 Links: 4

Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2016-11-22 23:26:19.000000000 +0800

Modify: 2016-11-22 20:30:04.000000000 +0800

Change: 2016-11-22 20:30:04.000000000 +0800

 

(4).touch  更改元數據信息

用法:

改變access(最近訪問時間)和modify(最近更改時間)兩個時間。

touch file:把三個時間都改為此刻的時間。

-a:只改訪問時間(access);

-m:只改修改時間(modified);

-t:指定時間;

例子:修改文件b的元數據,三個時間戳都相同

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 372484      Links: 1

Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2016-12-11 09:21:57.000000000 +0800

Modify: 2016-11-24 10:24:18.000000000 +0800

Change: 2016-11-24 10:24:18.000000000 +0800

[root@localhost ~]# touch b

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 372484      Links: 1

Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2016-12-11 09:22:24.000000000 +0800

Modify: 2016-12-11 09:22:24.000000000 +0800

Change: 2016-12-11 09:22:24.000000000 +0800

 

(5).copy 文件復制

用法:

注意:復制文件只是復制文件的數據而不是元數據,但是可以保留元數據的信息。

單源復制:目錄是否存在都可以

多源復制:目錄必須是存在的

-i:提醒用戶操作確認

-f:強行覆蓋

-r:遞歸復制目錄

-p:保留源數據

-a:用于實現歸檔,做備份

–preserv=

mode:權限

ownership:屬主和屬組

timestamps:時間戳

context:安全標簽

xattr:擴展屬性

links:符號鏈接

all:上述所有屬性

例子1:復制單個文件

[root@localhost ~]# cp /etc/issue /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 4

-rw-r–r– 1 root root 74 Dec 11 09:37 issue

例子2:復制多個文件

[root@localhost ~]# cp a.sh b.sh c.sh /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 16

-rwxr-xr-x 1 root root 199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root  64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root  91 Dec 11 09:39 c.sh

-rw-r–r– 1 root root  74 Dec 11 09:37 issue

例子3:復制目錄

[root@localhost ~]# cp -r /etc/gconf /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 20

-rwxr-xr-x 1 root root  199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root   64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root   91 Dec 11 09:39 c.sh

drwxr-xr-x 6 root root 4096 Dec 11 09:42 gconf

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

 

(6).mv 移動或者重命名

例子:

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

[root@localhost test1]# mv issue issue.20161211

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue.20161211

 

(7).rm:刪除

-r:遞歸刪除目標目錄下的文件

-f:強制刪

 

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

1.  bash的基礎特性:命令的執行狀態結果

bash通過狀態返回值來輸出此結果;

成功:0

失?。?-255

命令執行完成之后,其狀態返回值保存于bash的特殊變量$中

eg

[root@localhost ~]# echo $?

0

[root@localhost ~]# echo $?

2

注意:命令正常執行時,有的還會有命令返回值。

引用命令的執行結果:

$(command)或'command'

eg

[root@localhost ~]# mkdir $(date +%H-%M-%S)

[root@localhost ~]# echo $?

0

[root@localhost ~]# ls

21-09-03

注:上述就是把date命令的返回值作為參數給了 mkdir 命令。

2.  bash的基礎特性之:命令行展開

~:自動展開為用戶的家目錄,或指定的用戶的家目錄;

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

eg

創建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

[root@localhost ~]# tree /tmp/x

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

問題三:使用命令行展開完成以下練習

1.  創建/tmp目錄下的:a_c,a_d,b_c,b_d

Eg

[root@localhost ~]# ls /tmp/     

[root@localhost ~]# touch /tmp/a_{c,d} /tmp/b_{c,d}

[root@localhost ~]# ls /tmp/

a_c  a_d  b_c  b_d

2. 創建/tmp/mylinux下的目錄結構

[root@localhost ~]# mkdir /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}} -pv

mkdir: 已創建目錄 "/tmp/mylinux"

mkdir: 已創建目錄 "/tmp/mylinux/bin"

mkdir: 已創建目錄 "/tmp/mylinux/boot"

mkdir: 已創建目錄 "/tmp/mylinux/boot/grub"

mkdir: 已創建目錄 "/tmp/mylinux/dev"

mkdir: 已創建目錄 "/tmp/mylinux/etc"

mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d"

mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d/init.d"

mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig"

mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig/network-scripts"

mkdir: 已創建目錄 "/tmp/mylinux/lib"

mkdir: 已創建目錄 "/tmp/mylinux/lib/modules"

mkdir: 已創建目錄 "/tmp/mylinux/lib64"

mkdir: 已創建目錄 "/tmp/mylinux/proc"

mkdir: 已創建目錄 "/tmp/mylinux/sbin"

mkdir: 已創建目錄 "/tmp/mylinux/sys"

mkdir: 已創建目錄 "/tmp/mylinux/tmp"

mkdir: 已創建目錄 "/tmp/mylinux/usr"

mkdir: 已創建目錄 "/tmp/mylinux/usr/local"

mkdir: 已創建目錄 "/tmp/mylinux/usr/bin"

mkdir: 已創建目錄 "/tmp/mylinux/usr/sbin"

mkdir: 已創建目錄 "/tmp/mylinux/var"

mkdir: 已創建目錄 "/tmp/mylinux/var/lock"

mkdir: 已創建目錄 "/tmp/mylinux/var/log"

mkdir: 已創建目錄 "/tmp/mylinux/var/run"

 

問題四:文件的元數據信息有哪些,分別表示什么含義

文件有兩種數據

元數據:只是文件自身的屬性信息。

數據:文件內容本身。

 

問題五:如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果

命令別名:alias

eg:

[root@localhost ~]# alias

alias cp='cp -i'

alias l.='ls -d .* –color=tty'

alias ll='ls -l –color=tty'

alias ls='ls –color=tty'

定義別名:

alias 原命令=別名命令,但是這個是臨時的

撤銷別名:

unalias 別名

永久定義別名:定義在~/.bashrc或者/etc/bashrc

 

命令練習: 

1.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現一位任意字符的文件或目錄;

[root@localhost ~]# ls -d /var/l?[[:lower:]]

[root@localhost ~]# ls -d /var/l?[[:lower:]]

/var/lib /var/log

[root@localhost ~]# cd /var

[root@localhost var]# ls -d l?[[:lower:]]

lib log

注意:-d 的參數是只列出目錄。

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

[root@localhost etc]# ls -d [[:digit:]]*[^[:digit:]]

3ab23y

[root@localhost etc]# ls -d [0-9]*[^0-9]

3ab23y

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

[root@localhost etc]# ls -d [0-9][a-z]*

2fdsafsf

4.復制/etc目錄下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/xuef目錄;

[root@localhost etc]# cp -r m*[^0-9] /tmp/xuef

[root@localhost etc]# cd /tmp/xuef

[root@localhost xuef]# ls

mail makedev.d mgetty+sendfax mke2fs.conf modprobe.d mtools.conf

mailcap man.config mime.types modprobe.conf motd multipath.conf

mail.rc maven minicom.users modprobe.conf~ mtab

5.復制/usr/share/man目錄下,所有以man開頭,后跟一個數字結尾的文件或目錄至/tmp/man/目錄下;

[root@localhost ~]# cp -r /usr/share/man/man[0-9] /tmp/man

[root@localhost man]# du -sh

25M

6.復制/etc目錄下,所有以.conf結尾,且以m,n,r,p開頭的文件或目錄至/tmp/man目錄下;

[root@localhost man]# cp -r /etc/[mnrp]*.conf /tmp/xuef

7. 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名如tfile-2016-05-26-08-32-22

[root@localhost ~]]#  touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

 

 

 

原創文章,作者:N25-筆頭,如若轉載,請注明出處:http://www.www58058.com/63177

(0)
N25-筆頭N25-筆頭
上一篇 2016-12-11 10:03
下一篇 2016-12-11 10:41

相關推薦

  • 一. DHCP,TFTP, DNS 配置

    練習在CentOS6上配置DHCP, TFTP, DNS服務 1. 首先按下圖所示搭建網絡拓撲圖 2017-07-11 151425-001.png Server1 服務器IP: 192.168.20.101/24GATEWAY: 192.168.20.2DNS: 192.168.20.2 Server2 服務器IP: 192.168.20.102/24GA…

    Linux干貨 2017-07-11
  • 基于ssl功能實現mysql主從復制

    基于ssl功能實現mysql主從復制         證書準備:                                  CA證書…

    2016-11-22
  • shutil,csv,ini

    序列化和反序列化筆記

    2017-10-29
  • Linux運維不想早死的方法 一

    Linux運維不想早死的方法 一 為了提高工作效率,減少工作時間,愛惜生命,遠離輻射;務必做好以下幾點: 1,一定用快捷鍵         這里簡單的說下幾個常用的快捷按鍵。 Ctrl + l     清屏,相當于clear命令。 Ctrl…

    Linux干貨 2017-03-26
  • 正則表達式及其用法

    正則表達式及其用法 1.   什么是正則表達式 正則表達式是Global search REgular expression and Print out the line的縮寫。是一類用字符所書寫的模式,其中許多字符并不表示其字面意義,而是表達控制或通配等功能。 在Linux中,用正則表達式搜索文本的常用命令: grep: 使用基本正則表…

    Linux干貨 2015-09-14
  • 從Linux小白到大?!c狼共舞的日子3

    馬哥教育網絡班21期+第3周課程練習 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who root :0   2016-07-23 08:55 (:0) wangsining pts…

    Linux干貨 2016-07-26

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 15:53

    總結的很詳細~能用markdown格式化輸出會更好~加油。

欧美性久久久久