# 系统命令

# su 切换用户

su 用户名

sudo 命令:表示使用超级管理员身份执行该命令,如果你当前不是管理员,希望以管理员身份执行某个命令时,使用sudo,需要输入超级管理员的密码:

# echo 打印

name="John"
echo "My name is $name"

# 输出多行需要加双引号
echo "line 1
line 2
line 3"

# 重定向

# 输出重定向

  • > :以覆盖的形式写到文件中。
  • >> :以追加的形式写到文件中。 凡是在控制台上能够打印出来的,统一都可以重定向,可以将其打印到控制台的行为重定向到文件或其它设备。例如:
    将 ls -al的执行结果重定向到 ls.txt 文件中。
echo 把打印控制台的内容到文件中 > log.log
cat log.log

# 输入重定向

<:将文件内容输入给某个命令,这是一种默认的行为,通常 < 是可以省略的

# grep

grep 是一个强大的命令行文本搜索工具,用于在文件中查找匹配的字符串或模式,并将匹配行作为输出。以下是 grep 命令的用法详解:

  • 基本用法:
    • 'pattern' 表示要匹配的字符串或模式。
    • file 表示要搜索的文件名。如果不指定文件名,则 grep 命令会从标准输入中读取数据,等待用户输入并匹配字符串。
grep 'pattern' file
  • 搜索多个文件:
grep 'pattern' file1 file2
grep 'pattern' *.txt
  • 递归搜索目录:
    • -r 表示递归搜索目录。
    • dir 表示要搜索的目录。
grep -r 'pattern' dir
  • 忽略大小写:
    • -i 表示忽略大小写。
grep -i 'pattern' file
  • 同时输出匹配结果的行号:
grep -n 'pattern' file
  • 使用正则表达式匹配:
    • -E 表示使用正则表达式匹配。
grep -E 'pattern' file

# | 管道

将前面命令的输出作为后面命令的输入,可以叠加,例如:

# ps 查看系统进程

常用参数: -e :显示当前所有进程 -f :显示 UID,PPID,C 与 STIME 栏位信息

ps -ef

ps命令

  • UID:该进程的所属用户
  • PID:进程id
  • PPID:父进程id
  • C:CPU使用百分比
  • STIME:启动时间
  • TTY:启动该进程的终端设备是哪个
  • TIME:耗费的CPU时间
  • CMD:该进程对应的命令

# kill 结束进程

  • kill 进程号
  • kill -9 进程号(强行杀死)
  • killall 进程名 (杀死所有关于这个的进程)

# top命令

top 命令是用于查看正在运行的系统进程信息的命令。它会实时动态地显示系统资源的使用情况,如 CPU 占用率、内存使用情况、进程情况等。通常用于系统监控和性能调优。 top命令

  • 僵尸进程:在操作系统中,僵尸进程 (Zombie Process) 是指一个已经执行结束的进程,但其进程描述符仍然留在进程列表中,它不再执行任何其他操作,但仍然占用一定内存空间。
  • 交换分区(Swap),也称虚拟存储器,是一种在计算机内存不足时,为了增加内存所采用的一种技术。当系统内存不足时,操作系统会把暂时不需要的内存数据和程序信息通过交换机制存储到硬盘上的交换分区中,以节省内存的使用,从而保证共享内存的进程正常运行。

# free命令

free命令可以用于查看物理内存和交换分区的使用情况。下面是一条可能的 free 命令的输出结果的示例: fee命令

# df 查看磁盘

df 命令是 Linux 系统中的一个磁盘空间使用情况查询命令,用于显示当前文件系统的磁盘空间使用状况,以及文件系统的挂载点、磁盘大小、已用空间、可用空间、使用占比等信息。df命令是 "disk free" 的缩写。 df命令

# du 显示文件占用磁盘大小

du命令是 Linux 系统中的一个磁盘空间占用查询命令,用于显示文件或目录占用的磁盘空间大小。du命令是 "disk usage" 的缩写: du命令

# curl 网络请求

语法:

curl [options] <URL>
  • -i :显示响应头信息。
  • -I :只显示响应头信息,不显示响应体。
  • -X :设置请求方法,包括 GET、POST、PUT、DELETE 等。
  • -d :设置请求体数据(POST 请求)。
  • -H :设置请求头信息。
  • -o/-O :下载文件,并保存到本地。
  • -u :设置认证信息。
  • -A :设置 User-Agent。
  • -s :静默模式,不输出进度信息。

# 发送 POST 请求:

curl -X POST -d "name=john&age=30" www.example.com/submit

# 下载一个文件:

curl -O www.example.com/test.zip

# 设置请求头信息:

curl -H "User-Agent: Mozilla/5.0" www.example.com

# wget 下载资源

语法:wget 资源地址

# 下载tomcat 
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz

# netstat查看网络连接状态及端口

在实际开发中,netstat最常用的操作是查看网络连接情况。通过使用netstat命令,开发人员可以快速了解当前系统上的所有网络连接,包括正在监听的端口、建立的连接、连接状态等信息。这对于排查网络问题和监控系统状态非常有用。
另外,netstat还可以用于检查网络安全,例如查看哪些端口正在被占用,是否有不安全的连接等。

  • LISTENING 状态:表示该端口已占用,正在监听,等待客户端的连接。

  • CONNECTED状态:表示网络连接已建立,但并没有开始数据传输。

  • ESTABLISHED 状态:表示网络已连接,数据正在传输中。

  • TIME_WAIT 状态:表示连接已经被终止,在双方都完成数据传输后,该连接会进入TIME_WAIT状态,并等待一段时间后关闭。

  • 查看所有处于监听状态的连接:

netstat -l
  • 查看所有TCP连接状态:
netstat -t
  • 查看所有UDP连接状态:
netstat -u
  • 查看所有处于CONNECTED状态的连接:
netstat -o
  • 查看指定端口的网络连接状态:
netstat -an | grep 端口号
  • 例如,查看80端口的网络连接状态:
netstat -an | grep :80