天天看點

【學習資料】第12期快速入門PostgreSQL應用開發與管理 - 2 Linux基本操作

背景

玩轉PostgreSQL前,首先要了解的最最基本的Linux操作。

本章大綱

1. 如何通路指令行

2. 使用指令行下的工具

非編輯模式

進入編輯模式

3. 正規表達式、管道和I/O 重定向

4. 管理使用者賬戶

5. 檔案通路控制

6. 管理程序

1,如何通路指令行

1.1 本地指令行的通路

在圖形界面中,通路指令行的方法:打開Terminal,Console。

或者:Ctrl+Alt+F1 ~ F6

1.2 使用SSH 通路指令行

同上

2,使用指令行下的工具

2.1 使用硬連結

硬連結,指在同一個檔案系統中,對inode的引用,隻要檔案上存在至少1個硬連結,就可以找到對應的inode。

[digoal@digoal01 ~]$ stat a      
File: `a'      
Size: 4               Blocks: 8          IO Block: 4096   regular file      
Device: 803h/2051d      Inode: 656374      Links: 1  -- 硬連結數量      
Access: (0664/-rw-rw-r--)  Uid: (  500/  digoal)   Gid: (  500/  digoal)      
Access: 2017-04-11 13:18:14.292848716 +0800      
Modify: 2017-04-11 13:18:14.292848716 +0800      
Change: 2017-04-11 13:18:14.292848716 +0800      

建立硬連結

[digoal@digoal01 ~]$ stat a      
File: `a'      
Size: 4               Blocks: 8          IO Block: 4096   regular file      
Device: 803h/2051d      Inode: 656374      Links: 2      
Access: (0664/-rw-rw-r--)  Uid: (  500/  digoal)   Gid: (  500/  digoal)      
Access: 2017-04-11 13:18:14.292848716 +0800      
Modify: 2017-04-11 13:18:14.292848716 +0800      
Change: 2017-04-11 13:18:34.631855044 +0800      
[digoal@digoal01 ~]$ stat b      
File: `b'      
Size: 4               Blocks: 8          IO Block: 4096   regular file      
Device: 803h/2051d      Inode: 656374      Links: 2      
Access: (0664/-rw-rw-r--)  Uid: (  500/  digoal)   Gid: (  500/  digoal)      
Access: 2017-04-11 13:18:14.292848716 +0800      
Modify: 2017-04-11 13:18:14.292848716 +0800      
Change: 2017-04-11 13:18:34.631855044 +0800      

删除一個硬連結,還能通過其他硬連結找到對應的inode。

rm: remove regular file `a'? y      
[digoal@digoal01 ~]$ cat b      
abc      

2.2 歸檔和解壓

常用的歸檔指令tar

歸檔-c (常用壓縮庫-j bz2, -z gzip)

b      

解壓-x

b      
[digoal@digoal01 ~]$ cat b      
abc      

2.3 VIM 簡介

Linux下的指令行文本編輯器。

2.4 基本的VIM 工作流程

使用vi打開檔案

進入vi幫助

退出vi幫助

顯示行号

向後find

轉義符号為\      

向前find

轉義符号為\      

find下一個

向上定位下一個目标詞 N      

查找時忽略大小寫

?abc\c      

光标移動

左h右l      

翻頁

Ctrl+b 向上翻頁      

行尾

行頭

檔案開始

檔案結尾

按詞移動光标

向上移動 b      

删除行

向下删除兩行(包括目前行)  d2d      

删除字

删除到詞尾(直到下一個詞的第一個字)

删除2個詞   d2w      

粘貼剛剛删除的行、字元等

向上粘貼 P      

粘貼

替換

替換每行所有的命中詞        :%s/原詞/替換為目标詞/g      

反悔

前滾  Ctrl+R      

插入

追加

向前插入行

向後插入行

換行

退出編輯模式

儲存

儲存并退出

:x!      

3,正規表達式、管道和I/O 重定向

3.1 基本的正規表達式

以grep為例,使用正則查找

查找以a開頭的行

abc      

查找以b結束的行

查找包含數字的行

查找包含2個連續數字的行

3.2 使用grep

3.3 管道和重定向

管道符

使用管道,将一個指令的标準輸出,作為另一個指令的标準輸入

abc      

重定向指令的标準輸出

$cat a >/dev/null      
重定向到某個檔案,并覆寫重定向目标      
$cat a >./b      
追加方式重定向目标      
$cat a >>./b      

重定向指令的标準錯誤

$cat err      
cat: 1: No such file or directory      

4,管理使用者賬戶

4.1 什麼是使用者

Linux是多使用者系統,多使用者同時也便于權限的管理。

查找已有的使用者

root:x:0:0:root:/root:/bin/bash      
......      

4.2 管理本地使用者

新增、删除使用者

userdel 使用者名      

4.3 管理密碼

設定使用者密碼

Changing password for user digoal.      
New password:      
Retype new password:      

5,檔案通路控制

5.1 管理使用者組

建立、删除組

[root@digoal01 ~]# groupdel 組名      

5.2 管理檔案系統通路控制清單

Linux中檔案、目錄的權限分為使用者權限、組權限、其他使用者權限。

例如

total 18744      
-rw-------. 1 root root     1048 Mar  8  2016 anaconda-ks.cfg      
-rw-r--r--  1 root root     9579 Mar 26 23:00 install.log      
-rw-r--r--. 1 root root     3384 Mar  8  2016 install.log.syslog      
drwxrwxrwx. 6 1107 1107     4096 Sep 27  2016 postgresql-9.6.0      
第1個字元:表示這個檔案是目錄、普通檔案。      
2-4字元:owner的權限      
5-7字元:group的權限      
8-10字元:other的權限      
r 讀      
w 寫      
x 普通檔案表示可以運作, 目錄表示可以進入目錄      

修改檔案、目錄的user:group

ls -l postgresql-9.6.0      
drwxrwxrwx. 6 digoal root     4096 Sep 27  2016 postgresql-9.6.0      

修改檔案、目錄的權限

w 2      
x 1      
[root@digoal01 ~]# chmod 700 install.log      
[root@digoal01 ~]# ls -l install.log      
-rwx------ 1 root root 9579 Mar 26 23:00 install.log      

6,管理程序

6.1 監控程序

top      
列印系統程序      
ps -efwL      
統計每個程序的開銷      
pidstat -d -r -u -w -l -h -p ALL 5 1      
列印程序stack      
pstack -p pid      
列印程序系統調用      
strace -p pid      

6.2 結束和管理程序

結束程序

強制結束程序(使用者程序無法捕獲-9信号,可能崩潰)

6.3 管理周期程序

任務排程程序的管理

檢視目前使用者的目前排程任務

配置目前使用者的排程任務(指令一定要有user:x權限,否則不會被執行)

# * 表示所有,支援-号範圍,支援,号枚舉      
# Example of job definition:      
# .---------------- 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      

6.4 調整程序

程序優先級,Linux在配置設定計算資源時,優先配置設定給nice值低的程序。

nice等級的範圍從-20-19,其中-20最高,19最低,隻有系統管理者可以設定負數的等級。

啟動時調整程序的優先級

nice -n -5 指令 &      

調整已存在程序的優先級

#PID為5200的程序nice設為-5      

檢視程序優先級

NI 字段表示      

調整程序的CPU親和(綁定CPU)

将指令的CPU綁定到1,2,3号核      

6.5 系統狀态監控

iostat      
cpu,disk,net,system資源使用監控      
dstat      
每個CPU核的使用監控      
mpstat      

繼續閱讀