目錄
- 前言
- alias / unalias 命令別名
- cd 切換目錄
- cp 複製文件或目錄
- cat 查看文件內容
- chage 設置密碼有效期
- chown 更改文件所屬
- chmod 設置文件rwx權限
- chattr / lsattr 隱藏屬性
- crontab 定時任務
- df 磁盤使用情況
- date 系統時間 / hwclock 硬件時鐘
- diff 文件比較
- echo 標準輸出
- find / locate 文件搜索
- free 查看內存使用
- head 查看文件前面的內容
- history 命令歷史
- ip 網絡配置管理
- kill 結束進程
- ln 創建鏈接(快捷方式)
- ls 查看目錄中的內容
- less 分頁查看文件
- mv 剪切 / 重命名 文件或目錄
- mkdir 創建目錄
- ps 查看進程
- pwd 显示當前目錄
- passwd 修改密碼
- rm 刪除文件或目錄
- su 切換用戶
- stat 查看文件詳細信息
- sort 排序 / uniq 去重
- split 分割文件
- tar 打包
- top 動態查看進程
- tail 查看文件末尾內容
- touch 修改文件的時間屬性或創建空文件
- useradd / groupadd 用戶和組管理
- vi / vim 文本編輯器
- wc 統計字數行數
- xargs 參數傳遞
- yum 紅帽系列包管理工具
- zip / unzip 壓縮與解壓
前言
- 以下命令測試環境為
CentOS7.8
- 使用的
shell
為系統默認的bash
- Linux下是區分大小寫的,這點和Windows不同
- Linux大部分命令語法為
命令 [選項] [參數]
,我所介紹的選項為常用選項並不包含全部
alias / unalias 命令別名
alias
命令用於給指令設置一個別名,unalias
命令用於取消設置
-
可以給長命令起一個簡單的別名便於使用,如:
alias ens33="vi /etc/sysconfig/network-scripts/ifcfg-ens33"
-
取消已設置的別名命令
unalias ens33
-
可以避免危險操作,如系統默認的命令rm
mv
cp
等,都是通過alias
加了-i
參數的
# 查看所有的使用別名的命令
[root@God ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
-
在命令前加\
或者使用命令全路徑可忽略使用別名
# 不進行詢問直接刪除mail.log文件
\rm /var/log/mail.log
或
/usr/bin/rm /var/log/mail.log
-
在命令行通過alias
和unalias
設置或取消的別名都是暫時性的,僅作用於當前登錄的會話。如果想要永久生效,可以在~/.bashrc
文件添加別名設置
cd 切換目錄
cd
命令用於切換工作目錄至指定的目錄,可用相對路徑和絕對路徑
cp 複製文件或目錄
cp
用來複制文件或目錄到指定位置
cat 查看文件內容
cat
命令適合查看少量內容,並可將多個文件連接到一起進行標準輸出,當文本數據內容量過大時,推薦使用less
或 more
進行查看
-
語法
cat [選項] 文件1 [文件2 文件N]
-
選項
-n
輸出時显示行號
-s
當遇到有連續兩行以上的空白行,就替換成一個空白行
# 查看resolv.conf的內容
cat /etc/resolv.conf
# 將/etc/resolv.conf和/etc/hosts兩個文件連接到一起進行標準輸出,並显示行號
cat -n /etc/resolv.conf /etc/hosts
-
cat
還可以配合重定向將標準輸入寫到文件中
[root@God ~]# cat > demo.txt << EOF
> 我在命令行打上 cat > demo.txt << EOF
> 在 > 後面寫的東西都能寫入到文件中
> 寫完了所有內容后,在最後單獨寫個EOF就可以了
> EOF
[root@God ~]# cat -n demo.txt
1 我在命令行打上 cat > demo.txt << EOF
2 在 > 後面寫的東西都能寫入到文件中
3 寫完了所有內容后,在最後單獨寫個EOF就可以了
chage 設置密碼有效期
chage
命令本質是修改通過/etc/shadow
文件中的內容來設置賬號密碼有效期限的
chown 更改文件所屬
chown
命令可以更改Linux下文件或目錄的所屬用戶、所屬組,Linux下一切皆文件,而文件必須有所屬
chmod 設置文件rwx權限
chmod
命令可用於更改文件的r
讀、w
寫、x
執行權限, 通過ls -l
或stat
命令可查看文件的權限-rw-r--r--
第一位表示文件類型,后9位每三位為一組,分別表示所屬用戶、所屬組、其他用戶的權限。
-
語法
chmod [選項] rwx的權限分值 文件或目錄
chmod [選項] 身份標識(+|-)(r|w|x) 文件或目錄
- 身份標識 u=user所屬用戶 , g=group所屬組, o=other其他用戶, a=all(u+g+o)所有用戶
-
選項
-R
遞歸處理,將指定目錄下所有文件及子目錄一併處理
# 更改文件/local/myscript.sh的權限
# 文件擁有者權限=7(r+w+x) 同組用戶權限=5(r+x) 其他用戶權限=5(r+x)
chmod 755 /local/myscript.sh
# 去掉其他用戶對文件/local/myscript.sh的寫權限
chmod o-w /local/myscript.sh
# 去掉其他用戶對文件/local/myscript.sh的寫權限,給同組用戶加上執行權限
chmod o-w,g+x /local/myscript.sh
# 更改目錄/local的權限
chmod -R 754 /local
chattr / lsattr 隱藏屬性
chattr
命令可以用來修改文件或目錄的隱藏屬性,只有root用戶可以使用
lsattr
命令可以查看隱藏屬性
crontab 定時任務
crontab
命令用來管理需要周期性執行的任務,與Windows下的計劃任務類似,依賴於crond
服務執行,定時任務的配置文件一般以用戶為單位,放在/var/spool/cron
目錄中,執行日誌是/var/log/cron
。crontab
通過cron 表達式
來進行定時任務的配置
- 避免資源分配不均勻,即多個定時任務在同一時間點執行時,盡量錯開
- 取消不要的輸出選項,將執行結果
>> /dev/null
中,避免一直發郵件
- 一般情況下周與日、月不可同時共存
anacron
是可喚醒關機期間的工作任務的配置,有檢測機制,針對不24小時開機的服務器,需要的自行百度
# cron表達式 分時日月周:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# * 代表任何時刻
# , 代表分隔時段
# - 代表時間範圍
# /N N為数字,表示執行幾次
-
crontab
常用命令
# 显示當前用戶crontab配置
crontab -l
# 編輯當前用戶crontab配置
crontab -e
# root用戶可以幫其他用戶新建/刪除crontab配置
crontab -u guest
-
crontab
配置示例
# 每1分鐘執行一次
* * * * * echo $(date) >> /dev/null
# 每5分鐘執行一次後面的命令
*/5 * * * * echo $(date) >> /local/my_crontab.txt
# 每2小時執行一次後面的命令
* */2 * * * echo $(date) >> /local/my_crontab.txt
# 在3:00與10:00的時候執行一次
* 3,10 * * * echo $(date) >> /local/my_crontab.txt
# 在10:00到22:00之間每2小時執行一次
* 10-22/2 * * * echo $(date) >> /local/my_crontab.txt
# 在21:00到21:30之間每5分鐘執行一次
0-30/5 21 * * * echo $(date) >> /local/my_crontab.txt
# 每周一0點執行一次
0 0 * * 1 echo $(date) >> /local/my_crontab.txt
# 每年的5月20日00:00分都會給rose發一封情書郵件
0 0 20 5 * mail rose < /home/jack/lover.txt
df 磁盤使用情況
df
命令用於显示文件系統的磁盤使用信息
date 系統時間 / hwclock 硬件時鐘
linux系統有兩個時鐘:一個是由主板電池驅動的硬件時鐘(Real Time Clock),也叫做RTC或者叫CMOS時鐘。當操作系統關機的時候,用這個來記錄時間,但是對於運行的系統是不用這個時間的;另一個時間是系統時鐘(System clock)也叫內核時鐘或者軟件時鐘,是由軟件根據時間中斷來進行計數的,內核時鐘在系統關機的情況下是不存在的,所以,當操作系統啟動的時候,內核時鐘是要讀取RTC時間來進行時間同步。並且在系統關機的時候將系統時間寫回RTC中進行同步。
date
命令比較常用,可以用來显示和設定系統的日期和時間,在显示方面還可以自定義格式
-
語法
date [+格式] [選項]
-
格式
%Y
年 {0000..9999}
%m
月 {1..12}
%d
日 {01..31}
%H
時 {00..23}
%M
分 {00..59}
%S
秒 {00..59}
%N
納秒 {000000000..999999999}
%u
星期 {1..7}
%j
一年的第多少天 {001..366}
%F
完整的日期,相當於 %Y-%m-%d
%T
完整的時間,相當於 %H:%M:%S
%R
鐘錶上显示的時間, 相當於 %H:%M
%s
從1970-01-01 00:00:00 UTC 到現在的秒數
# 格式化显示當前系統時間
[root@God ~]# date "+%F %T.%N"
2020-06-22 20:34:36.179451922
# 显示今天是今年的第多少天
[root@God ~]# date "+%j"
174
# 設置系統時間為2012-12-12 12:12:12
[root@God ~]# date -s "2012-12-12 12:12:12"
Wed Dec 12 12:12:12 CST 2012
[root@God ~]# date
Wed Dec 12 12:12:12 CST 2012
-
選項
-d DATESTR
該選項非常強大,可以根據DATESTR的描述显示時間
-s DATESTR
根據DATESTR的描述,設置系統時間,把-d
換成-s
即可
# 年year 月month 日day 時hour 分min 秒seconds
# 显示1天前的時間
date -d "-1day"
# 显示100天後的時間
date "+%F %T" -d "+100day"
# 显示新中國成立100周年是哪天
date "+%F" -d "1949-10-01 +100year"
# 設置日期為新中國成立100周年那天
date "+%F" -s "1949-10-01 +100year"
-
硬件時鐘hwclock
的常用命令
# 显示硬件時鐘時間
hwclock
# 將當前系統時間寫入硬件時鐘
hwclock -w
# 以系統時鐘為準,同步硬件時鐘
hwclock --systohc
# 以硬件時鐘為準,同步系統時鐘
hwclock --hctosys
# 將硬件時鐘設置成指定的時間
hwclock --set --date="2008-08-08 08:08:08"
-
使用ntpdate
命令將本機時間與時間服務器的時間進行同步,沒有這個命令使用yum install ntpdate
安裝
# 將本機時間與阿里雲時間服務器時間進行同步 ntp[1-7].aliyun.com
ntpdate ntp7.aliyun.com
diff 文件比較
diff
命令可以快速比較兩個文件或目錄是否有不同
echo 標準輸出
echo
命令用於打印字符串或變量的值,在shell腳本中極為常用,可以做出進度條效果,也可以打印彩色文字,詳情自行百度
-
選項
# 轉義:開啟與不開啟的區別
[root@God test]# echo "Hello \n World"
Hello \n World
[root@God test]# echo -e "Hello \n World"
Hello
World
# echo 單引號與雙引號的區別
[root@God test]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@God test]# echo '$PATH'
$PATH
[root@God test]# echo "Hello,World!"
-bash: !": event not found
[root@God test]# echo 'Hello,World!'
Hello,World!
find / locate 文件搜索
find
支持各種姿勢的查找方式,提供了相當多的查找條件,功能很強大。也正因如此它的選項也很多,有時使用起來也是比較耗費系統資源的,特別是直接從 /
下查找的時候,在實際使用中應盡量縮小查找目錄範圍,把/
替換成你指定的查找路徑即可
locate
命令用來查找文件或目錄,要比find
命令快很多,原因在於它不搜索具體目錄,而是通過/var/lib/mlocate/mlocate.db
自身創建的數據庫進行搜索,這個數據庫含有本地所有文件信息。每天自動更新一次庫中的數據,有時剛創建的文件使用locate
搜索不到時就是因為庫中的數據沒有及時更新,為了避免這種情況,在使用locate
命令之前可以使用updatedb
命令手動更新。如果沒有locate
命令,則需要安裝一下yum -y install mlocate
-
語法
locate [選項] 查找條件 # 查找條件支持通配符和正則表達式
-
選項
-c
只显示找到的數量
-i
忽略大小寫
-r
使用基礎正則表達式
--regex
使用擴展正則表達式
# 使用前最好先更新一下數據庫
updatedb
# 查找包含 myfile 的文件和目錄
locate myfile
# 查找以myfile開頭的文件和目錄
locate myfile*
# 查找以myfile結尾的文件和目錄
locate *myfile
# 查找文件名為 1.txt 的文件
locate -r "/1.txt$"
free 查看內存使用
free
命令可以显示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩衝區內存
head 查看文件前面的內容
head
命令用於查看文件頭部或行內頭部的內容
-
語法
head [選項] 文件
-
選項
-n N
N為数字,表示前N行
-c N
N為数字,表示行內的前N個字節。UTF-8編碼中一個字母佔1字節,一個漢字佔3字節
# 显示前100行內容
head -n 100 /local/
# 显示前5個字節的內容
echo "Hello,World" | head -c 5
history 命令歷史
history
命令用於記錄和显示你在命令行敲過的每一條命令,相鄰的重複命令默認會合併成一個。命令歷史記錄太多會讓系統變得不安全,可以根據自己的需求自定義以下環境變量進行限制
# 記錄命令歷史的文件
HISTFILE=/root/.bash_history
# 記錄命令歷史的文件最大記錄條數
HISTFILESIZE=1000
# 內存中命令歷史的最大記錄條數
HISTSIZE=1000
# 可以通過添加HISTTIMEFORMAT環境變量,記錄命令執行時間
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
ip 網絡配置管理
ip
命令作為iproute2
工具包的核心命令,它是linux下管理網絡和流量控制的工具包,旨在替代老牌的工具鏈net-tools
,即ifconfig, arp, route, netstat
等命令。net-tools
通過procfs(/proc)
和ioctl
系統調用去訪問和改變內核網絡配置,而iproute2
則通過netlink
套接字接口與內核通訊。拋開性能而言,net-tools
的用法給人的感覺是比較亂,而iproute2
的用戶接口相對net-tools
來說相對來說,更加直觀。比如,各種網絡資源(如link、IP地址、路由和隧道等)均使用合適的對象抽象去定義,使得用戶可使用一致的語法去管理不同的對象。如今很多系統管理員依然通過net-tools
配置管理網絡,但自2001年起,Linux社區已經對齊停止維護。同時,一些Linux發行版比如Arch Linux和CentOS/RHEL 7則已經完全拋棄了net-tools
,只支持iproute2
。如果你仍在使用net-tools
,而且尤其需要跟上新版Linux內核中的最新最重要的網絡特性的話,那麼是時候轉到iproute2
的陣營了。原因就在於使用iproute2
可以做很多net-tools
無法做到的事情。ip
命令非常強大,如果要完全運用的話估計能寫一本書了。這裏就隨用隨加了,需要深入自行查閱官方文檔。
-
語法
ip [選項] 對象 {命令}
ip
命令的選項不支持連着寫,每個都要加-
並用空格分隔
-
選項
-
對象
address
IP協議設備
link
網絡設備
route
路由表
- 所有對象的名稱均支持完整寫法和縮寫,如
address
可寫成addr add a
# 查看IP地址
ip -c addr
kill 結束進程
kill
命令可以發送一個信號SIGTERM
默認為15給進程,可將指定程序終止。程序或工作的編號可以利用ps
命令和jobs
命令查看
ln 創建鏈接(快捷方式)
ln
命令可以為文件或目錄創建一個鏈接(link),鏈接可分為兩種:硬鏈接和軟鏈接。軟鏈接相當於windows下的快捷方式
ls 查看目錄中的內容
ls
命令用於显示指定工作目錄下之內容(列出目前工作目錄所含之文件及子目錄)。ll
命令是系統自帶的一個別名命令,主要用於進行長列表显示內容
less 分頁查看文件
less
是對文件或其他輸出進行分頁显示的工具,功能十分強大,而且不會一開始就加載整個文件,在性能和用法上比more
更加的有彈性。使用less
命令打開的內容可以使用各種功能按鍵來操作,個人感覺完全可以替代more
,所以有人說less is more
,相比於more
,我更喜歡用less
。
mv 剪切 / 重命名 文件或目錄
mv
命令用來為文件或目錄重命名或移動文件或目錄(剪切)
mkdir 創建目錄
mkdir
命令用來創建目錄
-
語法
mkdir [選項] 目錄
-
選項
-m
創建目錄的同時設置權限
-p
如果父目錄不存在,則創建
# 創建目錄/local/script,如果目錄/local不存在,會報錯
mkdir /local/script
# 創建目錄/local/script,如果目錄/local不存在,則創建
mkdir -p /local/script
# 創建目錄/local/script,如果目錄/local不存在,則創建,並給script目錄設定755的權限分數
mkdir -pm 755 /local/script
ps 查看進程
ps
命令用於显示當前進程的狀態,這個狀態是當前那些進程的快照,如果想要動態查看進程,請使用top
命令,常用來通過管道命令搭配grep
命令進行查詢,然後通過kill
命令,刪除不需要的進程
pwd 显示當前目錄
pwd
用於显示當前所在的路徑,加-P
可显示真實路徑,而非鏈接路徑
[root@God /]# ll -d /sbin
lrwxrwxrwx. 1 root root 8 Jun 21 11:20 /sbin -> usr/sbin
[root@God /]# cd sbin/
[root@God sbin]# pwd
/sbin
[root@God sbin]# pwd -P
/usr/sbin
passwd 修改密碼
passwd
可以用來更改用戶的密碼,還可以鎖定與解鎖用戶
rm 刪除文件或目錄
rm
用於刪除文件或目錄,生產服務器執行刪除命令前一定要備份
su 切換用戶
su
命令用於切換當前用戶,除了root外,需要輸入該用戶的密碼
su
命令和su -
命令最大的本質區別就是:前者只是切換了root身份,但Shell環境仍然是普通用戶的Shell;而後者連用戶和Shell環境一起切換成root身份了。只有切換了Shell環境才不會出現PATH環境變量錯誤。su
切換成root用戶以後,pwd
一下,發現工作目錄仍然是普通用戶的工作目錄;而用su -
命令切換以後,工作目錄變成root的工作目錄了。用echo $PATH
命令看一下su
和su -
以後的環境變量有何不同。以此類推,要從當前用戶切換到其它用戶也一樣,應該使用su -
命令。
# 切換到用戶執行命令,命令執行完在自動切換回來
[root@God ~]# su jet -c ls
ls: cannot open directory .: Permission denied
[root@God ~]# su - jet -c ls
1.txt
stat 查看文件詳細信息
stat
命令可以查看文件的詳細信息
sort 排序 / uniq 去重
sort
命令用於對文本內容或者是對其他命令的輸出進行排序显示。
uniq
命令用於去除重複的行,一般與sort
搭配使用
split 分割文件
split
可以將大文件分割成若干個小文件
-
語法
split [選項] 文件 前綴
-
選項
-d
給文件添加数字後綴
-b SIZE
根據大小進行分割,可以添加單位(b|k|m|g)等
-l N
N為數字錶示行數,按照行數進行分割
# 將catalina.out按照300m的大小進行分割,分割的文件會以catalog00,catalog01,catalog02的方式來建立
split -db 300m catalina.out catalog
# 將分割后的若干個小文件在還原
more catalog* >> catalina.out
tar 打包
tar
命令用來打包或壓縮文件,選項相當多。一般只打包不壓縮的文件以.tar
結尾,通過gzip
進行打包壓縮的文件以.tar.gz
結尾,通過bzip2
進行打包壓縮的文件以.tar.bz2
結尾
top 動態查看進程
top
命令可以實時的查看系統運行的整體情況,是一個綜合了多方信息監測系統性能和運行信息的實用工具。
tail 查看文件末尾內容
tail
命令和head
命令相反,用於查看文件末尾的內容,而且可以實時刷新
touch 修改文件的時間屬性或創建空文件
touch
命令用於修改文件或者目錄的時間屬性,若文件不存在,則創建一個新的空文件。Linux下的三個時間屬性概念分別是atime(access time)
讀取時間 、 mtime(modify time)
修改時間、ctime(change time)
,注意ctime
不是create time
。實際工作中使用touch
修改這些時間屬性的需求極少,相反大多數是用來創建一個或多個空文件。有點喧賓奪主的意思~
-
語法
touch [選項] 文件或目錄
-
選項
-a
修改文件或目錄的讀取時間
-m
修改文件或目錄的修改時間
-t STAMP
指定時間戳,格式為[YYYY]MMDDhhmm[.ss]
-c
如果文件不存在,不要創建文件
# 使用{}可一次性創建多個空文件,如 {1..10} {a..z} {1,3,5,7,9}
# 創建一個空文件
touch olympic.txt
# 創建99空文件
touch olympic{1..99}.txt
# 修改文件的修改時間 mtime
touch -cmt 200808080808.08 olympic.txt
useradd / groupadd 用戶和組管理
Linux系統是一個多用戶多任務的分時操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。用戶的賬號一方面可以幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助用戶組織文件,併為用戶提供安全性保護。每個用戶賬號都擁有一個唯一的用戶名和各自的密碼。用戶在登錄時鍵入正確的用戶名和密碼后,就能夠進入系統和自己的家目錄。
-
添加用戶
# 添加一個普通用戶,不指定組的話會自動創建一個同名組
useradd jack
# 添加一個普通用戶,並指定現有的組(組必須先存在)
useradd -g root jet
# 添加一個系統用戶,並不讓其登錄 -r 代表系統用戶,系統用戶不會有家目錄
useradd -r -s /sbin/nologin rose
-
刪除用戶
# 只刪除用戶
userdel jack
# 刪除用戶,並刪除該用戶的家目錄(包括目錄中的內容)
# 家目錄外的用戶所屬文件會替換成用戶ID,當有新的用戶使用這個ID時,該文件自動歸屬新用戶
userdel -r jack
-
修改用戶
# 修改用戶的初始用戶組,通過名稱修改
usermod -g root jack
# 修改用戶的初始用戶組,通過GID修改
usermod -g 888 jack
# 相當於passwd -l,鎖定用戶
usermod -L jack
# 相當於passwd -u,解除鎖定
usermod -U jack
# 禁止用戶登錄
usermod -s /sbin/nologin jack
# 修改用戶ID
usermod -u 888 jack
-
查看用戶
# 查看當前用戶
id
# 查看當前登錄的用戶
w
# 查看所有的用戶
cat /etc/passwd
cat /etc/passwd | cut -d ':' -f 1
-
添加用戶組
# 建立一個一般用戶組
groupadd mygroup
# 建立一個系統用戶組
groupadd -r admingroup
-
刪除用戶組
# 刪除用戶組
groupdel admingroup
-
修改用戶組
# 修改組ID
groupmod -g 888 mygroup
# 修改組名稱 CIA為新名稱
groupmod -n CIA mygroup
-
查看用戶組
cat /etc/group
vi / vim 文本編輯器
vi
和vim
用法基本一致,它們的關係有些類似於Windows下notepad與notepad++的關係,不過vim
有時默認沒有安裝,需要yum -y install vim
手動安裝一下。因為vim
相比vi
,功能更強大,又有語法高亮等功能。所以個人還是習慣並推薦使用vim
。下面介紹的vim
的使用方法,通常在vi
上同樣適用,網上介紹vim
使用的方式基本上就是說在三種模式下使用總結,即命令模式、輸入模式、底線命令模式,介紹十分詳盡,簡直快把整個vim
的幫助給弄下來了。我這裏介紹的常用操作為單位,不是很全,但日常使用應該足夠了。
-
打開文件
# 打開一個文件
vim /tmp/yum.log
# 按 ctrl+w 然後按 上下左右鍵 可在窗口之間切換
# 打開多個文件,縱向窗口分割,左右一邊一個窗口
vim -O /etc/hosts /etc/hosts.bak
# 打開多個文件,橫向窗口分割,上下一遍一個窗口
vim -o /etc/hosts /etc/hosts.bak
-
編輯文本
- 打開文件后,按
i
鍵可在光標處插入內容;按o
鍵可在光標處的下一行插入內容。此時底部會显示-- INSERT --
字樣,按Esc
鍵可退出編輯模式
-
快速定位
: set nu
显示行號, 按 :
然後輸入set nu
敲回車
: set nonu
取消显示行號
: N
N為数字,表示行號,按 :
然後輸入11
,敲回車即可快速移動光標到第11行,輸入$
則移動到最後一行
N%
N為数字,表示百分比,比如按58
然後按一下%
,即可移動光標到文件58%的部分
H | M | L
按這三個鍵可快速移動光標到屏幕的頂部、中間、底部位置
ctrl+u
往上翻半頁
ctrl+d
往下翻半頁
↑↓←→
移動光標
Home/End
移動光標到行首或行末
PageUp/PageDown
翻頁
-
快速編輯
N yy
N為数字,複製光標所在行以下的N行,默認N為1,即當前行。如複製 20 行,就按20,然後按yy
就複製了
N dd
和 yy
用法一樣,只不過它是剪切。所以它也能當刪除使用
p
在光標所在行的下一行粘貼剛複製或剪切的內容
u
按u
鍵,撤銷剛才的操作
ctrl+r
反撤銷
v
進入視圖模式,可通過上下左右移動光標選擇一片文本,此時底部會显示-- VISUAL --
字樣(按Esc
鍵可退出視圖模式)然後按y
複製或按d
剪切,按p
在光標處後面粘貼
V
和v
一樣,只不過是以行為單位
ctrl+v
和v
一樣,只不過是以列為單位,類似於在notepad++中,按住Alt選文字
-
查找
/ KEYWORD
按/
進入查找,在底部/
的後面輸入想查找的內容,按回車搜索,然後按n
往下繼續查找,按N
往上查找
-
替換
:%s#OLD#NEW#gic
個人習慣先按:%s###g
,然後移動光標到OLD位置輸入要替換的字符串,在移動光標到NEW位置,輸入新字符串,敲回車進行文字替換,%
表示全文,不加代表當前行,用10,20
替換百分號則表示替換10到20行;後面的gic
, g
表示全局替換不加只替換每行的第一個;i
表示忽略大小寫,c
表示在替換前進行確認,需要哪個加哪個
-
退出和保存
Esc
當你進入編輯模式、命令模式等其他模式時,都可按Esc
鍵退出
:w
保存
:wq
保存並退出
q!
強制退出不保存
wc 統計字數行數
wc
命令可以統計字節數、行數、單詞數
xargs 參數傳遞
xargs
是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具,它可以將管道或標準輸入的數據轉換成命令行參數,也能夠從文件的輸出中讀取數據。它能夠捕獲一個命令的輸出,然後傳遞給另外一個命令,一般與管道在一起使用
# 找到修改日期在7天前的日誌,並將其刪除
find /local/server -name "*.log" -mtime +7 | xargs rm -rf
yum 紅帽系列包管理工具
yum
,是Yellow dog Updater, Modified 的簡稱,是杜克大學為了提高RPM 軟件包安裝性而開發的一種軟件包管理器,適用於Redhat系列的系統。用python寫成,yum
的宗旨是自動化地升級,安裝/移除rpm
包,收集rpm
包的相關信息,檢查依賴性並自動提示用戶解決。yum
主要功能是更方便的添加/刪除/更新rpm
包,自動解決包的依賴性問題,便於管理大量系統的更新問題。yum
可以同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf
),自動解決增加或刪除rpm
包時遇到的依賴性問題。
zip / unzip 壓縮與解壓
zip
是個廣泛使用的壓縮程序,壓縮后的文件後綴名為.zip
# 將當前目錄下所有txt文本壓縮在一起
zip txt.zip *.txt
# 將目錄/local壓縮成local.zip文件
zip -r local.zip /local
# 將local.zip解壓縮到指定目錄,不加-d選項,則解壓到當前目錄
unzip local.zip -d ~/
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※網頁設計公司推薦不同的風格,搶佔消費者視覺第一線
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面
※南投搬家公司費用需注意的眉眉角角,別等搬了再說!
※新北清潔公司,居家、辦公、裝潢細清專業服務
※教你寫出一流的銷售文案?