第二周:文件管理練習

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

目錄管理管理類命令

mkdir

make directories

mkdir [OPTION]... DIRECTORY...
注意:路徑基名作為命令的作用對象時,基名之前的路徑必須要存在;
    -p:自動按需創建父目錄;
    -v:--verbose,顯示詳細過程;
    -m MODE:直接給定權限;

[root@localhost ~]# mkdir -pv /tmp/mylinux/etc/sysconfig/network-scripts
mkdir: created directory ‘/tmp/mylinux’
mkdir: created directory ‘/tmp/mylinux/etc’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’

rmdir

remove empty directories

rmdir [OPTION]... DIRECTORY...
    -p:刪除目錄后,如果其父目錄為空,則一并刪除;
    -v:顯示詳細過程;

[root@localhost ~]# rmdir -pv /tmp/mylinux/etc/sysconfig/network-scripts/
rmdir: removing directory, ‘/tmp/mylinux/etc/sysconfig/network-scripts/’
rmdir: removing directory, ‘/tmp/mylinux/etc/sysconfig’
rmdir: removing directory, ‘/tmp/mylinux/etc’
rmdir: removing directory, ‘/tmp/mylinux’
rmdir: removing directory, ‘/tmp’
rmdir: failed to remove directory ‘/tmp’: Directory not empty

文件管理類命令

cp

copy files and directories

單源復制:
    cp [OPTION]... [-T] SOURCE DEST
    如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中;
    如果DEST存在:
    如果DEST是非目錄文件,則覆蓋目標文件;
    如果DEST是目錄文件,則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
多源復制:
    cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
    如果DEST不存在,則發生錯誤;
    如果DEST存在:
    如果DEST是非目錄文件,則發生錯誤;
    如果DEST是目錄文件,則分別復制每個文件至目標目錄中,并保持原名;

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

[root@localhost ~]# cp /etc/hosts /tmp/host
[root@localhost ~]# cp -r /var/log/ /tmp/

mv

move (rename) files

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
    -i:交互式(interactive);    
    -f:強制移動(force);

[root@localhost ~]# mv /tmp/host /tmp/hosts

rm

remove files or directories

rm [OPTION]... FILE...
    -i:交互式;    
    -f:強制刪除;
    -r:遞歸刪除(刪除目錄:rm -rf /PATH/TO/DIR);    
注意:危險操作:rm -rf /*;
所有不用的文件建議不要直接刪除,而是先移動至某個專用目錄(模擬回收站);

[root@localhost ~]# rm -rf /tmp/log/

文件查看類命令

ls

list directory contents

ls [OPTION]... [FILE]...    
    -a:顯示所有文件,包括隱藏文件;
    -A:顯示除.和..之外的所有文件;    
    -l:--long,長格式列表,顯示文件的詳細屬性;
    -h:--human-readable,顯示文件大小換算后的值;    
    -d:查看目錄本身而非其內部的文件列表;
    -r:逆序顯示(reverse);
    -R:遞歸顯示(recursive);

[root@localhost ~]# ls -l /etc/issue
-rw-r--r--. 1 root root 23 Dec  9  2015 /etc/issue

注意:文件屬性信息詳解:
-:文件類型
    -:常規文件,即f;
    d:directory,目錄文件;
    b:block device,塊設備文件,支持以“block”為單位進行隨機訪問;
    c:character device,字符設備文件,支持以“character”為單位進行線性訪問;
        major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序;
        minor number:次設備號,用于標識同一類型中的不同設備;
    l:symbolic link,符號鏈接文件;
    p:pipe,命名管道;
    s:socket,套接字文件;
rw-r--r--:文件權限
    rw-:文件屬主的權限;
    r--:文件屬組的權限;
    r--:其他用戶(非屬主、屬組)的權限;1:使用數字表示文件被硬鏈接的次數;
root:文件的屬主;
root:文件的屬組;    
23:數字表示文件的大小,單位是字節;
Dec  9  2015:文件最近一次被修改的時間;
/etc/issue:文件名;

file

determine file type

file FILE

[root@localhost ~]# file /etc/issue
/etc/issue: ASCII text
[root@localhost ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
[root@localhost ~]# file /var/log/wtmp 
/var/log/wtmp: data

注意:file命令將文件分為以下三類:
文本文件(ASCII):包含可打印字符的文件;
可執行文件(binary):可以在系統運行的文件;
數據文件(data):包含不可打印的二進制字符的文件,但也不可以在系統運行;

cat

concatenate files and print on the standard output
連接并顯示文件

cat [OPTION]... [FILE]...
    -n:顯示行號;
    -E:顯示行結束符;

[root@localhost ~]# cat -n /etc/passwd
     1    root:x:0:0:root:/root:/bin/bash     
     2    bin:x:1:1:bin:/bin:/sbin/nologin     
     3    daemon:x:2:2:daemon:/sbin:/sbin/nologin     
     4    adm:x:3:4:adm:/var/adm:/sbin/nologin     
     5    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin     
     6    sync:x:5:0:sync:/sbin:/bin/sync     
     7    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown     
     8    halt:x:7:0:halt:/sbin:/sbin/halt
        ...(此處省略)
[root@localhost ~]# cat /etc/issue /etc/fstab

\S
Kernel \r on an \m
#
# /etc/fstab
# Created by anaconda on Sun Aug 21 23:55:20 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3a80cc61-a45f-433f-992e-21e32ae89bcb /                     xfs     defaults        0 0
UUID=4e2eb638-558e-4c6c-ae13-b0820a99acfe /boot                   xfs     defaults        0 0
UUID=f6900d6b-f21f-4a13-953d-4d969aa0b845 /home                   xfs     defaults        0 0
UUID=57d73846-3f09-4d1f-bfa4-57bace5fedc0 swap                    swap     defaults        0 0

tac

concatenate and print files in reverse
是tac的反向顯示;

tac [OPTION]... [FILE]...

[root@localhost ~]# tac /etc/issue
Kernel \r on an \m
\S

output the first part of files
查看文件的前n行,默認為前10行;

head [OPTION]... [FILE]...
    -#:查看前#行;
    
[root@localhost ~]# head -5 /etc/passwd
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

tail

output the last part of files

tail [OPTION]... [FILE]...
    -#:查看后#行;
    -f:查看文件尾部內容后不退出,跟蹤顯示新增的行(Ctrl+c退出);

[root@localhost ~]# tail -f /var/log/messages
...(此處省略)
Aug 30 06:01:02 localhost systemd: Starting Session 3 of user root.
Aug 30 07:01:01 localhost systemd: Started Session 4 of user root.
Aug 30 07:01:01 localhost systemd: Starting Session 4 of user root.
(光標停在此處)

more

file perusal filter for crt viewing
文件分屏查看,翻屏至文件尾部后自動退出;

more file

less

opposite of more

more file

[root@localhost ~]# less /etc/rc.d/init.d/functions 

注意:其具體的上下翻頁、查詢、退出等操作同使用man命令查看手冊的操作;

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

命令執行狀態返回值

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

  • 成功0

  • 失敗1-255

注意:命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
命令正常執行時,有的還會有命令返回值,根據命令及其功能的不同,其結果各不相同;

命令行展開

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

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

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

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

[root@localhost ~]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: created directory ‘/tmp/a_c’
mkdir: created directory ‘/tmp/a_d’
mkdir: created directory ‘/tmp/b_c’
mkdir: created directory ‘/tmp/b_d’

2).創建/tmp/mylinux目錄如下

第二周:文件管理練習

[root@localhost ~]# 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@localhost ~]# 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.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間信息

Linux系統的文件由3個部分組成:

  • 數據(data):指普通文件中的實際數據;

  • 元數據(metadata):指用來描述一個文件特征的系統數據,保存在inode中;

  • 目錄項(directory entry):保存文件名;

文件的元數據信息及其含義如下:

Size:文件大??;
Blocks/IO Block:單位塊大小/塊的數量,二者乘積即為文件大??;
Device:設備號;
Access:文件類型與訪問權限;
Uid:文件所有者及其ID;
Gid:文件所屬組及其ID;
Links:文件硬鏈接次數,即文件名指向inode節點的數量;
atime:access time,文件被訪問的時間;
mtime:modify time,文件被修改的時間;
ctime:change time,文件被改變的時間,即inode節點信息被改變的時間;
Birth:文件被創建的時間;

查看文件元數據信息一般使用stat命令,而修改文件的時間信息一般用touch命令;

stat

display file or file system status

stat FILE

[root@localhost ~]# stat /etc/issue
File: ‘/etc/issue’
Size: 23            Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 33595545    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2016-08-28 04:20:26.763999574 +0800
Modify: 2015-12-09 17:59:15.000000000 +0800
Change: 2016-08-21 23:55:30.405994623 +0800
Birth: -

touch

change file timestamps

touch [OPTION]... FILE...
   -c:指定的文件路徑不存在時不予創建;   
   -a:僅修改access time;
   -m:僅修改modify time;
   -t STAMP:使用[[CC]YY]MMDDhhmm[.ss]格式;

[root@localhost ~]# touch /tmp/hello.txt

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

命令別名的定義與取消分別使用alias和unalias命令;

alias

Define or display aliases

[root@localhost ~]# alias
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'
[root@localhost ~]# alias cls='clear'

注意:使用alias命令定義的別名僅對當前shell進程有效;

unalias

Remove each NAME from the list of defined aliases

[root@localhost ~]# unalias cls

引用命令的執行結果有以下兩種形式:

  • $(COMMAND)

  • `COMMAND`

[root@localhost ~]# echo $(pwd)/root
[root@localhost ~]# echo `pwd`/root

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

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

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

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

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

[root@localhost ~]# ls -d /etc/[^a-z][a-z]*

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

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

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

[root@localhost ~]# mkdir /tmp/mytest1
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/

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

[root@localhost ~]# mkdir /tmp/mytest2
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

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

[root@localhost ~]# mkdir /tmp/mytest3
[root@localhost ~]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3

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

(0)
dawningdawning
上一篇 2016-09-23
下一篇 2016-09-23

相關推薦

  • vim用法詳解

    vim編輯器:文本編輯器: 文本:純文本,ASCII text;Unicode 文本編輯器種類:     行編輯器:sed     全屏編輯器:nano,vi   vi:visual interface vim:vi improv…

    Linux干貨 2016-08-15
  • Zabbix 發現功能中文文檔

    說明:本文譯自 zabbix 官方文檔 Discovery 一節,包括 Network Discovery, Auto Registration和Low level discovery,同時對文章進行了補充以及更詳細的說明。適用于Zabbix 2.0 版本。 發現包括三種類型: 網絡發現 ( Network discovery) 主動客戶端自動注冊 ( Ac…

    Linux干貨 2015-03-12
  • 計算機組成、Linux命令基礎

    計算機組成 控制器(Control):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器(Datapath):運算器的功能是對數據進行各種算術運算和邏輯運算,即對數據進行加工處理。 存儲器(Memory):存儲器的功能是存儲程序、數據和各種信號、命令等信息…

    Linux干貨 2016-09-19
  • iptables基礎概念

    iptables基本概念梳理 前言 netfilter/Iptables (其中包括netfilter和Iptables兩個組件)組 成了Linux平臺下的包過濾防火墻,它與大多數的Linux自帶軟 件一樣,這個防火墻是免費提供的,它可以代替昂貴的企業級 防火墻來解決實際問題與實際方案,完成封包過濾,封包重定 向和網絡地址轉換等功能。 一、工作原理 數據包從…

    Linux干貨 2016-12-19
  • Linux學習之課前環境安裝調試

    系統安裝,VNC,VMware軟件安裝

    2018-03-26
  • Linux基礎學習總結(一)

    Linux 安裝運行步驟: 進入\\172.16.0.1\python10 ? ? ? ? ?用戶名:python10 ? ? ? ? ?密碼:python10magedu 進入目錄? ?ftp://172.16.0.1/pub/ISOs/ 下載linux系統鏡像文件 ? ? ? ? ? CentOS-6.9-x86_64-bin-DVD1.iso ? ? …

    Linux干貨 2018-03-16
欧美性久久久久