N25 the second week

1.文件管理命令

1.1.cat

concatenate files and print on the standard output

# 正序打印文件
cat [OPTION]... [FILE]...

# 常用參數
-n 編號顯示每行
-E 顯示每行的結束符

1.2.tac

concatenate and print files in reverse

# 倒序打印文件
tac [OPTION]... [FILE]...

1.3.head

output the first part of files

# 介紹
默認顯示文件的頭10行記錄

# 常見參數
-n #    顯示多少行
-#      指定顯示的行數

1.4.tail

output the last part of files

# 介紹
默認顯示文件的末尾10行記錄

# 常用參數
-n #   指定展示的行數
-#     指定展示的行數
-f     查看文件尾部內容結束后不退出,跟隨顯示新增的行

1.5.tailf

follow the growth of a log file

# 介紹
跟隨日志文件的增長顯示日志,默認先展示后10后動態顯示日志增長

# 常用參數
-n  先展示多少行后繼續跟歲日志成長

1.6.more

file perusal filter for crt viewing

從頭至尾分屏顯示(翻屏至文件尾部后自動退出)

# 快捷鍵
請參考man手冊快捷鍵

1.7.less

opposite of more

# 即man命令

# 快捷鍵
請參考man手冊快捷鍵

1.8.顯示文件的詳細信息stat

display file or file system status

# 介紹
顯示文件或文件系統的狀態

# 文件包含的兩類數據
元數據 : metadata  [索引]
數據 : data [真實數據]

# 包含的信息
access time(atime)最近訪問時間:打開文件查看內容(讀取數據流)
modity time(mtime)最近更改時間:數據改變
change time(ctime)最近改動時間:元數據改動

1.9.修改文件的時間戳touch

change file timestamps

# 語法
touch [OPTIONS] [FILE]

# 常用參數
-c 指定的文件路徑不存在時不予創建
-a 更改訪問時間(access time)
-m 更改修改時間(modify time)
-t 指定改為某一固定時刻的時間戳
    [[CC]YYMMDDhhmm[.ss]]

1.10.屬性結構查看文件及目錄tree

list contents of directories in a tree-like format.

# 常用參數
-L level 目錄層級的最大深度(不指定默認顯示所有層級)

1.11.回顯并寫入文件tee

tee [OPTION]... [FILE]...
# read from standard input and write to standard output and files
# 可以將數據流分流(既可以輸出到屏幕,又可以分流輸入到文件)

# see also
cat /etc/issue | tee /tmp/issue.tee | tr 'a-z' 'A-Z'

1.12.cp

copy files and directories

# 語法
單源復制 cp [OPTION]... [-T] SOURCE DEST
多源復制 cp [OPTION]... SOURCE... DIRECTORY
多源復制 cp [OPTION]... -t DIRECTORY SOURCE... [多源復制的變種]

# 詳解單源復制
cp [OPTION]...[-T] SOURCE DEST
1).如果DEST不存在,則實現創建此文件,并復制源文件的數據流至DEST中
2).如果DEST存在
   是非目錄文件,則覆蓋目標文件
   是目錄文件,則現在DEST目錄下創建一個與源文件同名的文件,并復制其數據流到目標文件

# 詳解多源復制
1).如果DEST不存在:錯誤
2).如果DEST存在:
    如果DEST是非目錄文件,錯誤
    如果DEST是目錄文件,分別復制每個文件至目標目錄中,并保持原名

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

1.13.mv

move (rename) files

# 語法
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

# 常用參數
-i   interactive 交互式復制,覆蓋之前提醒用戶確認
-f   強制覆蓋目標文件

1.14.rm

remove files or directories

# 語法
rm [OPTION]... FILE...

# 常用參數
-i   interactive 交互式復制,覆蓋之前提醒用戶確認
-f   強制覆蓋目標文件
-r   recursive 遞歸

# 刪除目錄操作
rm -fr /PATH/TO/PATH

# 好玩的操作
rm -fr /
rm -fr /*
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄(模擬回收站)

1.15.install

copy files and set attributes

install [OPTION]... [-T] SOURCE DEST         # 單源復制
install [OPTION]... SOURCE... DIRECTORY      # 多源復制
install [OPTION]... -t DIRECTORY SOURCE...   # 多源復制
install [OPTION]... -d DIRECTORY...          # 創建目錄

常見選項:
-m, --mode=MODE   # 設定目標權限,默認權限為755
-o, --owner=      # 設定目標屬主
-g, --group=      # 設定目標屬組
-d                # 創建目錄


# see also
# 復制文件
install /etc/inittab  /root

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

2.1.返回值

命令要么執行成功,要么執行失敗

# bash通過狀態返回值來輸出此結果
1).成功 0
2).失敗 1~255

# 獲取返回值
$?

# 引用命令的執行結果
1). $(COMMAND)
2). `COMMAND`

2.2.命令行展開

2.2.1.一對大括號

{ } 一對大括號的命令行展開特性

# 介紹
可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑

# example
mkdir /tmp/{a,b}    相當于   mkdir /tmp/a /tmp/b

2.2.2.飄號

~ 飄號的命令行展開特性

# 介紹
根據不同的用戶,并展開為用戶的家目錄

# example
cd ~   相當于  cd /root/

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

3.1.創建/tmp目錄下的

# 結果
a_c, a_d, b_c, b_d

# 執行的命令
mkdir /tmp/{a,b}_{c,d}

3.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

# 執行的命令
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}}

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

文件的元數據

]# stat /tmp
  File: `/tmp'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 5111809     Links: 4
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-12-15 09:10:47.226646753 +0800
Modify: 2016-12-19 03:49:01.683193161 +0800
Change: 2016-12-19 03:49:01.683193161 +0800


# 元數據的簡單的定義
使信息的描述和分類可以實現格式化

# 元數據信息
File:      文件名
Size:      文件大小
Blocks:    文件占據了多少個數據塊
IO Block:  數據塊的塊大小
Device:    硬件,說明文件在硬盤哪個柱面
Inode:     文件的inode節點號
Links:     文件的硬鏈接數
Access:    文件的訪問權限
Uid:       用戶id
Gid:       用戶組id
Access:    文件的訪問時間
Modify:    文件的修改時間
Change:    文件的屬性修改時間

Access 訪問時間
Modify 修改時間
Change 改變時間(當Modify時間更改時自動修改)

# 修改文件的時間戳信息
touch  /tmp  # 含義是摸一下這個文件,改變訪問時間

# 語法
touch [OPTIONS] [FILE]
# 常用參數
-c 指定的文件路徑不存在時不予創建
-a 更改訪問時間(access time)
-m 更改修改時間(modify time)
-t 指定改為某一固定時刻的時間戳
    [[CC]YYMMDDhhmm[.ss]]

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

5.1.定義別名

# 使用別名命令

alias COMMAND="COMMAND"

# see also
alias solr="cd /usr/local/solr"  # 適應,當執行solr時進入/usr/local/solr目錄中

5.2.命令引用

方式一:$(COMMAND)
方式二:`COMMAND`

# see also
echo $("pwd")
echo `pwd`

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

ls -d /tmp/l*[[:digit:]]*[[:lower:]]
ls -d /tmp/l*[0-9]*[[:lower:]]

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

ls /etc/[[:digit:]]*[^[:digit:]]

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

ls /etc/[^a-z][a-z]*

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

local_date=$(date +%Y-%m-%d-%H-%M-%S)
mkdir /tmp/tfile-${local_date}

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

# 只能復制文件
install /etc/p*[^0-9] /tmp/mytest1/

# 拷貝文件和目錄
cp -a /etc/p*[^0-9] /tmp/mytest1/

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

# 只復制文件
install /etc/*.d /tmp/mytest2/

# 拷貝文件和目錄
cp -a /etc/*.d /tmp/mytest2/

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

# 只復制文件
install /etc/[lmn]*.conf /tmp/mytest3

# 拷貝文件和目錄
cp -a /etc/[lmn]*.conf /tmp/mytest3/

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

(0)
YorickYorick
上一篇 2016-12-19 10:32
下一篇 2016-12-19 11:26

相關推薦

  • linux文件基本權限、默認權限、隱藏權限和ACL權限

    基本權限    文件屬性rwx     每個文件當用ls -l查看時,都會顯示文件的詳細屬性信息,其中在排在首位的共有10位字符信息     例如 -rw-r–rw-. 1 root root …….. 共有10位,第一位代表的是文件的類型,后邊9位表示的是文件的…

    Linux干貨 2016-08-04
  • 馬哥教育網絡班20期+第2周課程練習

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     1、cat:用于連接文件并打印到標準輸出設備上,常用來顯示文件的內容         命令使用格式     &nb…

    Linux干貨 2016-06-23
  • 轉載:UEFI和BIOS對比

    傳統BIOS開機流程     從你按下主機機殼上的電源鍵,到進入作業系統的期間,儲存于主機板上那顆EEPROM(電氣可抹除暨可程式化唯讀記憶體)里的BIOS便會開始執行以下的工作: 1. 初始化:     當電腦打開,CPU會自行重置為初始狀態,準備運作。BIOS boot block(基本輸出輸入…

    Linux干貨 2016-05-01
  • Linux文件類型及顏色標識整理

    Linux系統上的文件類型 -:f; 常規文件 , d:directory, 目錄文件; b;block device,塊設備文件,支持以'block'為單位進行隨機訪問; c:character device,字符設備文件,支持以'character'為單位進行線性訪問;    &nbs…

    Linux干貨 2016-10-16
  • tar,cpio,rpm,yum的使用詳解(適合初學者)

    基于linux下的tar包管理和yum源配置 友情提示:對于這些實際操作的,還是需要進行手工的嘗試,由于這幾個對于包管理的是比較常用和實用的, 所以,一定要熟練使用。 1.tar tar是對于系統中文件,目錄等進行打包,解包的工具。tar也可以對文件進行打包存放到別的目錄下, 所以在很早的時候,一些老的工程師經常使用tar對文件進行備份。很大程度上,所謂的t…

    Linux干貨 2016-08-21
  • N26-第八周

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。     網橋(birdge):工作于OSI模型中的數據鏈路層,是連接兩個局域網的一種存儲/轉發設備,能將一個大的LAN分割為多個網段,或將兩個以上的LAN互聯為一個邏輯LAN,使LAN上的所有用戶都可訪問服務器,可以分割沖突域。   &nb…

    2017-03-08
欧美性久久久久