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
下一篇 2016-12-19

相關推薦

  • 計算機的組成及其功能。

    一、計算機的組成及其功能。 計算機,是現代一種用于高速計算的電子計算機器,可以進行數值計算,又可以進行邏輯計算,還具有存儲記憶功能。是能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。 1、運算器(Arithmetical and Logical Unit):計算機中執行各種算術和邏輯運算操作的部件。運算器的基本操作包括加、減、乘、除四則運算,與…

    Linux干貨 2016-10-30
  • N23-第二周

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     顯示指定目錄下的文件列表:ls     文件查看類命令:cat,tac,head,tail,more,less     復制命令:cp,install &…

    Linux干貨 2016-09-26
  • 關于文件查找和解壓縮

                     文件查找和解壓縮在文件系統上查找符合條件的文件,文件查找的工具有兩個,locate 和find文件查找分為:          &nbs…

    系統運維 2016-08-18
  • history命令詳解

       有效地使用命令歷史機制將會使效率獲得極大提升。history:   保存你輸入的命令歷史。 可以用它來重復執行命令。   history [-c] [-d offset] [n]   history -anrw [filename]   history …

    2017-03-26
  • 馬哥教育網絡班21期+第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。 4、復制/etc/sk…

    Linux干貨 2016-07-07
  • 推薦-MySQL存儲日志并使用Loganalyzer作為前端展示

    MySQL存儲日志并使用Loganalyzer作為前端展示 MySQL存儲日志并使用Loganalyzer作為前端展示 為什么要使用日志 本文目標 實驗拓撲圖 實驗環境 實驗步驟 syslog主機上rsyslog設置 Server1主機上rsyslog設置 Web服務器配置 總結 為什么要使用日志 在生產環境中我們可能需要一個較為完整的日志系統來查看運行中主…

    Linux干貨 2016-03-30
欧美性久久久久