Linux 常用操作命令

1. Vim

:q           退出

:q!         强制退出

:wq         保存并退出

:set num      显示行号

:set nonumber   隐藏行号

全部复制粘贴键方法:

ggVG 全部选中

gg   到文件头

V   行visual模式

G   到文件尾

yyp 复制光标所在行,并粘贴

v+ 移动光标可以选中文本。

y 可以复制已经选中的文本

p 可以粘贴

yy 复制一行则

y$ 复制当前光标所在的位置到行尾

y^ 复制当前光标所在的位置到行首

3yy 复制三行则:即从当前光标+下两行

剪切文本:

用v选中文本之后可以按y进行复制,如果按d就表示剪切,之后按p进行粘贴

dd 剪切一行

d$ 剪切当前行光标所在的位置到行尾

d^ 剪切当前行光标所在的位置到行首

3dd 前切三行:即从当前行+下两行被剪切了

全在vim中查找方法:

选按 /输入 关键字(如: /fooher.com) 在文档中查找字符fooher.com,按n跳到下一个,shift+n上一个

h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

1,10s/^/#/g 在1行到10行前加#号

1,10s/#/^/g 在1行到10前取消#号

1,10>> 把10行向右移动两个tab

1,10<< 把10行向左移动两个tab

1,10d     把1到10行删除

4,8s/#g 把4到8行#替换成 //

定位命令-vim移动到指定字符

h、 方向左键 左移一个字符

j、 方向下键 下移一行字符

k、 方向上键 上移一行字符

l、 方向右键 右移一个字符

$ 移至行尾

0 移至行首

10h 向左 移动 10

10j 向下 移动 10

10k 向上 移动 10

10l 向右 移动 10

H 移至屏幕上端

M 移至屏幕中央

L 移至屏幕下端

( (左小括号)移动到上一个句子首

) (右小括号)移动到下一个句子首

{ (左大括号)移动到上一个段落首

} (右大括号)移动到下一个段落首

Ctrl + e 向下滚动一行

Ctrl + y 向上滚动一行

Ctrl + d 向下滚动半屏

Ctrl + u 向上滚动半屏

Ctrl + f 向下滚动一屏

Ctrl + b 向上滚动一屏

2. SFTP

# 连接到另一台服务器
root@master tmp]# sftp root@192.168.100.22
# 直接使用命令会操作远程服务器,可以使用l+命令的方式操作本地文件,如lcd,lls等

3. Zip

分卷压缩

# 1. 先把源文件压缩成zip
zip -r b.zip a.html
# 2. 根据情况分卷 --4g
zip -s 4g b.zip --out c.zip
---
# 分卷解压
# 3. 合并文件
cat c.zip.* > d.zip
# 4. 解压
unzip d.zip

中文乱码问题

unzip -O GBK *.zip

批量解压缩

find . -name '*.zip' -exec unzip -O GBK {} \;

# 同理对文件执行批量命令,如tar
find  . -name '*.tar.gz' -exec tar  -zxvf {} \;

4. ip地址配置

vim /etc/sysconfig/network-scripts/ifcfg-eno1
BOOTROTO=static  # 配置静态ip
ONBOOT=yes  # 使用此网卡
IPADDR="10.25.11.11"
PREFIX="24"
GATEWAY="10.25.11.1"

# 重启网卡服务
service network restart

5. 修改hostname

hostnamectl set-hostname your-names
# 重启hostname 生效
systemctl restart systemd-hostnamed.service

6. 用户操作

# 新增用户
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

7. 配置sudo

vim /etc/sudoer

8. rpm 命令

rpm -ivh xxx.rpm		//安装rpm
rpm -Uvh xxx.rpm		//升级rpm
rpm -e xxx.rpm			//删除rpm
rpm -qi xxx.rpm			//查看安装包的信息
rpm -ql xxx.rpm			//查看安装包内文件的绝对路径
rpm -qf xxx.rpm			//查看文件属于哪一个rpm安装包
rpm -qa xxx.rpm			//显示所有安装的rpm包
rpm -qilp xxx.rpm		//列出一个未被安装进系统的RPM包文件中包含有哪些文件

#特殊参数
--force 				//即使覆盖属于其它包的文件也强迫安装
--nodeps 				//如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

9. Yum

# yum安装nginx,先添加ngixnyum资源库
[root@VM-4-16-centos ~]# rpm -Uvh  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 查看yum仓库可用nginx版本
[root@VM-4-16-centos ~]# yum --showduplicates list nginx
# 执行安装
[root@VM-4-16-centos ~]# yum install -y nginx

# 卸载
[root@VM-4-16-centos ~]# yum remove -y nginx

yumdownloader下载离线资源

# 安装yum-utils
[root@VM-4-16-centos ~]# yum install -y yum-utils
# 执行下载,--destdir指定下载包存放位置
[root@VM-4-16-centos ~]# yumdownloader --resolve --destdir /data  nginx

10. 系统资源查看

top:

​ 实时查看进程的状态,可以看到总体的系统运行状态cpu、内存等

top - 10:56:15 up 11 days, 15:01,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 391 total,   1 running, 390 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65787000 total, 63921300 free,   935568 used,   930132 buff/cache
KiB Swap:  8257532 total,  8257532 free,        0 used. 64088748 avail Mem 
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   
     1 root      20   0  193308   6292   2544 S   0.3  0.0   4:40.39 systemd       
  1055 root      20   0  115816   1396    684 S   0.3  0.0   0:31.70 ksmtuned        
  2178 gdm       20   0  725616  18192   8920 S   0.3  0.0  16:23.20 gsd-color        
146222 root      20   0  162236   2540   1528 R   0.3  0.0   0:00.05 top              
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.40 kthreadd         
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd/0  
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H     
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 migration/0               

11. 磁盘挂载

11.1 硬盘空间大于2T

查看磁盘空间

[root@k8s-main1 /]# fdisk -l

磁盘 /dev/vda:536.9 GB, 536870912000 字节,1048576000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b803a

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200   209715199   103808000   8e  Linux LVM

磁盘 /dev/vdb:2199.0 GB, 2199023255552 字节,4294967296 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

使用parted 设置分区

[root@k8s-main1 /]# parted /dev/vdb 
GNU Parted 3.1
使用 /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt                                                      
(parted) mkpart primary xfs 0% 100%
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     标志
 1      1049kB  2199GB  2199GB               primary

(parted) quit    

[root@k8s-main1 /]# fdisk -l                                              

磁盘 /dev/vda:536.9 GB, 536870912000 字节,1048576000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b803a

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200   209715199   103808000   8e  Linux LVM
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

磁盘 /dev/vdb:2199.0 GB, 2199023255552 字节,4294967296 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: 7FE01718-24DD-4B1A-B3A5-D507BF55BBE2
#         Start          End    Size  Type            Name
 1         2048   4294965247      2T  Microsoft basic primary

格式化磁盘

[root@k8s-main1 /]# mkfs.ext4 /dev/vdb1 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
134217728 inodes, 536870400 blocks
26843520 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2684354560
16384 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成

挂载磁盘

[root@k8s-main1 /]# mkdir /data
[root@k8s-main1 /]# mount /dev/vdb1 /data

设置自动挂载

[root@k8s-main1 /]# vim /etc/fstab

# 追加挂载点
/dev/vdb1 	/data	ext4	defaults	0 0

12. 使用crontab定时任务执行shell脚本

编写测试脚本

[root@localhost iportal_bak]# vim back_db.sh
# 本脚本以supermap iportal文件型数据库备份脚本为例
DATA=$(date +%F_%H-%M-%S)
BACK_UP_DIR=/data/iportal_bak
BACK_DIR=/data/supermap-iportal-10.2.1-linux64/webapps/iportal/WEB-INF


# 按时间创建文件夹
DATE_DIR=$BACK_UP_DIR/$DATA
mkdir -p $DATE_DIR
# 对需要 备份的文件进行备份
cp $BACK_DIR/iserver-security.db $DATE_DIR
cp -r $BACK_DIR/iportaldata $DATE_DIR

# 删除一个月前的数据, +30 表示删除30天以前的数据
find $BACK_UP_DIR -mtime +30 -type d  | xargs rm -rf {} \ 

赋予脚本权限

[root@localhost iportal_bak]# chmod 777 back_db.sh

编写crontab规则

# 使用crontab -e 命令修改定时规则
[root@localhost iportal_bak]# crontab -e
# 增加定时规则,该规则表示每天0时0分执行一次备份脚本
0 0 * * * /data/iportal_bak/back_db.sh
# 编写规则解释如下:
# minute: 表示分钟,可以是从0到59之间的任何整数。
# hour:表示小时,可以是从0到23之间的任何整数。
# day:表示日期,可以是从1到31之间的任何整数。
# month:表示月份,可以是从1到12之间的任何整数。
# week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
# command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

# 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作
# 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
# 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
# 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

查看定时任务已有规则

[root@localhost iportal_bak]# crontab -l
*/5 * * * * bash /root/usage/get_usage.sh
0 0 * * * /data/iportal_bak/back_db.sh

查看定时任务执行日志

# crontab日志存储在/var/log/cron 文件下
[root@localhost iportal_bak]# tail -f /var/log/cron
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (     7 root      rt   0       0      0      0 S   0.0  0.0   0:40.81 [migratio+)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 [rcu_bh])
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (     9 root      20   0       0      0      0 S   0.0  0.0  25:11.81 [rcu_sche+)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [lru-add-+)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (    11 root      rt   0       0      0      0 S   0.0  0.0   0:16.58 [watchdog+)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (    12 root      rt   0       0      0      0 S   0.0  0.0   0:20.72 [watchdog+)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (    13 root      rt   0       0      0      0 S   0.0  0.0   0:55.11 [migratio+)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (    14 root      20   0       0      0      0 S   0.0  0.0   0:00.97 [ksoftirq+)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (20230423-17:20:39       99.3)
Apr 23 17:20:39 localhost CROND[73388]: (root) CMDOUT (20230423-17:20:39   32759044    560624

13. 后台运行命令

使用xshell终端操作linux系统时,对于长时间运行的命令或者网络波动比较大的情况,终端会收到HUP(hangup)信号而关闭所有子进程。因此需要忽略HUP信号或者让进程在后台运行。

1. nohup 命令

nohup命令可以让提交的命令忽略 hangup 信号,命令形式为:

# nohup command
nohup tar -zcvf test.tar.gz ./*

2. disown命令

如果已经在终端执行了命令,可以先挂起命令然后后端运行,再使用 disown命令使进程运行在新的会话里

# ctrl + z  挂起命令
^Z
[1]+  Stopped                 tar -zcvf data.tar.gz ./*
# 使用bg %n命令后台运行
root@gis:/data# bg %1
[1]+ tar -zcvf data.tar.gz ./* &
# 查看任务
root@gis:/data# jobs
[1]+  Running                 tar -zcvf data.tar.gz ./* &
# 使用 disown命令使进程运行在新的会话里
root@gis:/data# disown -h %1
# 退出终端
root@gis:/data# exit
# 检查任务是否执行
root@gis:/data# top
38860 root      20   0   50552  24524   2884 D   1.7  0.1   9:08.52 tar 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会灭火的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值