馬哥教育網絡21期+第二周練習博客

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

長用的文件管理類命令有cp(復制),mv(移動),rm(刪除)。接下來我將為大家一一講解。

復制命令:cp

在cp時要根據源和目的做出確認與調整;

SRC.png

命令格式:
    cp [OPTION]... [-T] SOURCE DEST
    cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
命令參數:
    -i:交互式 (目標存在是否覆蓋)                                       
    -r,-R:遞歸復制目錄及內部的所有內容;
    -a:歸檔,相當于-dR,--preserv=all
        -d:--no-dereference --preserv=links
        --preserv=[ATTR_LIST]
            mode:權限
            ownership:屬主屬組
            timetamp:時間戳
            links:鏈接屬性
            xattr:擴展屬性
            all:安全
    -p:保留權限。相當于--preserv=mode,ownership,timetamp
    -v:--verbose
    -f:--force
示例:
[root@localhost ~]# cp /etc/passwd /tmp/jds
[root@localhost ~]# cat /tmp/jds 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

移動文件命令:mv:move

命令格式:
    mv [OPTION]... [-T] SOURCE DEST
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE..
命令參數:
    -i:交互式
    -f:強制
示例:
[root@localhost etc]# mkdir qq
[root@localhost etc]# touch /etc/qq/ww
[root@localhost etc]# ls /etc/qq/
ww
[root@localhost etc]# mv /etc/qq/ww /tmp/jds 
mv: overwrite `/tmp/jds'? y
[root@localhost etc]# cat /tmp/jds 
[root@localhost etc]#

刪除命令:rm:remove

命令格式:
    rm [OPTION]... FILE...
命令參數:
    -i:交互式
    -f:強制刪除
    -r:遞歸
示例:
[root@localhost etc]# rm /tmp/jds 
rm: remove regular empty file `/tmp/jds'? y
[root@localhost etc]# cat /tmp/jds
cat: /tmp/jds: No such file or directory

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

(1)命令執行的結果狀態有2個:成功|失敗

    bash使用特殊變量$?保存最近一條命令的執行狀態結果:

    echo $?

    0:成功

    1-255:失敗

[root@localhost ~]# pwd
/root
[root@localhost ~]# echo $?
0
[root@localhost ~]# pwdd 
-bash: pwdd: command not found
[root@localhost ~]# echo $?
127

(2)命令行展開:

~:展開為用戶的主目錄

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

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

 /tmp/{a,b}=/tmp/a,/tmp/b
/tmp/{tom,jerry}/hi=/tmp/tom/hi,/tmp/jerry/hi

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

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

[root@localhost ~]# mkdir /tmp/{a,b}_{c,d}
[root@localhost ~]# ls /tmp/
a_c  b_c  orbit-gdm           pulse-6SgsiL8VHsxF   yum.log
a_d  b_d  pulse-5VZguu0IAHWG  virtual-root.cFYgyD

   (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

[root@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grup,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@localhost ~]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grup
├── 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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

access、modify、change

三個時間戳:
    access time:訪問時間,簡寫為atime,讀取文件內容
    modify time:修改時間,mtime,改變文件內容(數據)
    change time:改變時間,ctime,元數據發生改變
 
 查看文件狀態:
     stat /PATH/TO/SIOMEFILE:獲取指定文件的元數據;
     
 [root@localhost ~]# stat /etc/passwd
  File: `/etc/passwd'
  Size: 1613      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 926642      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-17 23:04:59.413525897 +0800
Modify: 2016-07-17 23:04:59.410525897 +0800
Change: 2016-07-17 23:04:59.410525897 +0800

touch命令可用于修改時間戳:

命令格式:
    touch [OPTION]... FILE...
        -a:only atime
        -m:only mtime
        -t STAMP:自己指定時間戳
            [[CC]YY]MMDDhhmm[.ss]
        -c:如果文件存在,則不予創建
示例:
[root@localhost ~]# stat /etc/passwd
  File: `/etc/passwd'
  Size: 1613      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 926642      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-18 07:28:01.096612108 +0800
Modify: 2016-07-18 07:27:50.806600257 +0800
Change: 2016-07-18 07:27:50.806600257 +0800
[root@localhost ~]# touch -a -t 201607172340.00 /etc/passwd
[root@localhost ~]# stat /etc/passwd
  File: `/etc/passwd'
  Size: 1613      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 926642      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-17 23:40:00.000000000 +0800
Modify: 2016-07-18 07:27:50.806600257 +0800
Change: 2016-07-18 07:38:19.644599221 +0800

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

命令別名(alias)

    (1)alias

        顯示當前shell進程所有的命令別名;

    (2)alias NAME='VALUE'

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

[root@localhost ~]# alias jc='stat'
[root@localhost ~]# source .bashrc 
[root@localhost ~]# js jds 
-bash: js: command not found
[root@localhost ~]# jc jds 
  File: `jds'
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 3145889     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-18 07:51:18.174599013 +0800
Modify: 2016-07-18 07:34:14.035593515 +0800
Change: 2016-07-18 07:34:14.035593515 +0800

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

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

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

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

source /PATH/TO/CONFIG_FILE
./PATH/TO/CONFIG_FILE(source可以簡寫成.)

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

[root@localhost ~]# ls  -d /var/l*[0-9]*[[:lower:]]
/var/l22r  /var/l22t

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

[root@localhost ~]# ls -d /etc/[0-9]*[^[:digit:]]
/etc/22a  /etc/5cd

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

[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/5cd

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

[root@localhost ~]# touch /tmp/tfile-`date +%F-%H-%M-%S`
[root@localhost ~]# ls /tmp/tfile2016-07-18-08-59-07 
/tmp/tfile2016-07-18-08-59-07

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

[root@localhost ~]# cp /etc/p*[^[:digit:]] /tmp/mytest1
cp: omitting directory `/etc/pam.d'
cp: omitting directory `/etc/pango'
cp: omitting directory `/etc/pcmcia'
cp: omitting directory `/etc/pki'
cp: omitting directory `/etc/plymouth'
cp: omitting directory `/etc/pm'
cp: omitting directory `/etc/popt.d'
cp: omitting directory `/etc/portreserve'
cp: omitting directory `/etc/postfix'
cp: omitting directory `/etc/ppp'
cp: omitting directory `/etc/prelink.conf.d'
cp: omitting directory `/etc/profile.d'
cp: omitting directory `/etc/pulse'
cp: omitting directory `/etc/purple'

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

[root@localhost ~]# mkdir /tmp/mytest2
[root@localhost ~]# cp -d /etc/*.d /tmp/mytest2/
cp: omitting directory `/etc/bash_completion.d'
cp: omitting directory `/etc/chkconfig.d'
cp: omitting directory `/etc/cron.d'
cp: omitting directory `/etc/depmod.d'
cp: omitting directory `/etc/dnsmasq.d'
cp: omitting directory `/etc/dracut.conf.d'
cp: omitting directory `/etc/event.d'
cp: omitting directory `/etc/latrace.d'
cp: omitting directory `/etc/ld.so.conf.d'
cp: omitting directory `/etc/logrotate.d'
cp: omitting directory `/etc/lsb-release.d'
cp: omitting directory `/etc/makedev.d'
cp: omitting directory `/etc/modprobe.d'
cp: omitting directory `/etc/oddjobd.conf.d'

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

[root@localhost ~]# mkdir /tmp/mytest3
[root@localhost ~]# ls /etc/[lmnp]*.conf
/etc/latrace.conf   /etc/libuser.conf    /etc/mke2fs.conf    /etc/nsswitch.conf  /etc/pm-utils-hd-apm-restore.conf
/etc/ld.so.conf     /etc/logrotate.conf  /etc/mtools.conf    /etc/ntp.conf       /etc/pnm2ppa.conf
/etc/libaudit.conf  /etc/ltrace.conf     /etc/nfsmount.conf  /etc/pbm2ppa.conf   /etc/prelink.conf
[root@localhost ~]# cp /etc/[lmnp]*.conf /tmp/mytest3/
[root@localhost ~]# ls /tmp/mytest3/
latrace.conf   libuser.conf    mke2fs.conf    nsswitch.conf  pm-utils-hd-apm-restore.conf
ld.so.conf     logrotate.conf  mtools.conf    ntp.conf       pnm2ppa.conf
libaudit.conf  ltrace.conf     nfsmount.conf  pbm2ppa.conf   prelink.conf

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

(0)
Net21_PreferredNet21_Preferred
上一篇 2016-07-22 10:09
下一篇 2016-07-22 10:09

相關推薦

  • RPM及YUM工具介紹及使用(下)

    YUM工具 YUM工作原理 YUM工具的出現就是為了解決rpm工具不能夠自動解決軟件包之間的依賴關系這一難題的。它的工作原理大致如下:YUM透過分析RPM的標頭資料,根據各軟件的相關性找出軟件所依賴的軟件列表,然后去下載速度最快的yum倉庫中下載所有相關RPM軟件包,然后完成相應軟件的安裝。同時yum工具和rpm工具一樣,也可以提供對軟件包的查詢,安裝、升級…

    Linux干貨 2016-12-26
  • 第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 ~]# cp -r /etc/skel /home/tuser1 ]# chmod -R 700 /home/tuser1/ 2、編輯/etc/group文件,添加組hadoop ~]# echo "hadoop:…

    Linux干貨 2016-12-14
  • httpd服務之虛擬主機、訪問控制、https配置詳解

    前言 上文講解了http協議及httpd的一些特性,是學習web服務需要掌握的一些基礎知識,接下來讓我們進一步了解httpd相關功能的配置,本文講解的是虛擬主機,訪問控制及https等功能的配置。 httpd之虛擬主機 虛擬主機共分為三種模式:基于IP、基于端口、基于主機名(FQDN) 實驗環境介紹 開始之前,先介紹一下httpd在CentOS6.6版本及文…

    Linux干貨 2015-04-14
  • 用戶及權限管理

     今天是學習馬哥教育第四天,也是第一個博客作業,寫一篇關于用戶及權限管理的簡介型的博客文章,作文水品有限,所以寫出來有可能有病句或者意境有問題,請大家多多包涵。  首先,用戶及權限管理,需要從2方面入手來說,首先來說用戶管理。  何謂用戶,這是馬哥一上來就提到的問題,我簡單的理解,用戶其實就是一個人機交互的接口,人機交互的接口是…

    Linux干貨 2016-09-15
  • N22-妙手-第三周博客作業

    1、列出當前系統上所有已經登錄的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | uniq -c     &nb…

    Linux干貨 2016-09-19
  • 第七周作業

    第七周 1,創建一個10G分區,并格式化為ext4文件系統;(1) 要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl;(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@www ~]# fdisk /dev/sda <————-fd…

    Linux干貨 2017-09-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-22 10:46

    寫的很好,排版也很棒,加油

欧美性久久久久