第二周作業

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

目錄管理類命令:

cd:變更目錄

  命令格式:cd [DIRECTORY]

pwd:顯示當前目錄的絕對路徑

ls:顯示文件或目錄內容

    命令格式:ls [OPTION]… [FILE]…

    常用參數:

        -a:顯示所有內容(包含以.開頭的隱藏文件)。

        -l:以長格式顯示文件夾內容。

        -d:只顯示目錄名稱,不顯示目錄下的內容。

        -h:以人類易讀的方式顯示文件大?。ㄈ纾?.0K)。

mkdir:創建目錄

    命令格式:mkdir [OPTION]…DIRECTORY…

    常用參數:

        -p:表示目錄存在時不返回錯誤,不存在時,自動創建目錄。

        -v:顯示創建過程的詳細信息。

        -m MODE:創建目錄時直接指定權限。

rmdir:刪除目錄

    命令格式:rmdir [OPTION]… DIRECTORY…

    常用參數:

        -v:顯示執行過程。

tree:目錄結構查看

    常用參數:

        -d:只顯示目錄。

        -L level:指定顯示的層級數據。

        -P pattern:只顯示指定pattern匹配到的路徑。

文件管理類:

cp:復制命令

    命令格式:

        cp [OPTION]… [-T] SOURCE DEST

          cp [OPTION]… SOURCE… DIRECTORY

        cp [OPTION]… -t DIRECTORY SOURCE…

    常用參數:

        -i:交互式

        -r:遞歸復制目錄及內部的所有內容。

        -a:歸檔,相當于-dR –preserve=all

            –preserve[=ATTR_LIST]

            mode:權限

            ownership:屬主屬組

            timestamp:時間戳

            links:符號鏈接

            xattr:擴展屬性

            context:安全標簽

            all:上述所有屬性

        -d:表示不跟蹤符號鏈接所指向的源文件–no-dereference –preserve=links

        -p:保持原有文件的屬性信息。

        -f:強制覆蓋

        -v:顯示執行過程

    使用方法:

        單源復制:cp [OPTION]… [-T] SOURCE DEST

         如果DEST不存在:則事先創建此文件,并復制源文件的數據流至DEST中;

        如果DEST存在:

            如果DEST是非目錄文件:則覆蓋目標文件;

            如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;

        多源復制:

            cp [OPTION]… SOURCE… DIRECTORY

            cp [OPTION]… -t DIRECTORY SOURCE…

            如果DEST不存在:錯誤;

             如果DEST存在:

                如果DEST是非目錄文件:錯誤;

                如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名;

mv:移動命令

    命令格式:

        mv [OPTION]… [-T] SOURCE DEST

          mv [OPTION]… SOURCE… DIRECTORY

          mv [OPTION]… -t DIRECTORY SOURCE…

    常用參數:

        -i:交互式

        -f:強制

rm:刪除命令

    命令格式:rm [OPTION]… FILE…

    常用參數:

        -i:交互式

        -f:強制

        -r:遞歸

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

命令執行結果狀態用 $? 表示。

    0:成功

    1 – 255:失敗

命令行展開:

    ~:展開為當前用戶的主目錄。

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

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

    示例:

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

        /tmp/{tom,jerry}/h1 = /tmp/tom/h1,/tmp/jerry/h1

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

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

[root@devops2 tmp]# touch /tmp/{a_c,a_d,b_c,b_d}
[root@devops2 tmp]# ls
a_c  a_d  b_c  b_d

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

[root@devops2 tmp]# 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@devops2 tmp]# 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

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

文件的元數據包括:文件大小,權限,塊數,塊大小,文件類型,所在磁盤編號,inode,關聯文件數,時間戳信息。

可通過stat命令進行查看:

[root@devops2 tmp]# stat /tmp/mylinux/
  File: `/tmp/mylinux/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 1835023     Links: 14
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-01-08 16:40:14.764841462 +0800
Modify: 2017-01-08 16:40:10.123180220 +0800
Change: 2017-01-08 16:40:10.123180220 +0800

access time:訪問時間,atime,即:通過cat,more等讀取其內容。

modify time:修改時間,mtime,即:改變文件內容。

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

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

語法:alias new_name = 'old_name option'

[root@devops2 tmp]# alias grep='grep --color=auto'
[root@devops2 tmp]# alias|grep grep
alias grep='grep --color=auto'

注意:通過命令行定義的命令別名只對當前shell有效,如果想永久有效,需要定義在配置文件中,如:

僅對當前用戶有效:~/.bashrc

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

然后重新讀取配置文件使別名生效:

source ~/.bashrc 或 source /etc/bashrc

引用其他命令執行結果

$(COMMAND) 或 `COMMAND`

[root@devops2 tmp]# currdir=`pwd`
[root@devops2 tmp]# echo $currdir
/tmp
[root@devops2 tmp]# filelist=$(ls)
[root@devops2 tmp]# echo $filelist
a_c a_d b_c b_d mylinux

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

[root@devops2 var]# ll -d /var/l*[[:digit:]]*[[:lower:]]
drwxr-xr-x 2 root root 4096 Jan  8 17:36 /var/l012abc
-rw-r--r-- 1 root root    0 Jan  8 17:39 /var/l9def

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

[root@devops2 etc]# ll -d /etc/[[:digit:]]*[^[:digit:]]
-rw-r--r-- 1 root root    0 Jan  8 17:45 /etc/1abc
drwxr-xr-x 2 root root 4096 Jan  8 17:45 /etc/2def

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

[root@devops2 etc]# ll -d /etc/[^[:alpha:]][[:alpha:]]*
-rw-r--r-- 1 root root    0 Jan  8 17:45 /etc/1abc
drwxr-xr-x 2 root root 4096 Jan  8 17:45 /etc/2def

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

[root@devops2 tmp]# touch /tmp/file-$(date +%F-%H-%M-%S)
[root@devops2 tmp]# ls /tmp/file-2017-01-08-18-03-48 
/tmp/file-2017-01-08-18-03-48

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

[root@devops2 tmp]# mkdir /tmp/mytest{1,2,3}
[root@devops2 tmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
[root@devops2 tmp]# ls /tmp/mytest1/
pam.d    pcmcia     php.ini      plymouth                      portreserve    prelink.conf    profile.d
pango    pear       php.ini.bak  pm                            postfix        prelink.conf.d  protocols
passwd   pear.conf  pinforc      pm-utils-hd-apm-restore.conf  ppp            printcap        pulse
passwd-  php.d      pki          popt.d                        prelink.cache  profile

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

[root@devops2 tmp]# cp -r /etc/*.d /tmp/mytest2/
[root@devops2 tmp]# ls /tmp/mytest2/
bash_completion.d  event.d        makedev.d       prelink.conf.d  rc4.d          rwtab.d
cgconfig.d         init.d         modprobe.d      profile.d       rc5.d          setuptool.d
chkconfig.d        latrace.d      oddjobd.conf.d  rc0.d           rc6.d          statetab.d
cron.d             ld.so.conf.d   pam.d           rc1.d           rc.d           sudoers.d
depmod.d           logrotate.d    php.d           rc2.d           request-key.d  xinetd.d
dracut.conf.d      lsb-release.d  popt.d          rc3.d           rsyslog.d      yum.repos.d

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

[root@devops2 tmp]# cp /etc/{l,m,n}*.conf /tmp/mytest3
[root@devops2 tmp]# ls /tmp/mytest3/
latrace.conf  libaudit.conf  logrotate.conf  mke2fs.conf    nsswitch.conf  numad.conf
ld.so.conf    libuser.conf   ltrace.conf     nfsmount.conf  ntp.conf

原創文章,作者:N26-西安-方老喵,如若轉載,請注明出處:http://www.www58058.com/66098

(0)
N26-西安-方老喵N26-西安-方老喵
上一篇 2017-01-08
下一篇 2017-01-08

相關推薦

  • 軟件包管理

      軟件運行環境       API:Application Programming Interface         POSIX :Portable OS      碼程序源代碼 –>預處理 –> 譯…

    Linux干貨 2016-08-29
  • CentOS啟動流程

    CentOS啟動大致流程: POST –> BootSequence –> Bootloader –> kernel –> rootfs –> switchroot –> /sbin/init –> (/etc/inittab;/et…

    Linux干貨 2017-07-12
  • Bash Shell詳解

    引言:什么是Shell? Linux的命令行接口歸結起來就是各種Shell,那么到底什么是Shell?Shell,譯為外殼,是用戶直接連入計算機所使用的計算機程序,負責解析用戶提供的命令,如詞法分析、語法分析、句法分析。 1.Shell的分類 Linux 的命令 shell 是與操作系統相分離的一層。不同的 shell 環境影響您具備不同的功能,比如可編輯的…

    2017-09-07
  • IO重定向

    I/O(IN Out)重定向(本來位置被改到別處位置):            指的改變默認輸入輸出的位置    程序:數據+指令  IO          可用于輸入的設備:文件     &nbsp…

    Linux干貨 2017-04-03
  • Python函數式編程指南(三):迭代器

    這一篇我們將討論迭代器。迭代器并不是函數式編程特有的東西,但它仍然是函數式編程的一個重要的組成部分,或者說是一個重要的工具。 轉載請注明原作者和原文地址:) 3. 迭代器 3.1. 迭代器(Iterator)概述 迭代器是訪問集合內元素的一種方式。迭代器對象從集合的第一個元素開始訪問,直到所有的元素都被訪問一遍后結束。 迭代器不能回退,只能往前進行迭代。這并…

    Linux干貨 2015-03-11

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-02-27 17:03

    延續了之前的品質,再接再厲。

欧美性久久久久