0%

Linux常用命令

Linux常用命令

本文主要用于记录,在工作学习中经常需要使用的常见Linux命令。在CourageHe’s Blog不间断更新,欢迎各位看官指教。

Linux资源查看

各分区使用情况

1
df -h

image-20210107001503961

查看进程

1
ps -ef

image-20210107001625631

查看内存使用情况

1
top

image-20210107001741107

1
fre -m

image-20210107001916338

防火墙

1、开放端口管理

1
2
3
4
5
6
7
8
# 永久开放某端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent
# 永久开放一段端口
firewall-cmd --zone=public --add-port==6000-6600/tcp --permanent
# 永久关闭某端口
firewall-cmd --remove-port=3000/tcp --permanent
# 更新防火墙规则
firewall-cmd --reload

2、检查防火墙规则

1
2
3
4
# 查看接口信息
firewall-cmd --list-all
# 查看运行状态
firewall-cmd --state

3、防火墙操作

1
2
3
4
5
6
7
8
9
10
11
12
# 开启防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 重启防火墙
systemctl restart firewalld
# 防火墙开机自启
systemctl enable firewalld
# 取消防火墙自启
systemctl disable firewalld
# 防火墙运行状态
systemctl status firewalld

4、扩展

1
2
# 然后转发 tcp 22 端口至 9527
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=9527

文件权限

  • Linux系统对文件的权限有严格的控制,如果想对某个文件执行某种操作,必须具有对应的权限方可执行成功。

  • 读写执行:r、w、x

  • 权限粒度有拥有者、群组、其他组三种。每个文件都可以针对三个力度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组,如果其他用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属多个组。

  • 通常使用chmod命令对文件的权限进行设置和更改

数字权限使用格式:

r=4,w=2,x=1。其他的权限组合也可以用其他的八进制数字表示

1
2
3
rwx = 4+2+1 = 7
rw = 4+2 = 6
rx = 4+1 = 5

示例:

  • 所有人可读写执行
1
chmod 777 filename
  • 拥有者可读写,拥有者群组、其他组不可读写执行
1
chmod 600 filename
  • 拥有者可读写,拥有者群组可读,其他组不可读写执行
1
chmod 640 filename
  • 对文件夹文件循环授权 -R
1
chmod -R  640 dirname

SSH服务

1
2
3
4
5
6
7
8
9
# s
service sshd status

yum install sshd
yum install openssh-server

service sshd start
yum remove sshd

删除密钥

linux 系统上使用ssh工具远程登录设备时,如果之前保存过该设备的密钥,之后该设备密钥更新,此时需执行以下命令才能后续的ssh正常登录。

1
2
3
4
ssh-keygen -f  "/root/.ssh/known_hosts" -R 192.168.0.1

-f filename #指定密钥文件名。
-R hostname #从 known_hosts 文件中删除所有属于 hostname 的密钥。

vim命令快捷键

基本工作模式

  • 命令行模式

任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。

  • 文本输入模式

在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。

  • 末行模式

末行模式也称ex转义模式。在命令模式下,用户按“**:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:**”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。

进入插入模式:

i: 插入光标前一个字符

I: 插入行首

a: 插入光标后一个字符

A: 插入行未

o: 向下新开一行,插入行首

O: 向上新开一行,插入行首

进入末行模式

在命令模式下,用户按“:”键即可进入末行模式

退出

:q 退出

:q! 退出并不保存

:w 保存

:wq 保存并退出

:x 保存并退出

查找命令:

/: str查找

n: 下一个

N:上一个

替换命令:

把abc全部替换成123

末行模式下,将当前文件中的所有abc替换成123。如果不使用 g,则只会替换每一行的第一个 abc

:%s/abc/123/g

末行模式下,将第一行至第10行之间的abc替换成123

:1, 10s/abc/123/g

vim里执行 shell 下命令:

末行模式里输入!,后面跟命令

进入命令模式:

ESC:从插入模式或末行模式进入命令模式

移动光标:

h: 左移

j: 下移

k: 上移

l: 右移

M: 光标移动到当前屏幕的中间行

L: 光标移动到当前屏幕最后一行行首

gg: 光标移动文件开头

G: 光标移动到文件末尾

G: 移动到指定行,行号G (扩展:打开文件时跳转指定行,vi 文件名 +行数)

w: 向后一次移动一个字

b: 向前一次移动一个字

{: 按段移动,上移

}: 按段移动,下移

Ctr-d: 向下翻半屏

Ctr-u: 向上翻半屏

Ctr-f: 向下翻一屏

Ctr-b: 向上翻一屏

撤销命令:

u: 一步一步撤销

Ctr-r: 反撤销

删除命令:

x: 删除光标后一个字符,相当于 Del

X: 删除光标前一个字符,相当于 Backspace

dd: 删除光标所在行,n dd 删除指定的行数

D: 删除光标后本行所有内容,包含光标所在字符

d0: 删除光标前本行所有内容,不包含光标所在字符

dw: 删除光标开始位置的字,包含光标所在字符

复制粘贴:

yy: 复制当前行,n yy 复制 n 行

p: 在光标所在位置向下新开辟一行,粘贴

替换操作:

r: 替换当前字符

R: 替换当前行光标后的字符

文本行移动:

>>: 文本行右移

<<: 文本行左移

重复命令:

.: 重复上一次操作的命令

可视模式:

v: 按字符移动,选中文本

V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动

进程管理命令

ps aux | grep xxx 查看系统中所有进程

ps -ef | grep xxx 可以查看子父进程之间的关系

kill -9 PID 强制杀死进程

top 查看所有进程/cpu/内存/负载

netstat -anp |grep 进程号 查看该进程网络信息

netstat -nlp | grep 端口号 查看网络端口号占用情况

(如netstat:未找到命令,运行yum install net-tools -y命令安装网络工具即可)

文件命令

查看当前目录下文件大小

可以将当前目录下所有文件的大小给列出来。按照从大到小的方式排序:

1
du -sh * | sort -nr 

注意,该命令只是当前目录下文件大小排序,并不会显示子目录下具体文件的排序

查看当前目录下一级子文件和子目录占用的磁盘容量:

1
du -lh --max-depth=1 

改变“–max-depth=1”中的数值大小就可以指定查看该目录下多少级子目录

du参数解释
-h或–human-readable 以K,M,G为单位,提高信息的可读性
-s或–summarize 仅显示总计,即当前目录的大小。

常用:
查询当前目录下所有子目录总大小 并按大小排序

1
du -sh * | sort -nr 

nohup重定向输出

在服务器上使用nohup命令后台跑程序的时候,如果直接使用

1
nohup command

那么文件中输出的内容会默认保存到nohup.out文件里面。如我们想指定输出到某个文件,可以:

1
nohup command >myout.file 2>&1 &

这样可以将输出指定到myout.file中去。

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道