命令歷史: 查看已經使用過的命令 關於歷史命令的文件 每個用戶的家目錄下的./bash_history 在關機的時候,會自動寫入一次(history -r ) 手動寫入 關於歷史命令的變數(環境變數) env //查看環境變數 set //查看更詳細的環境變數參數 HISTSIZE=1000 //數 ...
命令歷史:
查看已經使用過的命令
關於歷史命令的文件
每個用戶的家目錄下的./bash_history
在關機的時候,會自動寫入一次(history -r ) 手動寫入
關於歷史命令的變數(環境變數)
env //查看環境變數
set //查看更詳細的環境變數參數
HISTSIZE=1000 //數量
HISTCONTROL=ignoredups 忽略重覆的歷史命令
ignorespace 忽略空白開頭的歷史命令
ignoreboth 兩個都生效
history的常見操作
查看歷史命令
!# #便是數值,執行#行的命令
!String 匹配最近一次的字元串
!! 上一條命令
*!$* 上調命令的最後一個參數
ls /etc
ls !$
=esc .
命令補全
TAB鍵
命令展開——date命令
{}
linux 的目錄需要遵循什麼規則?——FHS目錄規則
屬性1 屬性2
a 1
b 2
mkdir -pv /var/{a,b}-{1,2}
date 基於date創建命令
%F CCYY-mm-dd
%T hh:MM:ss
%H hh
%D mm/dd/YY
%M MM
%S ss
練習:通過for語句創建一個月的日誌文件 2019-08-06.log
touch `date %F`.log
for I in {1..30}:do
touch `date +%Y-%m-$i`.log
done
壓縮工具
只能對文件壓縮,不能對目錄進行操作
gzip
bzip2
xz9
tar歸檔可以對目錄進行操作
-j bzip2
-J xz
-z gzip
-c create
-x extract //可以不用指定解壓工具
-f 指定文件名
-v 顯示詳細信息 verbose
-t 不解壓查看內容
tar cjvf 2018-08-*.log.bz2 2018-08-*.log
tar xvf 2018-08-*.log.bz2 -C abc
練習:編寫腳本,每天2:20備份/etc/目錄中所有文件,名稱為當天日期;並且文件為壓縮文件
crontab --20 2 * * * /root/xxx.sh
vim xxx.sh
#!/bin/bash
#
tar cJvf /var/ `date +%F`.xz /etc/*
chmod +x xxx.sh
clock / hwclock 查看硬體時鐘 (如何同步系統與硬體時鐘)
cal 日曆
命令的執行狀態
在Linux中,每一條命令執行後都會有兩個結果
命令本身放回的內容
其次,命令執行的結果狀態
$? 變數,就是用來存放命令執行狀態的變數:
0 表示成功狀態
1-255 表示失敗狀態
[$? -eq0]&&exit0||exit1
命令快捷鍵:
ctrl +I
Ctrl +c
Ctrl +u //刪除游標前的字元
Ctrl +k //刪除游標後的字元
Ctrl +a
Ctrl +e
Ctrl +w //以空格為分隔符,去刪除文件
Ctrl +r //進入一個交互界面,搜索最近一次使用的命令
alias別名
系統啟動時讀取一些特殊文件的順序
alisa cdnet="cd /etc/sysconfig/network-scriptes/" //這種方式定義的alias只能在當前shell生效
/etc/profile:定義環境變數(所有用戶)
/etc/bashrc:定義本地變數--alias
~/.bash_profile:定義環境變數(指定用戶)
~/.bashrc:定義本地變數--alias(指定用戶)
文件通配符--globbing
[文件通配符不是正則表達式]
? --任意單個字元
* -- 任意長度的任意字元
[] --指定範圍內的任意一個字元
^ --1:以什麼開頭
2:【^】指定範圍之外的任意一個字元
【^0-9A-ZA-z】
【0-9】【a-z】【A-Z】【a-zA-Z】
作業:
1.顯示/var目錄下所有以1開頭的,以小寫字母結尾,且中間出現至少一位數字的文件或目錄
ls /var/1*[0-9]*[a-z]
2.顯示/etc下,以任意一位數字開頭,且以非數字結尾的文件或目錄
ls /etc/[^0-9]*[0-9]
3.顯示/etc目錄下,以非字母開頭,後面跟了一個字母及其它任意長度任意字元的文件或目錄
ls /etc/[^[:alpha:]][[:alpha:]]*
4.複製/etc目錄下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/test目錄中;
cp /etc/m*[^0-9] /tmp/test
5.複製/etc目錄下,所有以.d結尾的文件或目錄至/tmp/test.com目錄中
cp /etc/*.d /tmp/test.com
6.
複製/etc目錄下,所有.conf結尾,且以m n r p開頭的文件或目錄至/tmp/test.com目錄中
cp /etc/[mnrp]*.conf /tmp/test.com