分页显示文件内容
命令:pg (page)
格式:pg [option] filename
功能:分页显示指定文件的内容。在显示一页文件时,最后一行将显示等待用
户输入指令。可输入的指令有如下选项。
选项:h 显示pg命令中可使用的帮助(help)命令。
q 退出pg命令。
[return] 显示下一页正文。
1 显示正文的下一行
[Space] 显示下一页
d/[Ctrl-D] 将屏幕滚动半屏。
n 显示pg命令行中说明的下一个文件。
p 显示pg命令行中说明的前一个文件。
% 显示正文当前页的前面一页。
/pattern 在文件中向前搜索指定的字符模式。
pattern 在文件中向后搜索指定的字符模式。
注释:当pg命令显示到文件的末尾时,显示一个文件结束信息EOF(end of file)。
例如:% pg filename
举例来说你的lp命令在/usr/bin/lp这里
你试试看打全路径是否可以执行,如果可以,说明你的$PATH设置有问题
如果不可以,如果你没有安装lp的这个命令,需要重新安装包
1 安装Linux *** 作系统注意把gdb、Emacs或DDD这些开发工具都安装上。如果是在虚拟机上安装,依然需要设置Linux系统的网络环境;另外需要设置文件共享,方便windows下面的postgreSQL源码能在Linux下面访问到。
2 安装PostgreSQL
useradd postgre
(自动建立 postgre 组;设计人员为了安全考虑,PostgreSQL 不能以root 用户运行,所以必须建立对应的用户和组。)
解压到 /usr/local/src
tar xvfz postgresql-84targz
cd postgresql-84
/configure --prefix=/usr/local/pgsql --enable-debug --enable-assert --without-readline --without-zlib
make
make install
chown -R postgrepostgre /usr/local/pgsql
3 设置Postgres环境变量(非必须)
vi ~postgre/bash_profile
添加:
PGLIB=/usr/local/pgsql/lib
PGDATA=$HOME/data
PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
export PGLIB PGDATA PATH MANPATH
4 建立数据库
以 postgres 用户登录:
su postgre
建立数据库目录:
mkdir data
启动数据库引擎:
initdb –D “数据库目录”
之后可以根据提示,通过psql进入数据库
5 构造PostgreSQL调试环境
先 psql template1进去,然后
select pg_backend_pid();
获得id,就是gdb后面用到的数字
gdb /usr/local/pgsql/bin/postgres 997(pid的数字)
如果只使用gdb,全部是命令行界面;而Emac、DDD分别是彩色、黑白用户交互式图形界面。
6 使用gdb进行调试
PG默认每个page的大小为8K,PG数据页写入是以page为单位,但是在断电等情况下, *** 作系统往往不能保证单个page原子地写入磁盘,这样就极有可能导致部分数据块只写到4K( *** 作系统是一般以4K为单位),这些“部分写”的页面包含新旧数据的混合。在崩溃后的恢复期间,xlog 里面存储的记录变化信息不够完整,无法完全恢复该页。PG为了解决这类问题,full_page_write机制孕育而生。
PostgreSQL 在 checkpoint 之后在对数据页面的第一次写的时候会将整个数据页面写到 xlog 里面。当出现主机断电或者OS崩溃时,redo *** 作时通过checksum发现“部分写”的数据页,并将xlog中保存的这个完整数据页覆盖当前损坏的数据页,然后再继续redo就可以恢复整个数据库了。
除了能够解决断电等带来坏数据页问题外,full_page_write 还应用在在线备份功能上。PG进行全量备份数据库一般通过pg_basebackup工具实现,pg_basebackup类似于copy *** 作,在此期间,也会出现部分数据页写到一半时文件被copy走了,正是因为full_page_write存在,备份出来的数据库才可以成功恢复启动。所以即便full_page_write=off,在备份时也会被强制自动打开,保证备份成功。
实现原理
full_page_write主要在XLogInsert(插入一条xlog记录)时发挥作用,通过full_page_writer开关状态以及是否是checkpoint后对数据页面的第一次修改(lsn<RedoRecPtr)判断是否需要备份数据页。如果需要备份,那么则把数据页存放在这条记录的末尾,最终写入到xlog中。
有关linux:
1、卸载某一个特定的挂在点。
umount /dev/datavg01 /data01
2、移掉lvm。
vgremove /dev/datavg01
3、拷贝数据。
scp -r /home/gaogetxt root@192168101:/opt 或rsync -av /root/rpmpkgs /tmp/backups/
4、显示系统盘符并以树状格式展开。
lsblk。
5、扫描新增设备。
echo "---" >/sys/class/scsi-host/hosto/scan
6、强行杀死mysql
kill -9 $(ps -ef | grep mysql)
7、将文件内容以每一行5个的形式展示出来。
cat test2txt | xargs -n 5
8、用cut去实现awk切割列的效果
cat/etc/passwd | cut -d : -f 2
9、sed、grsp、awk。之前已经说过了、具体看 从linux三剑客说起 这篇。
10、增加一个oracle用户让其属于oinstall组同时也隶属于dba组。useradd oracle -g oinstall -G dba
11、新建立一个组groupnew并将组id修改为255。
groupadd -g 255 groupnew
12、将本地/dev/hdb整盘中的数据备份到/dev/hdd上。
dd if=/dev/hdb of=/dev/hdd
13、查看服务器cpu个数。
cat /proc/cpuinfo | grep "physical id" | wc -l
14、查看服务器io状况并以每间隔1秒的速度输出5次。
iostat 1 5
15、查看服务器内存使用情况并以每间隔2秒的速度输出10次。
vmstat 2 10
16、将gaogetxt中的第一列db2找到并将db两个字符用ab替换。
cat gaogetxt |grep db2 | awk -F 2 '{print $1}' | tr db ab
17、将包名解压到指定目录。
tar -cxvf 包名 -C 指定的目录
18、linux中前后台任务切换。
ctrl+z 切换到后台、jobs显示id、fg + id 切换至前台。
19、杀掉top下stopped的进程。
ps -A -ostat,ppid,pid,cmd |grep -e '^[T]'
然后在进行kill
20、监控cpu状态。
mpstat
21、查看虚拟内存使用了多少。
swapon
22、每月1到10号4:45重启nginx。
crontab -u root -l 显示root当前的计划任务。
crontab -u root -e 后输入以下内容并保存退出。
45 4 1,10 systemctl start nginx
23、awk打印df -h 的第一列、第三列、最后一列。
df -h | awk '{print $1 " " $3 " " $NF}'
24、批量拉、打标签、推docker镜像的shell脚本。
#!/bin/bash
for image in 'docker images | grep 10171101:10000 | awk ' { print $1 ":" $2 }
do
version = 'echo $image | awk -F / ' { print $2 } '
docker tag $image 192168101/$version
docker push 192168101/$version
done
25、正则表达式匹配电话号码。
(0d{2}[) -]d{8}
26、编译安装三步骤。
/configure --prefix=安装目录
make
make install
有关kubernetes:
将kubernetes中pod的数据拷贝到物理宿主机上。
kubectl cp gyl-run/gyl-mysql-01020304: /opt/dockersh /opt
将kubernetes中物理宿主机上的数据拷贝到pod中。
kubectl cp /opt/dockersh gyl-run/gyl-mysql-01020304: /opt
检查当前用户有没有权限在k8s中创建资源权限。
kubectl auth can-i '' ''
检查当前用户有没有权限在k8s集群中创建namespace权限。
kubectl auth can-i create pods --all-namespaces
查看集群是否 健康 。
kubectl get cs
有关数据库:
查看 mysql 二进制日志格式。
show variables like ‘%binlog_format%’
查看所有二进制日志文件
show master logs
查看正在写入的二进制日志
show master status
格式化二进制显示为sql格式
mysqlbinlog --base64 --output=decode-rows -v --start-date="2019-01-25 00:00:00" --stop-date=“2019-01-26 17:30” master-bin000006
利用bin-log去还原数据
/usr/bin/mysqlbinlog --no-default /var/lib/mysql/mysql-bin00001 | usr/bin/mysql -u root -p pwd test
连接 postgresql
psql -U 用户名 -d 数据
数据库名 -h 主机地址 -p端口(默认端口为5432)
l 显示数据库列表
d 显示所有表
d 表名称 显示表结构
du 显示所有数据库用户
c 数据库名 连接数据库
q 退出pg窗口
pg备份:
pg_dump -U kong -d kong -f /opt/2019-01-26-pgsql
pg还原:
psql -d kong -U kong -f /opt/2019-01-26-pgsql
mongo 批量更新数据:把age大于20的class name修改为,设置multi为true
*** 作记录,不准确
安装postgressql时候自动在linux系统建立了一个postgres的账户,密码可能也是postgres(不确定),可以用root身份给postgres修改密码并记住。 su - postgres 切换到 postgres ,然后用 psql 连接。
以上就是关于linux 命令pg我则linux系统怎么用不了啊全部的内容,包括:linux 命令pg我则linux系统怎么用不了啊、linux里面有个命令不全,比如pg ........lp等命令不全,怎么办、linux 下 怎么修改pg等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)