N25-第二周博客作業

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

文件管理工具有cp, mv, rm

  • cp命令: 復制文件或文件夾

    語法:

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

    常用選項:

                  -i:交互式復制,即覆蓋之前提醒用戶確認;
                     -f:強制覆蓋目標文件;
                     -r, -R:遞歸復制目錄;
                     -d:復制符號鏈接文件本身,而非其指向的源文件;
                     -a:-dR --preserve=all, archive,用于實現歸檔;做備份
                     --preserv=
                         mode:權限
                         ownership:屬主和屬組
                         timestamps: 時間戳
                         context:安全標簽
                         xattr:擴展屬性
                         links:符號鏈接
                         all:上述所有屬性

    示例:

  1. 拷貝/etc/fstab到/tmp目錄下

    [root@node1 ~]# cp /etc/fstab /tmp
    [root@node1 ~]# ls /tmp
    fstab
  2. 拷貝/etc目錄到/tmp目錄下

    [root@node1 ~]# cp -r /etc/ /tmp
  • mv命令: 移動或重命名文件

    語法:

    mv [OPTION]… [-T] SOURCE DEST
    mv [OPTION]… SOURCE… DIRECTORY
    mv [OPTION]… -t DIRECTORY SOURCE..

源文件和目標文件在同一目錄下,重命名
源文件和目標文件不在同一目錄下,移動

選項:

           mv沒有-r選項
           常用選項:
                   -i:交互式;
                   -f:force

示例

  1. 移動家目錄下的test1到/tmp下

    [root@node1 ~]# ls
    anaconda-ks.cfg  initial-setup-ks.cfg  test1
    [root@node1 ~]# mv test1 /tmp
    [root@node1 ~]# ls /tmp
    etc  fstab  test1
  2. 重命名test1為test2

[root@node1 ~]# mkdir /tmp/test1
[root@node1 ~]# mv /tmp/test1 /tmp/test2
[root@node1 ~]# ls /tmp
test2
  • rm命令: 刪除文件或目錄

語法:

rm [OPTION]… FILE…

常用選項:

                -i:interactive  交互式
                -f:force   強制
                -r: recursive    遞歸刪除目錄

示例:

  1. 刪除/tmp下的test2文件

    [root@node1 tmp]# rm test2 
    rm:是否刪除普通空文件 "test2"?y
    [root@node1 tmp]# ls
    etc  fstab
  2. 刪除/tmp下的所有文件

    [root@node1 tmp]# rm -rf /tmp/*
    [root@node1 tmp]# ls
    [root@node1 tmp]#
  3. 刪除/tmp下的etc目錄

    [root@node1 tmp]# ls
    etc
    [root@node1 tmp]# rm -rf /tmp/etc
    [root@node1 tmp]# ls
    [root@node1 tmp]#

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

  • 命令執行狀態返回值
    bash通過狀態返回值來輸出此結果:

    • 成功:0

    • 失?。?-255

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

命令正常執行時,有的還會有命令返回值

示例:

  1. 查看命令狀態返回值(執行成功)

    [root@node1 ~]# ls
    anaconda-ks.cfg  initial-setup-ks.cfg
    [root@node1 ~]# echo $?
    0
  2. 查看命令狀態返回值(執行失敗)

    [root@node1 ~]# filess /etc/issue
    bash: filess: 未找到命令...
    [root@node1 ~]# echo $?
    127
  • 命令行展開
    ~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
    {}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;

示例:

  1. 進入家目錄

    [root@node1 tmp]# cd ~
    [root@node1 ~]# pwd
    /root
  2. 在/tmp下創建文件a,文件b

    [root@node1 ~]# ls /tmp
    [root@node1 ~]# touch /tmp/{a,b}
    [root@node1 ~]# ls /tmp
    a  b

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

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

[root@node1 ~]# touch /tmp/{a,b}_{c,d}
[root@node1 ~]# ls /tmp
a  a_c  a_d  b  b_c  b_d

(2) 創建/tmp/mylinux目錄下的:
N25-第二周博客作業

[root@node1 ~]# mkdir -pv /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}}
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/local/bin"
mkdir: 已創建目錄 "/tmp/mylinux/usr/local/sbin"
mkdir: 已創建目錄 "/tmp/mylinux/var"
mkdir: 已創建目錄 "/tmp/mylinux/var/lock"
mkdir: 已創建目錄 "/tmp/mylinux/var/log"
mkdir: 已創建目錄 "/tmp/mylinux/var/run"

[root@node1 ~]# 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

24 directories, 0 files

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

  • 元數據信息有哪些?
    屬性,權限,時間戳等

  • 元數據信息如何查看
    使用stat命令

示例:

[root@node1 ~]# stat /etc/issue
  文件:"/etc/issue"
  大?。?3            塊:8          IO 塊:4096   普通文件
設備:803h/2051d    Inode:134220522   硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:system_u:object_r:etc_t:s0
最近訪問:2016-12-09 23:05:14.894890846 +0800
最近更改:2015-12-09 17:59:15.000000000 +0800
最近改動:2016-11-14 08:54:12.074004823 +0800
創建時間:-
  • 修改時間戳信息

訪問時間 access time:2015-12-10 16:12:22.776423693 +0800 最近訪問時間

更改時間 modify time:2015-12-10 16:12:22.776423693 +0800 數據

改動時間 change time:2015-12-10 16:12:22.776423693 +0800 元數據

注意: centos7中被優化了,導致訪問時間可能不變化
數據改變,元數據一定改變

touch命令:更改時間戳

語法:

touch [OPTION]… FILE…

選項:

                -c: 指定的文件路徑不存在時不予創建;默認創建空文件
                -a: 僅修改access time;
                -m:僅修改modify time;
                -t STAMP  指定更改的時間
                    [[CC]YY]MMDDhhmm[.ss]

示例:

  1. 修改所有時間戳信息

    [root@node1 ~]# stat anaconda-ks.cfg 
    文件:"anaconda-ks.cfg"
    大?。?209          塊:8          IO 塊:4096   普通文件
    設備:803h/2051d    Inode:270678286   硬鏈接:1
    權限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
    環境:system_u:object_r:admin_home_t:s0
    最近訪問:2016-11-14 01:44:35.851015291 +0800
    最近更改:2016-11-14 09:36:18.782059218 +0800
    最近改動:2016-11-14 09:36:18.782059218 +0800
    創建時間:-
    [root@node1 ~]# touch anaconda-ks.cfg 
    [root@node1 ~]# stat anaconda-ks.cfg 
    文件:"anaconda-ks.cfg"
    大?。?209          塊:8          IO 塊:4096   普通文件
    設備:803h/2051d    Inode:270678286   硬鏈接:1
    權限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
    環境:system_u:object_r:admin_home_t:s0
    最近訪問:2016-12-10 00:13:17.993151406 +0800
    最近更改:2016-12-10 00:13:17.993151406 +0800
    最近改動:2016-12-10 00:13:17.993151406 +0800
    創建時間:-

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

  • 定義命令別名

    當前shell進程有效

    ~]# alias NAME='COMMAND'

示例:

  1. 設置clear的別名為cls

    [root@node1 ~]# alias cls=clear
    [root@node1 ~]# alias
    alias cls='clear'
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    開機有效

示例:

  1. 定義clear別名為cls,所有人有效,開機有效

[root@node1 ~]# vim /etc/bashrc  
alias cls=clear  

[root@node1 ~]# source /etc/bashrc
[root@node1 ~]# alias
alias cls='clear'
  • 命令應用(命令替換)
    引用命令的執行結果
    方式:

    $(COMMAND)  
    或`COMMAND`

示例:

  1. 顯示日期

    [root@node1 ~]# echo $(date)
    2016年 12月 10日 星期六 00:38:10 CST

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

[root@node1 ~]# ls /var/l*[0-9]*[[:lower:]]
/var/l12a  /var/l3a  /var/lo2f

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

[root@node1 ~]# ls /etc/[0-9]*[^0-9]

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

[root@node1 ~]# ls /etc/[^[:alpha:]][[:alpha:]]*

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

[root@node1 ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
[root@node1 ~]# ls /tmp/tf*
/tmp/tfile-2016-12-10-01-01-55  /tmp/tfile-2016-12-10-01-02-24
/tmp/tfile-2016-12-10-01-02-19

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

[root@node1 ~]# mkdir /tmp/mytest1
[root@node1 ~]# cp -rf /etc/p*[^0-9] /tmp/mytest1
[root@node1 ~]# ls /tmp/mytest1
pam.d    pbm2ppa.conf  plymouth      popt.d   prelink.conf.d  profile.d  purple
passwd   pinforc       pm            postfix  printcap        protocols  python
passwd-  pki           pnm2ppa.conf  ppp      profile         pulse

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

[root@node1 ~]# mkdir /tmp/mytest2
[root@node1 ~]# cp -r /etc/*.d /tmp/mytest2
[root@node1 ~]# ls /tmp/mytest2
bash_completion.d  ipsec.d         profile.d      rwtab.d
binfmt.d           ld.so.conf.d    rc0.d          sane.d
chkconfig.d        libibverbs.d    rc1.d          setuptool.d
cron.d             logrotate.d     rc2.d          statetab.d
depmod.d           modprobe.d      rc3.d          sudoers.d
dnsmasq.d          modules-load.d  rc4.d          sysctl.d
dracut.conf.d      my.cnf.d        rc5.d          tmpfiles.d
exports.d          oddjobd.conf.d  rc6.d          usb_modeswitch.d
gdbinit.d          pam.d           rc.d           xinetd.d
grub.d             popt.d          request-key.d  yum.repos.d
init.d             prelink.conf.d  rsyslog.d

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

[root@node1 ~]# mkdir /tmp/mytest3
[root@node1 ~]# cp /etc/[lmn]*.conf /tmp/mytest3  
[root@node1 ~]# ll /tmp/mytest3
總用量 48
-rw-r--r--. 1 root root   28 12月 10 01:12 ld.so.conf
-rw-r-----. 1 root root  191 12月 10 01:12 libaudit.conf
-rw-r--r--. 1 root root 2391 12月 10 01:12 libuser.conf
-rw-r--r--. 1 root root   16 12月 10 01:12 locale.conf
-rw-r--r--. 1 root root  662 12月 10 01:12 logrotate.conf
-rw-r--r--. 1 root root 5171 12月 10 01:12 man_db.conf
-rw-r--r--. 1 root root  936 12月 10 01:12 mke2fs.conf
-rw-r--r--. 1 root root 2620 12月 10 01:12 mtools.conf
-rw-r--r--. 1 root root 3390 12月 10 01:12 nfsmount.conf
-rw-r--r--. 1 root root 1717 12月 10 01:12 nsswitch.conf
-rw-r--r--. 1 root root   91 12月 10 01:12 numad.conf

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

(0)
hansjhansj
上一篇 2016-12-09
下一篇 2016-12-10

相關推薦

  • CentOS 6的開機流程及root密碼破解

    一、CentOS 6的開機流程詳解 啟動流程詳解 1、POST:    Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測。 2、BootSequence(BIOS):    決定那個磁盤…

    Linux干貨 2016-09-13
  • N26-第四周作業-邢巖

    馬哥門徒-N26-邢巖   精神練習需要深入認真的工作以及熱情的勁頭。當你開始練習,你是在掙扎、在反抗,你需要集中精力,然后慢慢進步。那么,我們就開始吧。   第一題,復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。   ~]# cp -r /et…

    Linux干貨 2017-02-15
  • bash 的過程式和循環式的編寫

           bash腳本的編寫,對于Linux這個多用戶,多任務的系統,有很大的幫助,腳本可以幫助我們定時執行任務,過濾文本,檢查系統性能等等。下面我們來了解一下過程式和循環式腳本的編寫。 使用read 命令來接受輸入 使用read 來把輸入值分配給一個或多個shell 變量:  &nb…

    Linux干貨 2016-08-24
  • Linux終端類型

        終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。在早期計算機系統中,由于計算機主機昂貴,因此一個主機(IBM大型計算機)一般會配置多個終端,這些終端本身不具備計算能力,僅僅承擔信息輸入輸出的工作,運算和處理均由主機來完成。在個人計算機時代,個人計算機可以運行稱為…

    Linux干貨 2016-10-13
  • N22-第七周作業

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

    Linux干貨 2016-10-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 16:27

    贊,總結的不錯~~加油~

欧美性久久久久