1. 程式人生 > >2018-11-26

2018-11-26

> 或 1>> 追加重定向 把資訊追加到檔案的結尾

或 1> 重定向符號 先清空檔案內容 追加新的內容

2>> 錯誤追加重定向 錯誤資訊被追加到檔案內容

2> 錯誤重定向 先清空檔案內容 錯誤資訊被追加到檔案內容

2018-11-26

< 或 0< 輸入重定向 從某個檔案中讀取資料

<< 或 0<< 追加輸入重定向

2018-11-26

<< 追加輸入重定向

向檔案中追加多行

cat >>/data/oldboy.txt<<EOF

I

am

studying

linux

EOF

mv:用於檔案的移動、複製或者更改名字。相關引數如下:

  1. -f :force強制的意思,如果目標檔案已經存在,不會詢問而直接覆蓋
    2.-i :若目標檔案已經存在,就會詢問是否覆蓋
    3.-u :若目標檔案已經存在,且比目標檔案新,才會更新
    注:該命令可以把一個檔案或多個檔案一次移動一個資料夾中,但是最後一個目標檔案一定要是“目錄”。
    1. mv file1 file2 file3 dir # 把檔案file1、file2、file3移動到目錄dir中
    2. mv file1 file2 # 把檔案file1重新命名為file2

rm命令:用於刪除檔案或者目錄。

  1. -f :就是force的意思,忽略不存在的檔案,不會出現警告訊息
    1. -i :互動模式,在刪除前會詢問使用者是否操作
    2. -r :遞迴刪除,最常用於目錄刪除,它是一個非常危險的引數

例如:

  1. rm -i file # 刪除檔案file,在刪除之前會詢問是否進行該操作
  2. rm -fr dir # 強制刪除目錄dir中的所有檔案

/etc/小結:
/etc/目錄為linux系統的預設的配置檔案及服務啟動命令的目錄
1./etc/sysconfig/network-scripts/ifcfg-eth0 【網絡卡配置檔案】

  1. /etc/resolv.conf 【DNS的配置檔案】
  2. /etc/sysconfig/network 【主機名配置檔案】
  3. /etc/hosts 【IP地址與域名對應關係】
  4. /etc/fstab 【開機自動掛載】
  5. /etc/rc.local 【開機自啟動】
  6. /etc/inittab 【執行級別的配置檔案】
  7. /etc/profile 【環境變數 別名】
  8. /etc/bashrc 【別名】
  9. /etc/issue 【檔案內容使用者登陸前顯示】
  10. /etc/motd 【檔案內容使用者登陸後顯示】
  11. /etc/sysconfig/i18n 【修改字符集】

第4章 找出/app/logs 下面以.log結尾的7天之前的檔案 顯示詳細資訊(ls -l) (3種方法)
1.find /app/logs/ -type f -name ".log" -mtime +7 -exec ls -l {} \;
2.find /app/logs/ -type f -name "
.log" -mtime +7|xargs ls -l

單引號 雙引號 反引號區別:

單引號 : 所見即所得 單引號裡面的內容會原封不動的輸出

找出/app/logs 下面 以.log結尾的檔案(不區分大小寫) 打包備份/tmp/log.tar.gz (2種方法)

  1. find /app/logs/ -type f -iname ".log" |xargs tar zcf /tmp/log-xargs.tar.gz
    2.tar zcf /tmp/log-kuohao.tar.gz `find /app/logs/ -type f -iname "
    .log"`

如何把/data目錄下所有包含oldboy的目錄(可能目錄的目錄的目錄裡還有oldboy目錄) 目錄都打包出來。要求:解壓打包後的目錄結構不能改變 。

  1. find /data -type d -name "oldboy" |xargs tar zcf /tmp/oldboy.tar.gz
  2. find /data -type d -name "oldboy" -exec tar zcf /tmp/oldboy.tar.gz {} +
  3. tar zcf /tmp/oldboy.tar.gz find /data -type d -name "oldboy"
    tar zcf /tmp/oldboy.tar.gz $(find /data -type d -name "oldboy")

請列出linux下面常用的打包工具並寫出相應的壓縮解壓引數。
tar zcf 建立壓縮包 或zcvf
xf 解壓 或 zxvf
tf 檢視 或 ztf
-C 解壓到指定目錄
--exclude 排除
--exclude-from或-X 根據檔案內容排除檔案
zip -r 壓縮目錄

將/data目錄下的修改時間是7天以前,並且大於100k的檔案複製到/tmp目錄下

  1. find /data/ -mtime +7 -size +100k -exec cp {} /tmp/ \;
    2.find /data -type f -mtime +7 -size +100k |xargs cp -t /tmp
    3.find /data -type f -mtime +7 -size +100k |xargs -i cp {} /tmp

現將檔案b.txt中的所有123替換成def,請問如何實現?
sed 's#123#def#g' b.txt

/var/log/messages 系統日誌
/var/log/secure 使用者登陸資訊日誌
/etc/fstab 開機自動掛載
/etc/hosts 解析主機名(域名)
/etc/rc.local 開機自啟動
/etc/profile 別名 環境變數
/var/spool/cron/root 定時任務的配置檔案

chown命令改變某個檔案或目錄的所有者和所屬的組

mkdir -p /oldboy/test 建立目錄/oldboy/test
touch /oldboy/test/oldboy{01..5}.txt 在目錄下建立5個檔案 (3)
chown oldboy.oldboy /oldboy/test/ 將目錄/oldboy/test的屬主和屬組改為oldboy (
4)

crond是linux系統中用來定期執行命令或指定程式任務的一種服務或軟體。
通過crontab我們可以在固定的間隔時間執行指定的系統指令或script指令碼。時間間隔的單位是分鐘,小時,日,月,周及以上的任意組合(注意:日和周不要組合)
2018-11-26
使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個欄位代表一項設定,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:
minute hour day month week command 順序:分 時 日 月 周

· minute: 表示分鐘,可以是從0到59之間的任何整數。
· hour:表示小時,可以是從0到23之間的任何整數。
· day:表示日期,可以是從1到31之間的任何整數。
· month:表示月份,可以是從1到12之間的任何整數。
· week:表示星期幾,可以從0到7之間的任何整數,這裡的0或7代表星期日。
· command:要執行的可以是系統命令,也可以是自己編寫的指令碼檔案。

在以上各個欄位中,還可以使用以下特殊字元 :
· 星號():代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
· 逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
· 中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
· 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如
/10,如果用在minute欄位,表示每十分鐘執行一次。