linux常用命令
# ls 查看文件信息
ls -l -a -h # -l查看详情,-a查看所有,-h文件大小按合适的单位转换
1
# find 搜索文件/文件夹
在根目录下所有文件中查看nginx文件或文件夹:find / -name nginx
find 命令中的 -type 参数用于指定要查找的文件类型。常用的 -type 参数如下:
-type f:查找普通文件(不包括目录)。
-type d:查找目录。
-type l:查找符号链接。
-type b:查找块设备文件。
-type c:查找字符设备文件。
-type p:查找命名管道。
-type s:查找套接字文件。
find / -name nginx -type d ,表示只查找名为nginx的目录
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# grep 文本搜索
grep [options] pattern [file...]
其中,pattern是要查找的内容,file是要查找的文件名。如果省略file参数,则grep命令会从标准输入中读取数据。
以下是一些常用的grep命令选项:
-i:忽略大小写
-r:递归查找子目录
-n:显示匹配行的行号
-w:只匹配整个单词,而不是单词的一部分
-v:显示不匹配的行
例如,要在当前目录下的所有文件中查找包含字符串hello world的行,可以使用以下命令:
grep "hello world" *
如果要忽略大小写,可以使用-i选项:
grep -i "hello world" *
如果要递归查找子目录,可以使用-r选项:
grep -r "hello world" .
这将在当前目录及其所有子目录中查找包含字符串hello world的行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# curl
-h : curl -h 查看帮助文档(大部分命令通用 -h 来查找帮助)
--insecure : 允许连接到没有证书的SSL站点
-X :后面加请求类型 POST、GET、PUT等 默认是GET
-v : 显示更多的信息
-d : 后面跟POST请求的数据
-H : 后面跟请求头 例如"Content-Type: application/json"
curl --insecure -H "Content-Type: application/json" -X POST -d '{"one": 1}' -v https://test.com
使用@+文件名 :文件传值
curl --insecure -H "Content-Type: application/json" -X POST -d @data.json -v https://test.com
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 查看 ip 和端口是否联通
ping IP
telnet IP [port]
wget http://IP:PORT
nc -v IP PORT
nc 命令有许多参数,以下是一些常用的参数及其介绍:
-l:监听模式,用于在本地主机上监听指定端口的连接请求。
-p:指定本地端口号。
-u:使用 UDP 协议。
-v:详细模式,输出更多信息。
-w:设置超时时间,单位为秒。
-z:扫描模式,用于扫描指定主机的端口是否开放。
-4:强制使用 IPv4 协议。
-6:强制使用 IPv6 协议。
-s:指定本地源地址。
-c:指定发送或接收的字节数。
-e:指定执行的命令,用于在连接建立后执行命令。
除了上述参数外,nc 命令还有许多其他参数,可以通过 man nc 命令查看完整的帮助文档。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# su 切换用户
su root
1
# passwd 修改后台密码
passwd username(要更改密码的用户名)
回车以后会提示输入新密码。
1
2
2
# chown 设置文件用户权限
chown root:root <file-name> # 前面是用户,后面是用户组
1
# chmod 设置文件权限
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
a:all(所有用户) o:others(所有其他用户) g:group(文件所有者所在组) u:user(文件所有者)
r:读 w:写 x:执行 X:特殊执行
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限
为文件所有者添加执行权限:chmod u+x <file-name>
为所有用户添加执行可写权限:chmod a+w <file-name> # 同等于 chmod +w <file-name>
0:无 1:只执行 2:只写 3:写+执行 4:只读 5:读+执行 7:读+写 8:读+写+执行
添加所有权限:chmod 777 <file-name>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 重复使用命令
1.使用 ctrl+r ,输入后会自动匹配之前用过的命令
2.使用 history ,查看之前所有输入的命令。
如果要查找docker run相关的命令,可以使用 history | grep 'docker run'
1
2
3
2
3
# 系统信息查看
内存:
free -h : -h 会自动计算内存大小的单位,-m M单位, -g G单位
total = used + free + buff/cache
CPU:
pidstat -u
查看系统的实时负载, 包括进程、CPU负载、内存使用等等:
top
进入top的实时界面后,默认按照CPU的使用率排序,通过“shift+m“按键将进程按照内存使用情况排序,可以查看哪些进程是当前系统中的内存开销“大户”
top命令中,按下 f 键,进入选择展示列表界面,这里可以选择要显示的信息列,要按照哪些信息列进行排序等
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 查看 linux 版本信息
查看Linux内核版本信息: cat /proc/version , uname -a
查看Linux系统版本信息: cat /etc/issue
/proc 文件系统。它不是普通的文件系统,而是系统内核的映像,
该目录中的文件是存放在系统内存之中的,它以文件系统的方式为访问系统内核数据的操作提供接口。
我们使用命令 uname -a 的信息就是从该文件获取的,当然用 cat /proc/version 方法直接查看它的内容也可以达到同等效果。
另外,加上参数"-a"是获得详细信息,如果不加参数为查看系统名称。
查看CPU信息: lscpu
查看系统CPU架构:arch
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# netstat 正在监听的端口
netstat -tlnp
netstat -tlnp | grep :5000 # 查看具体的端口服务
1
2
2
# 开放端口
centos命令: netstat -tlnp | grep :5000
1
# service
service 命令用于对系统服务进行管理。
-启动 (start)
-停止 (stop)
-重启 (restart)
-重新加载配置 (reload)
-查看状态 (status)等
service 命令是系统管理员命令,需要管理员权限才可以执行。
service 命令本质上是一个 Shell 脚本,地址一般为 /sbin/service
/etc/init.d/ 中包含许多系统服务的启动和停止脚本
service xxxx start|stop|restart 相当于是对 /etc/init.d/ 下的 xxxx 的封装,相当于是一个管理命令
实际执行的是 /etc/init.d/下的可执行程序。如果 /etc/init.d/下没有该服务的可执行程序,则会查找对应的 service 文件
service 文件是使用 systemd 作为初始化程序的 Linux 系统才有的服务文件,叫“服务配置单元文件”,用来取代旧初始化系统中的脚本文件,但是他们可能会同时存在系统中。
如果同时存在的话,在目录 /etc/init.d/ 下的脚本文件的优先级会高于目录 /etc/systemd/system/ 下的 service 文件。
以mysql为例:将 mysql/support-files/mysql.server(mysql是mysql的安装目录) 文件复制到 /etc/init.d/mysql
-启动mysql:service mysql start
-停止:service mysql stop
-重启:service mysql restart
-查看状态:service mysql status
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上次更新: 2023/08/11, 15:08:41