liunx基本命令使用方法(四)
vi 命令的使用
正常編輯的步驟第二篇博客已經(jīng)闡述哪审。接下來(lái)說(shuō)下在vi中復(fù)制粘貼遇到的坑癌瘾。
注:很多小伙伴從其他文檔復(fù)制內(nèi)容粘貼到使用vi命令打開(kāi)的文件中泡躯,出現(xiàn)首行丟失等內(nèi)容不完整的現(xiàn)象该编。
解決辦法:vi打開(kāi)的文件必須按 i 鍵進(jìn)入編輯模式赠摇,再進(jìn)行粘貼货徙。
使用vi打開(kāi)文件查找關(guān)鍵詞:vi打開(kāi)文件芍瑞,按shift+:進(jìn)入尾行模式晨仑。輸入:/關(guān)鍵詞,回車(chē)光標(biāo)自動(dòng)跳到關(guān)鍵詞所在的行拆檬,按N鍵尋找下一個(gè)關(guān)鍵詞
設(shè)置行號(hào)
set nu? 顯示行號(hào)(按shift+:進(jìn)入尾行模式輸入:set nu)
? ? 20 # Root password
? ? 21 rootpw --iscrypted $6$8TKBzKEIaOfvtp47$ecF0zJqdF5QSqUmNMsKT35aAAS0EstXE8fvP40uaXn7iYxqREd0QUqeh5inX88yAbYrqm6sEjLWPrlafE8E9l0
? ? 22 # System services
? ? 23 services --disabled="chronyd"
:set nu
set nonu? ?關(guān)閉顯示?(按shift+:進(jìn)入尾行模式輸入:set nonu)
network --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate
network? --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$8TKBzKEIaOfvtp47$ecF0zJqdF5QSqUmNMsKT35aAAS0EstXE8fvP40uaXn7iYxqREd0QUqeh5inX88yAbYrqm6sEjLWPrlafE8E9l0
# System services
services --disabled="chronyd"
:set nonu
vi 清空文件這個(gè)內(nèi)容
命令行模式常見(jiàn)的快捷鍵:
dd 刪除當(dāng)前行
dG 刪除光標(biāo)當(dāng)前及以下的所有行
ndd 刪除光標(biāo)當(dāng)前及以下的n行
gg 跳轉(zhuǎn)到第一行的第一個(gè)字母
G? 跳轉(zhuǎn)到最后一行的第一個(gè)字母
shift+$ 行尾
gg + dG
注意:使用VI編輯官方配置文件時(shí)洪己,請(qǐng)先備份。
系統(tǒng)命令
df -h 查看磁盤(pán)
[root@localhost ~]# df -h
文件系統(tǒng)? ? ? ? ? ? ? ? 容量? 已用? 可用 已用% 掛載點(diǎn)
/dev/mapper/centos-root? 18G? 1.1G? 17G? ? 6% /
devtmpfs? ? ? ? ? ? ? ? 7.8G? ? 0? 7.8G? ? 0% /dev
tmpfs? ? ? ? ? ? ? ? ? ? 7.8G? ? 0? 7.8G? ? 0% /dev/shm
tmpfs? ? ? ? ? ? ? ? ? ? 7.8G? 81M? 7.7G? ? 2% /run
tmpfs? ? ? ? ? ? ? ? ? ? 7.8G? ? 0? 7.8G? ? 0% /sys/fs/cgroup
/dev/sda1? ? ? ? ? ? ? ? 497M? 125M? 373M? 25% /boot
tmpfs? ? ? ? ? ? ? ? ? ? 1.6G? ? 0? 1.6G? ? 0% /run/user/0
free -m 查看內(nèi)存
[root@localhost ~]# free -m
? ? ? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available
Mem:? ? ? ? ? 15872? ? ? ? 238? ? ? 15129? ? ? ? ? 80? ? ? ? 503? ? ? 15282
Swap:? ? ? ? ? 2047? ? ? ? ? 0? ? ? ? 2047
top 查看負(fù)載
[root@localhost ~]# top
top - 10:27:40 up 1 day, 13:25,? 1 user,? load average: 0.05, 0.03, 0.14 ( 后面三個(gè)數(shù)字分別代表不同時(shí)間段即一分鐘秩仆、五分鐘和十五分鐘的系統(tǒng)平均負(fù)載码泛。 超過(guò)10請(qǐng)及時(shí)檢查服務(wù)器)
Tasks: 374 total,? 1 running, 373 sleeping,? 0 stopped,? 0 zombie
%Cpu(s):? 0.0 us,? 0.0 sy,? 0.0 ni,100.0 id,? 0.0 wa,? 0.0 hi,? 0.0 si,? 0.0 st
KiB Mem : 16253248 total, 15491340 free,? 246108 used,? 515800 buff/cache
KiB Swap:? 2097148 total,? 2097148 free,? ? ? ? 0 used. 15647308 avail Mem
? PID USER? ? ? PR? NI? ? VIRT? ? RES? ? SHR S? %CPU %MEM? ? TIME+ COMMAND? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
50472 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.3? 0.0? 0:00.94 kworker/0:0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? 1 root? ? ? 20? 0? 44908? 7640? 2608 S? 0.0? 0.0? 0:34.58 systemd? ? ? ?
注意:查看負(fù)載發(fā)現(xiàn)有一個(gè)進(jìn)程CPU占用超過(guò)100%以上,可能是代碼的問(wèn)題澄耍,如果相同的代碼在其他機(jī)器運(yùn)行沒(méi)問(wèn)題噪珊,極可能是硬件問(wèn)題晌缘,建議重啟服務(wù)器。
查看進(jìn)程 查看端口號(hào)
進(jìn)程
[root@localhost ~]# ps -ef|grep ssh
root? ? ? 1497? ? ? 1? 0 11月16 ?? ? ? 00:00:08 /usr/sbin/sshd -D
root? ? ? 27971? 1497? 0 11月17 ?? ? ? 00:00:00 sshd: root
root? ? ? 49315? 1497? 0 08:59 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 49607? 1497? 0 09:08 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 50297? 1497? 0 09:35 ?? ? ? ? 00:00:00 sshd: root@pts/0
root? ? ? 51921? 1497? 0 10:39 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 51979? 1497? 0 10:42 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 51993? 1497? 0 10:43 ?? ? ? ? 00:00:00 sshd: unknown [priv]
sshd? ? ? 51994? 51993? 0 10:43 ?? ? ? ? 00:00:00 sshd: unknown [net]
進(jìn)程用戶? ?進(jìn)程的pid? ?父id? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)程用戶的內(nèi)容(進(jìn)程所屬的目錄 log -Xmx -Xms)
查看端口號(hào)
netstat -nlp?
[root@localhost ~]# netstat -nlp | grep ssh?
tcp? ? ? ? 0? ? ? 0 0.0.0.0:22? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 1497/sshd? ? ? ? ?
tcp6? ? ? 0? ? ? 0 :::22? ? ? ? ? ? ? ? ? :::*? ? ? ? ? ? ? ? ? ? LISTEN? ? ? 1497/sshd? ?
通過(guò)pid找port
運(yùn)行痢站、查看服務(wù)
centos 6.x運(yùn)行服務(wù)的命令 service 服務(wù)名稱(chēng) start
centos 7.x運(yùn)行服務(wù)的命令?systemctl start 服務(wù)名稱(chēng)1?名稱(chēng)2 ...
centos 6.x查看服務(wù)的命令 service 服務(wù)名稱(chēng) status
centos 7.x運(yùn)行服務(wù)的命令?systemctl status服務(wù)名稱(chēng)1?名稱(chēng)2 ...
[root@localhost ~]# ps -ef | grep ssh
root? ? ? 1497? ? ? 1? 0 11月16 ?? ? ? 00:00:08 /usr/sbin/sshd -D
root? ? ? 27971? 1497? 0 11月17 ?? ? ? 00:00:00 sshd: root
root? ? ? 49315? 1497? 0 08:59 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 49607? 1497? 0 09:08 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 50297? 1497? 0 09:35 ?? ? ? ? 00:00:00 sshd: root@pts/0
root? ? ? 51921? 1497? 0 10:39 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 52063? 1497? 0 10:45 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 52191? 1497? 0 10:49 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 52235? 1497? 0 10:51 ?? ? ? ? 00:00:00 sshd: root
root? ? ? 52270? 1497? 0 10:53 ?? ? ? ? 00:00:00 sshd: [accepted]
sshd? ? ? 52271? 52270? 0 10:53 ?? ? ? ? 00:00:00 sshd: [net]
注意: 在centos部署大數(shù)據(jù)組件磷箕,發(fā)現(xiàn)一個(gè)錯(cuò)誤 Connection refused 防火墻 web iptables
使用以下方法檢測(cè)IP和端口:
ping ip?
telnet ip port? ?ip和端口號(hào)
0.0.0.0:22 當(dāng)前的ip
:::22? ? ? 當(dāng)前的ip
192.168.0.3:22 當(dāng)前的ip
----------------------------
127.0.0.1:22 本地自己訪問(wèn)自己? window和其他服務(wù)器無(wú)法進(jìn)行訪問(wèn)
高危的命令
rm -rf /
vi 修改或者情況文件內(nèi)容
kill -9? ?進(jìn)程pid
kill -9? ?進(jìn)程pid 進(jìn)程pid 進(jìn)程pid
kill -9? $(pgrep -f 匹配關(guān)鍵詞)
殺進(jìn)程之前,先ps 找到相關(guān)的進(jìn)程阵难,搞清楚岳枷,哪些是你要?dú)⒌模蝗辉斐缮a(chǎn)事故
安裝 呜叫、卸載軟件
安裝
yum search xxx
yum install -y xxx-yyy
yum remove xxx-yyy
[root@localhost ~]# yum install httpd -y
卸載
rpm -qa | grep http
rpm -e --nodeps httpd-tools-2.4.6-90.el7.centos.x86_64
--nodeps? 不校驗(yàn)空繁,直接刪除
wget :下載文件
wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.16.2.tar.gz
壓縮解壓
zip 壓縮
zip +文件名稱(chēng) +路徑
[root@localhost ~]# zip -r 11 1/*? ?(在文件外面壓縮)
? adding: 1/2/ (stored 0%)
[root@localhost ~]# zip -r 11 ./*? ?()在文件里面壓縮)
? adding: 1/ (stored 0%)
? adding: 1/2/ (stored 0%)
? adding: 1/2/3/ (stored 0%)
? adding: anaconda-ks.cfg (deflated 39%)
? adding: a.pl (deflated 74%)
? adding: bash.tgz (deflated 0%)
? adding: perl.tar (stored 0%)
unzip? 解壓縮
[root@localhost ~]# unzip 11.zip??
tar?
參數(shù)說(shuō)明 -c: 建立一個(gè)壓縮文件的指令參數(shù) (crate的縮寫(xiě));
-x:解開(kāi)一個(gè)壓縮文件的參數(shù)指令朱庆;
-t:查看tarfile里面的文件
特別注意:c/x/t/ 只能存在一個(gè)盛泡!不能同時(shí)存在!
-z:是否同時(shí)角有g(shù)zip的屬性娱颊,即是否需要使用gzip壓縮
-j:是否同時(shí)具有bzip2的屬性傲诵,即是否需要使用bzip2壓縮
-v:壓縮的過(guò)程中顯示文件!這個(gè)常用箱硕,但不建議用在背景執(zhí)行過(guò)程拴竹!
-f :使用檔名,請(qǐng)留意剧罩,在 f 之后要立即接檔名喔栓拜!不要再加參數(shù)!
例如使用『 tar -zcvfP tfile sfile』就是錯(cuò)誤的寫(xiě)法惠昔,要寫(xiě)成
『 tar -zcvPf tfile sfile』才正確
-p :使用原文件的原來(lái)屬性(屬性不會(huì)依據(jù)使用者而變)
-P :可以使用絕對(duì)路徑來(lái)壓縮菱属!
-N :比后面接的日期(yyyy/mm/dd)還要新的才會(huì)被打包進(jìn)新建的文件中!
--exclude FILE:在壓縮的過(guò)程中舰罚,不要將 FILE 打包!
?tar??-xzvf? 壓縮文件
tar -cvf /tmp/etc.tar /etc?<==僅打包薛耻,不壓縮营罢!
tar -zcvf /tmp/etc.tar.gz /etc?<==打包后,以 gzip 壓縮
tar -jcvf /tmp/etc.tar.bz2 /etc?<==打包后饼齿,以 bzip2 壓縮
查閱 /tmp/etc.tar.gz 文件內(nèi)有哪些文件饲漾?
tar -ztvf /tmp/etc.tar.gz
由於我們使用 gzip 壓縮,所以要查閱該 tar file 內(nèi)的文件時(shí)缕溉,
就得要加上 z 這個(gè)參數(shù)了考传!這很重要的!
tar -czvf 解壓縮
將 /tmp/etc.tar.gz 文件解壓縮在 /usr/local/src 底下
cd /usr/local/src
tar -zxvf /tmp/etc.tar.gz
在預(yù)設(shè)的情況下证鸥,我們可以將壓縮檔在任何地方解開(kāi)的僚楞!以這個(gè)范例來(lái)說(shuō)勤晚,
我先將工作目錄變換到 /usr/local/src 底下,并且解開(kāi) /tmp/etc.tar.gz 泉褐,
則解開(kāi)的目錄會(huì)在 /usr/local/src/etc 呢赐写!另外,如果您進(jìn)入 /usr/local/src/etc
則會(huì)發(fā)現(xiàn)膜赃,該目錄下的文件屬性與 /etc/ 可能會(huì)有所不同喔挺邀!
在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內(nèi)的 etc/passwd 解開(kāi)而已
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透過(guò) tar -ztvf 來(lái)查閱 tarfile 內(nèi)的文件名稱(chēng)跳座,如果單只要一個(gè)文件端铛,
就可以透過(guò)這個(gè)方式來(lái)下達(dá)!注意到疲眷! etc.tar.gz 內(nèi)的根目錄 / 是被拿掉了禾蚕!
將 /etc/ 內(nèi)的所有文件備份下來(lái),并且保存其權(quán)限咪橙!
tar -zxvpf /tmp/etc.tar.gz /etc
這個(gè) -p 的屬性是很重要的夕膀,尤其是當(dāng)您要保留原本文件的屬性時(shí)!
在 /home 當(dāng)中美侦,比 2005/06/01 新的文件才備份
tar -N '2005/06/01' -zcvf home.tar.gz /home
我要備份 /home, /etc 产舞,但不要 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
將 /etc/ 打包后直接解開(kāi)在 /tmp 底下,而不產(chǎn)生文件菠剩!
cd /tmp
tar -cvf - /etc | tar -xvf -