一天学会PostgreSQL应用开发与管理 - 2 Linux基本操作

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介:

背景

玩转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 ~]$ echo "abc" > ./a  
[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 ~]$ ln -L ./a ./b  
[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。

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

2.2 归档和解压

常用的归档命令tar

归档-c (常用压缩库-j bz2, -z gzip)

[digoal@digoal01 ~]$ tar -jcvf test.tar.bz2 b  
b  

解压-x

[digoal@digoal01 ~]$ tar -jxvf test.tar.bz2   
b  
[digoal@digoal01 ~]$ cat b  
abc  

2.3 VIM 简介

Linux下的命令行文本编辑器。

2.4 基本的VIM 工作流程

使用vi打开文件

vi 文件名  

非编辑模式

进入vi帮助

:help  

退出vi帮助

:q  

显示行号

:set nu  

向后find

/需要查找的词  
  
转义符号为\  

向前find

?需要查找的词  
  
转义符号为\  

find下一个

向下定位下一个目标词 n  
  
向上定位下一个目标词 N  

查找时忽略大小写

/abc\c  
?abc\c  

光标移动

上i下k  
左h右l  

翻页

Ctrl+f 向下翻页  
  
Ctrl+b 向上翻页  

行尾

Shift+$  

行头

Shift+|  

文件开始

按两次小写g  

文件结尾

大写G  

按词移动光标

向下移动 w  
  
向上移动 b  

删除行

删除当前行  dd  
向下删除两行(包括当前行)  d2d  

删除字

x  

删除到词尾(直到下一个词的第一个字)

dw  
  
删除2个词   d2w  

粘贴刚刚删除的行、字符等

向下粘贴 p
 
向上粘贴 P

粘贴

Shift+Insert

替换

只替换每行的第一个命中词    :%s/原词/替换为目标词/
 
替换每行所有的命中词        :%s/原词/替换为目标词/g

反悔

回退  u
 
前滚  Ctrl+R

进入编辑模式

插入

i  

追加

a  

向前插入行

O  

向后插入行

o  

换行

Enter  

退出编辑模式

ESC  

保存

:w

保存并退出

:wq!

:x!

3, 正则表达式、管道和I/O 重定向

3.1 基本的正则表达式

以grep为例,使用正则查找

查找以a开头的行

$grep -E "^a" file  
abc  

查找以b结束的行

$grep -E "b$" file  

查找包含数字的行

grep -E "[0-9]" a  

查找包含2个连续数字的行

$grep -E "[0-9]{2}" a  

3.2 使用grep

同上

3.3 管道和重定向

管道符

|  

使用管道,将一个命令的标准输出,作为另一个命令的标准输入

$echo "abc" | grep "a"  
abc  

重定向命令的标准输出

重定向到空设备,并覆盖重定向目标  
  
$cat a >/dev/null  
  
重定向到某个文件,并覆盖重定向目标  
  
$cat a >./b  
  
追加方式重定向目标  
  
$cat a >>./b  

重定向命令的标准错误

$cat 1  > /dev/null 2>./err  
  
$cat err  
cat: 1: No such file or directory  

4, 管理用户账户

4.1 什么是用户

Linux是多用户系统,多用户同时也便于权限的管理。

查找已有的用户

$cat /etc/passwd  
root:x:0:0:root:/root:/bin/bash  
......  

4.2 管理本地用户

新增、删除用户

useradd 用户名  
userdel 用户名  

4.3 管理密码

设置用户密码

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

5, 文件访问控制

5.1 管理用户组

创建、删除组

[root@digoal01 ~]# groupadd 组名  
[root@digoal01 ~]# groupdel 组名  

5.2 管理文件系统访问控制列表

Linux中文件、目录的权限分为用户权限、组权限、其他用户权限。

例如

[root@digoal01 ~]# ls -l  
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

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

修改文件、目录的权限

r 4  
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(f进入field选择)  
top  
  
打印系统进程  
ps -efwL  
  
统计每个进程的开销  
pidstat -d -r -u -w -l -h -p ALL 5 1  
  
打印进程stack  
pstack -p pid  
  
打印进程系统调用  
strace -p pid  

6.2 结束和管理进程

结束进程

kill pid  

强制结束进程(用户进程无法捕获-9信号,可能崩溃)

kill -9 pid  

6.3 管理周期进程

任务调度进程的管理

查看当前用户的当前调度任务

crontab -l  

配置当前用户的调度任务(命令一定要有user:x权限,否则不会被执行)

crontab -e  
  
# * 表示所有,支持-号范围,支持,号枚举  
# 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最低,只有系统管理者可以设置负数的等级。

启动时调整进程的优先级

启动时设置为-5  
  
nice -n -5 命令 &  

调整已存在进程的优先级

renice -5 -p 5200  
  
#PID为5200的进程nice设为-5  

查看进程优先级

top -p pid  
NI 字段表示  

调整进程的CPU亲和(绑定CPU)

numactl --physcpubind=1,2,3 命令  
  
将命令的CPU绑定到1,2,3号核  

6.5 系统状态监控

IO监控  
iostat   
  
cpu,disk,net,system资源使用监控  
dstat   
  
每个CPU核的使用监控  
mpstat   
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
7月前
|
人工智能 Linux 开发工具
linux 对文件内容的查看、归档 及 vim基本操作
linux 对文件内容的查看、归档 及 vim基本操作
|
5月前
|
网络协议 Linux 网络安全
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
在CentOS 7中,新引入了firewalld服务(防火墙),取代了CentOS 6之前的iptables服务(防火墙)。
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
|
4月前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
|
5月前
|
存储 运维 Linux
Linux磁盘精准缩容:操作详解与技巧
在Linux系统管理中,有效的磁盘空间优化对于维护系统性能至关重要。本文将深入探讨如何在Linux环境下安全地进行磁盘缩容,帮助你合理调整存储资源,确保系统高效运行。跟随本篇的步骤,一起优化你的Linux系统磁盘空间!
Linux磁盘精准缩容:操作详解与技巧
|
4月前
|
关系型数据库 数据库 PostgreSQL
Linux 环境手动备份postgresql数据库
【8月更文挑战第12天】在Docker环境中使用命令行工具对PostgreSQL数据库进行备份和恢复。首先,通过dockerexec进入容器,使用pg_dump进行数据库模式的备份,然后使用dockercp将备份文件导出。接着,若需导入数据到另一数据库,先将备份文件复制到目标容器,再利用psql命令进行数据恢复。整个过程需确保目标数据库无同名模式,以防止导入失败
47 3
|
5月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之如何进行PostgreSQL(简称PG)的全量和增量备份管理
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
101 1
|
7月前
|
Ubuntu Linux
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
|
6月前
|
Linux 应用服务中间件 网络安全
linux 初始化全部操作
linux 初始化全部操作
44 1
|
5月前
|
安全 固态存储 Linux
服务器linux操作系统重装的完整流程-傻瓜式教学
服务器linux操作系统重装的完整流程-傻瓜式教学

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版