which ls
設置alias 放在~/.bashrc
修改path vi /etc/profile,source /etc/profile
ctrl u 向前刪除
ctrl k 向後刪除
ctrl d 退出 logout exit
ctrl z 暫停 fg 恢復
ctrl c 取消,中斷
ctrl s 屏幕靜止、鎖定,後臺繼續運作,只是屏幕不顯示
ctrl q 屏幕恢復、解鎖
ctrl l 清屏
ctrl a 行首
ctrl e 行尾
mkdir -p
rmdir -p
cp -r 複製目錄
cat -A 查看txt
mv 沒有r
less j k 、ctrl+b f、g G、/ n N、?
chmod -R 權限繼承
chmod u= g= o= 其中不要帶有-,系統認爲減號
chown user:group :或 .
!ls 最近的一條ls命令
!301 history的id
chown -R 權限繼承
chattr + - a不能刪除rm和更改vi,mv 只能追加echo "11">>1.txt
chattr + - i保護,什麼都不能
lsattr -R
lsattr -d
chmod u+s S 對普通用戶有限制,有root無效,注意o權限
!$ 上一條命令最後一個
G 擴展組usermod useradd 該組有用戶的話,也可以刪除
gid最大一個往後排
usermod -L 鎖定用戶無法登錄,-U解鎖,可用useradd所有參數 u g G s d
mkpasswd yum install -y expect -l 12 -s 0 -c 4 -C 4 -d 4
echo "gce@1234" | passwd --sdtin aming 明文
echo -e "123456\n123456" | passwd aming -e識別\n爲換行,不加-e不識別,新密碼123456
su - -c "mkdir /tmp/dir123" aming
visudo
root ALL=(ALL) ALL
aming 192.168.1.0/24=(root) NOPASSWD: /bin/ls,command
用戶名&組名 來源 角色 命令,絕對路徑,逗號分隔,設置不需要密碼
sudo ls /root/ 需密碼,也可以不輸入密碼
sudo -l 查看擁有哪些權限
inode 屬性(大小,路徑,權限),inode分配完就算分區有空間,也無法創建文件
du -sh文件佔用磁盤空間的大小、塊的大小和ls -lh文件本身大小,顯示大小不同,因分區塊4K
du -sb和ls -lb顯示大小相同
cat /etc/filesystems
mke2fs -t/T ext4 -b 2048 -m 1 -L aming /dev/sdb1 比mkfs.ext4參數多
塊大小 保留 標籤
df -T 查看分區類型
umount -l 強制卸載
/etc/rc.local 自動掛載命令
blkid uuid label ext4
defaults= rw,suid,dev,exec,auto,nouser,async
0 備份log
1 不備份log,意外斷電可恢復資料
1 修復,只能根分區
2 修復,優先級低一點
0 不修復,不重要或者分區太大,否則會影響啓動速度
mount -a 加載fstab中所有掛載
yum install -y vim-enhanced
vim +10 !$ 光標在第10行
一般模式
j k 下上 h k左右 2j下2行
ctrl f 下翻頁 crtl b上翻頁 pageup pagedown
gg 首行 G行尾 100G
$行尾 0 行首(含行首的空白字符) ^行首(非空白)
x 先後刪除 X 向前刪除 4x 剪切
dd 刪除整行,剪切 3dd
p 向下粘貼 P 向上粘貼
u 撤銷,最多撤銷50次 ctrl r 反撤銷
yy 複製整行 3yy
v 可視模式 左右 上下 選擇 與x p合用
編輯模式
i 插入
esc 退出
I 光標在行首
a 光標在後面
A 光標在行尾
o 光標下一行
O 光標上一行
命令模式
:wq!
:set nu 顯示行號
:set nonu 取消行號
/keyword 查找,高亮,n下找 N上找
?keyword 查找,高亮,n上找 N下找
:1,$s/A/B/g 沒有g,只替換每行的第一個,$所有行
:%s/A/B/g %=1,$ 整個文件
///脫義符號\,識別/
#///#///# @///@///@ 不會產生歧義
:nohl 取消高亮
gzip file 壓縮後源文件刪除,只能壓縮文件,只留下file.gz 紅色 -1 -9 級別越高,速度越慢,比率越大,默認6
gzip file.gz 解壓後源文件刪除
bzip2 file 壓縮後源文件消失,只留下file.bz2 紅色,默認9
bzip2 -d file.bz2 解壓後源文件刪除
bzcat和zcat xzcat查看壓縮內容
gzip和bzip 都不能壓縮目錄
xz gzip bzip用法差不多
yum install -y xz gzip bzip2 zip unzip
zip file.zip file 源文件存在,可以壓縮文件和目錄
zip -r file.zip file1 file2 同時壓縮多個目錄
unzip file.zip
tar --exclude file3 --exclude file4 -cvf file.tar file1 file2 dir1 源文件存在
tar -tf file.tar 查看
tar -xvf file.tar 解包
tar -C -xvf file.tar 指定解包路徑
tar支持gzip bzip2 xz
tar -zcvf 1.tar.gz 111 22 源文件存在
tar -C /tmp/ -zxvf 1.tar.gz 源文件存在,直接覆蓋
tar -tf 1.tar.gz
tar -jcvf 1.tar.bz2 111 222
tar -tf
tar -jxvf
tar -Jcvf 1.tar.xz 111 222
tar -tJf 查看
tar -Jxvf
rpm -ivh 全名
rpm -ivh --nodeps 全名,不依賴,少用
rpm -ivh --force 全名,強制安裝
rpm -e 包名
依賴的時候,同時安裝或卸載
rpm -Uvh 全名,升級
rpm -q 包名
rpm -qa 查詢所有已安裝
rpm -qa 包名 查詢包的全名
rpm -qa | grep vim 例外,可以查keyword
rpm -qa | grep 'vim*'
rpm -qi 包名,詳細信息
rpm -ql 包名,安裝了哪些文件
rpm -qf 絕對路徑,文件屬於哪個包
rpm -qf `which vim`
yum list yum源 /etc/yum.repos.d/CentOS-Base.repo
yum list | grep vim @符號屬於已安裝過的
yum search 'vim'
yum remove 包名 不推薦加y,防止依賴刪除
yum update 包名 不推薦升級
yum upgrade 包名
yum groupinstall "包名" 安裝套件
yum grouplist | grep -i chinese
yum groupremove "包名"
yum install -y yum-plugin-downloadonly 下載插件
yum install vte --downloadonly --downloaddir=/tmp/ 下載rpm未安裝過的rpm包
yum reinstall vte --downloadonly --downloaddir=/tmp/ 下載已安裝的rpm包
源碼包安裝
yum install -y wget
/usr/local/src
wget http
tar
cd
cat install
cat readme
./configure --help 參看配置參數,模塊
./configure --prefix=/usr/local/apache2 指定安裝路徑
echo $? 返回碼 0代表OK
make 編譯,把源碼變成語言
make install 翻譯成系統識別的文件
ls /usr/local/apache2 查看生成目錄
rm -rf /usr/local/apache2 卸載,重新安裝,最好刪除壓縮目錄,重新解壓
history
cat ~/.bash_history 用戶操作命令歷史,用戶不同,歷史不同,默認1000條
echo $HISTSIZE
!! 上一條命令
!$ 上一條命令最後一個參數
!n 運行第n條命令
!c 最近一次以c開頭的命令
? 任意一個字符
jobs 查看ctrl z的命令
fg 優先調用+號,前臺
bg 後臺
env 查看系統變量
set 查看系統變量,包含自定義變量,更詳細
自定義變量 a=1;b=2,只在當前shell生效
變量名不能數字開頭,可以含有_,可以開頭_,不推薦大寫,避免用命令,關鍵字,系統變量大寫
c='ls /tmp/',*#也需要用單引號
d=`which vim` 命令使用反引號,引用命令的結果
e="$a"8 變量用雙引號
export a=1 全局申明,在其他bash,shell中生效
unset e 取消變量
vim /etc/profile 全局配置
source /etc/profile 申明,會加載/etc/profile.d/下的所有*.sh,自定義環境變量不推薦直接修改profile
vim /etc/bashrc PS1 UMASK 全局配置
echo $PS1 w:絕對路徑
vim ~/.bash_profile 用戶配置文件 會調用.bashrc
vim ~/.bashrc 用戶配置文件alias 用戶登錄、打開新shell時執行
[0-9a-zA-Z]
cut -d: -f 3,4 /etc/passwd 分割,顯示第三、四段
cut -c 1-10 /etc/passwd 顯示第一個到十個字符
sort 默認asic排序
sort -t: -k3 -nr /etc/passwd n按數字 3,5 3到5,r倒序,字母比數字小,-u 去重
wc -l 行數
wc -w word數量,空白分隔
wc -m 字符數量,含換行符,空格
uniq 必須相鄰的行才能去重
uniq -c 重複次數
sor file | unqic -c
tee 重定向
echo "123456" | tee 1.txt 會顯示結果 與 > 的區別
tr 替換
echo "abcd" | tr 'a-z' 'A-Z' 一一對應 ‘ab’ 'AB'
split 切割
split -b 50m 1.txt 按大小 默認單位b,可以省略 (x)aa xab
split -l 100 1.txt 按行
&& 並且 成功-執行 不成功-不執行
|| 或者 成功-不執行 不成功-執行
; (不)成功-執行
grep --color 'root' /etc/passwd 高亮
echo "alias cg='grep --clort'" >> ~/.bashrc
-n 顯示行數
-c 計數幾行
-v 不包含keyword
-A 2 多顯示下兩行
-B 2 多顯示上兩行
-C 2 多顯示上下兩行
-r 'root' /etc/* 目錄下搜索關鍵字,含文件目錄名字,內容
-rh 不顯示最前面目錄路徑
cg '[0-9]' 1.txt
cg '[a-zA-Z]' 1.txt
cg -v '[a-zA-Z]' 1.txt 不包含
cg '^[a-z]' 1.txt 以字母開頭
cg '[^0-9]' 1.txt 不包含純的數字,不包含空行
cg '^[^0-9]' 1.txt 不以數字開頭的行,不包含空行
cg '^$' 1.txt 顯示空行
cg 'r.o' 1.txt 任意一個字符,包含空格,特殊符號
cg 'r*o' 1.txt 0個或多個前面的字符 o也符合
cg 'r.*o' 1.txt r開頭o結果都算,中間不管什麼,任意個字符
cg 'r\?o' 1.txt 脫義字符 ==cg -E 'r?o' 0個或1個前面的字符
grep -E ==egrep
egrep 'r+o' 1.txt 1個或多個前面的字符