Linux基礎知識系列之四

vi(文本編輯)

常規流程是vi xxx 進入命令行模式--> 按i進入編輯 --> 按esc退出編輯,按shift+:進入命令行模式 --> 輸入wq保存。可是文件內容一旦過多,這種模式就不太好用了,接下來介紹一些在命令行的快捷方式來進行快速編輯。java

  1. 快速刪除 dd --> 刪除當前行 dG --> 刪除當前行以及如下的全部行 ndd --> 刪除當前行以及如下的n-1行
  2. 快速跳轉 gg --> 跳轉到第一行的首字母 G --> 跳轉到最後一行的首字母 shift+$ --> 跳轉當前行的行未 0 --> 跳轉當前行的行首
  3. 設置行號或者取消 set nu set nonu
  4. 搜索 命令行模式輸入/xxx,按n向下,N向上
  5. 快速清空文件內容 gg+dG --> 這種方式只適合不太大的文件,保存以後該文件的字節爲0 cat /dev/null > xxx --> 這種也是使得文件字節爲0 echo '' > xxx --> 僞清空,文件字節會變爲1
[root@hadoop001 ~]# ll
total 4
-rw-r--r-- 1 root root 46 Jun 23 11:49 tail.log
[root@hadoop001 ~]# echo '' > tail.log 
[root@hadoop001 ~]# ll
total 4
-rw-r--r-- 1 root root 1 Jun 23 11:50 tail.log   <-- 僞清空

[root@hadoop001 ~]# ll
total 4
-rw-r--r-- 1 root root 46 Jun 23 11:52 tail.log
[root@hadoop001 ~]# cat /dev/null > tail.log 
[root@hadoop001 ~]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 23 11:52 tail.log   <-- 真正清空
複製代碼

軟連接

命令爲ln -s 源文件路徑 軟連接所在路徑,這個命令在實際上使用頻率不過高,可是會有如下兩個場景會用到。 第一個場景,好比你的代碼中使用的是/xxx/ruozedatav1.0路徑,可是某天須要升級要使用的路徑變成了/xxx/ruozedatav2.0。你不可能會去改代碼中的路徑,因此這個時候就須要軟連接。如下方式建立軟連接,就能夠避免改代碼裏的路徑。linux

[root@hadoop001 ~]# ln -s /root/ruozedatav1.0/ /root/rz
[root@hadoop001 ~]# ll
lrwxrwxrwx 1 root root 20 Jun 23 12:28 rz -> /root/ruozedatav1.0/
[root@hadoop001 ~]# rm -rf rz
[root@hadoop001 ~]# ln -s /usr/local/ruozedatav2.0/ /root/rz
[root@hadoop001 ~]# ll
lrwxrwxrwx 1 root root 25 Jun 23 12:29 rz -> /usr/local/ruozedatav2.0/
複製代碼

第二個場景就是,當你代碼中使用的路徑磁盤快滿了,須要更換到另外一個容量較大的磁盤路徑時。固然要注意權限與以前一致。shell

[root@hadoop001 ~]# mv /data01/ruozedata /data02/ruozedata
[root@hadoop001 ~]# ln -s /data02/ruozedata /data01/ruozedata
[root@hadoop001 data01]# ll
lrwxrwxrwx 1 root root 25 Jun 23 12:29 ruozedata -> /data02/ruozedata
複製代碼

權限

主要涉及到兩個命令:chmod和chown。chmod是改變文件讀寫執行權限,chown是改變文件所屬用戶和用戶組。這兩個組成文件的權限體系,查看文件權限須要二者結合來看。bash

drwxr-xr-x. 2 root root      4096 Jun 12 22:41 Downloads
-rw-r--r--. 1 root root      1012 Jun 15 21:46 error.log
第一位字母: d是文件夾 -是文件 l是鏈接

命令實例(只有chown和chmod使用-R):
chown -R jepson:jepson ruozedata
chmod -R 777  ruozedata  --> 777 表明全部人都有最大權限 讀寫執

r 讀4
w 寫2
x 執行 1 shell腳本
- 0 沒有任何權限 

rwx r-x r-x
第一組 rwx 7 表明文件和文件夾所屬的 用戶的權限: 讀寫執
第二組 r-x 5 表明文件和文件夾所屬的 用戶組的權限: 讀執
第三組 r-x 5 表明其餘組的全部用戶對這個文件或文件夾權限: 讀執

複製代碼

ps:root帳號很特別,上面的權限都沒用,即便文件權限是000,權限組是其餘用戶,它照樣讀寫執行服務器

壓縮與解壓

tar.gz和zip壓縮格式是咱們常見的,下面簡單介紹兩種的格式的壓縮和解壓命令:app

tar -zxvf xxx.tag.gz  --> 解壓,加上-C能夠指定解壓到某個路徑
tar -cxvf xxx.tag.gz /xxx/xxx/* --> 壓縮

unzip xxx.zip  --> 解壓
zip xxx.zip /xx/xx/* --> 壓縮
複製代碼

若是你在解壓某個以後發現,該文件的用戶和用戶組不正常,必定要用chown將其改回來,不然以後會形成不可知錯誤。 以下:oop

[root@hadoop001 ~]# tar -xzvf jdk-8u45-linux-x64.gz -C /usr/java/
[root@hadoop001 ~]# cd /usr/java/
[root@hadoop001 java]# ll
total 4
drwxr-xr-x. 8 uucp 143 4096 Apr 11  2015 jdk1.8.0_45     <-- 用戶和用戶組錯誤
[root@hadoop001 java]# chown -R root:root /usr/java/jdk1.8.0_45
[root@hadoop001 java]# ll
total 4
drwxr-xr-x. 8 root root 4096 Apr 11  2015 jdk1.8.0_45
複製代碼

定時任務

Linux中crontab常常用來作定時任務,下面就是經常使用到命令:ui

crontab -e 編輯定時任務
格式 * * * * * 分 小時 日 月 周
* 表明每

常見需求:
1. 每兩分鐘執行
*/2 * * * *

2. 每10秒執行
定時任務執行中如下腳本
[root@hadoop001 tmp]# cat date.sh 
#!/bin/bash 
for((i=1;i<=6;i++))
do
	echo "wwww.ruozedata.com"
	date
	sleep 10s
done

exit
複製代碼

後臺執行

網上有些說只需在命令後面加上&就是後臺執行,但並非,執行 nohup 命令 & 纔是。spa

[root@hadoop001 ~]# ./date.sh &
[1] 11179
[root@hadoop001 ~]# Sun Jun 23 14:06:33 CST 2019 <--- 仍是前臺展現
[root@hadoop001 ~]# nohup ./date.sh &
[1] 11136
[root@hadoop001 ~]# nohup: ignoring input and appending output to ‘nohup.out’ <-- 輸出放在這裏
[root@hadoop001 ~]# cat nohup.out 
Sun Jun 23 14:06:03 CST 2019
複製代碼

由於可能不止一個腳本後臺運行,因此不能將輸出都放在nohup.out裏面,咱們更可能是將輸出重定向。命令行

nohup ./date.sh >> /tmp/date.log 2>&1 & 
複製代碼

其餘系統命令

free -m  查看內存使用狀況
[root@hadoop001 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15885         292       13054         163        2537       15107
Swap:             0           0           0
記得buff/cache都是算做內存一部分哦

df -h 查看磁盤使用狀況
[root@hadoop001 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  4.3G   36G  11% /
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G   16K  7.8G   1% /dev/shm
tmpfs           7.8G  164M  7.6G   3% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
tmpfs           1.6G     0  1.6G   0% /run/user/0

top 實時查看整個服務器狀況
面板第一行有個load average: 0.00, 0.00, 0.00,這個三個數表明1min,5min,15min服務器的負載。
通常來講三個數在10如下都是比較穩定的。
複製代碼
相關文章
相關標籤/搜索