【学习资料】第12期快速入门PostgreSQL应用开发与管理 - 2 Linux基本操作

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 大家好,这里是快速入门PostgreSQL应用开发与管理 - 2 Linux基本操作

背景


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

本章大

1. 如何访问命令行

2. 使用命令行下的工具

非编辑模

进入编辑模

3. 表达式、管道和I/O 重定向

4. 管理用户账户

5. 文件访问控制

6. 管理

1如何访问命令行

1.1 本地命令行的访问

在图形界面中,访问命令行的方法:打开TerminalConsole

或者: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
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
3月前
|
NoSQL 关系型数据库 MySQL
Linux学习记录---(1、基本命令)
该博客文章提供了Linux系统中基本命令的使用记录,包括文件和目录操作、Redis服务管理、MySQL数据库操作以及Tomcat服务器的启动和检查。
Linux学习记录---(1、基本命令)
|
17天前
|
存储 安全 Linux
|
19天前
|
Linux Shell 数据安全/隐私保护
|
1月前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
1月前
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
38 1
|
1月前
|
Linux 开发工具
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
|
3月前
|
NoSQL Ubuntu Linux
Linux内核学习
Linux内核学习
79 3
|
3月前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
|
3月前
|
关系型数据库 数据库 PostgreSQL
Linux 环境手动备份postgresql数据库
【8月更文挑战第12天】在Docker环境中使用命令行工具对PostgreSQL数据库进行备份和恢复。首先,通过dockerexec进入容器,使用pg_dump进行数据库模式的备份,然后使用dockercp将备份文件导出。接着,若需导入数据到另一数据库,先将备份文件复制到目标容器,再利用psql命令进行数据恢复。整个过程需确保目标数据库无同名模式,以防止导入失败
42 3
|
2月前
|
Linux
使用qemu来学习Linux的休眠和唤醒
使用qemu来学习Linux的休眠和唤醒
下一篇
无影云桌面