1. 文件操作相关命令
1.1 文件&目录 (cd、find、touch、mkdir)
cd folder: 进入指定目录
cd ..: 返回上一级目录
find / -name fileName: 在整个文件系统中查询文件
find /path/to/search -name "example.txt": 指定目录下查找文件
touch fileName: 创建文件
mkdir folder: 创建目录
mkdir -p /a/b/c: 依次创建目录
1.2 复制(cp)
cp a b: 在当前目录下, 将a文件复制一份并命名为b
- cp xxx.jar xxx.jar.bak
cp /path/to/a /path/to/dir: 将指定目录下的a文件复制到指定目录下
1.3 重命名&移动(mv)
mv a b: 在当前目录下, 重命名a为b
mv /path/to/a /path/to/dir: 将指定目录下的a文件移动到指定目录下
mv * /path/to/dir: 将当前目录下的所有文件移动到指定目录
1.4 清空文件&删除文件/目录(rm)
清空名为 log_file.log 的日志文件(文件不会被删除):
truncate -s 0 log_file.log
> log_file.log
删除文件xxx.log:
rm xxx.log: 删除xxx.log
rm -r /folder: 递归删除目录及其所有内容,包括子目录和文件
rm -rf /folder: 强制递归删除目录及其内容,且不提示确认(如 rm -rf /*)
1.5 解压缩文件(zip、unzip、tar)
- .zip文件
zip -r file.zip: 压缩整个文件夹下的所有文件
zip -r folder filename.zip: 指定压缩后的文件名
unzip file.zip: 解压a.zip文件
unzip file.zip -d /path/to/dir: 将文件解压缩至指定的的目录
- file.tar
tar -xvf file.tar
参数解释:
- x: 表示解压文件
- v: 表示显示详细信息
- f: 表示指定要解压的文件
- file.tar.gz
tar -zxvf file.tar.gz: 解压缩文件到当前目录下
- 参数解释:
- z: 这个选项告诉 tar 使用 gzip 来解压缩文件. tar.gz 文件是先用 tar 创建的, 再用 gzip 压缩的
- x: 这个选项告诉 tar 从存档中提取文件
- v: 这个选项是详细模式, 意味着 tar 会显示每个被处理的文件的名字. 它可以帮助用户看到当前处理的进度
- f: 表示要处理的文件名是紧随其后的参数 (file.tar.gz)
1.6 查看文件内容(cat、head、tail)
cat fileName: 查看文件内容
head -n 20 xxx.log: 查看开头20行日志
tail -f xxx.log: 实时查看文件末尾, ctrl + c 退出
tail -n 200 xxx.log: 实时查看最后200行日志
tail -n 200 xxx.log | less: 分页查看最后200行日志, 可以使用pageUp,pageDn滚动
tailf -n 500 xxx.log : 打印最后500行日志,并且持续跟踪日志
- head、tail在查看日志信息的时候较常用
2. 防火墙(firewalld-cmd)
2.1 开启关闭防火墙
systemctl status firewalld, firewall-cmd --state: 查看防火墙状态
systemctl stop firewalld: 暂时关闭防火墙
systemctl disable firewalld: 永久关闭防火墙
systemctl start firewalld: 开启防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent: 开放指定端口(例8080)
firewall-cmd --zone=public --remove-port=8080/tcp --permanent: 关闭指定端口(例8080)
firewall-cmd --reload: 立即生效
firewall-cmd --zone=public --list-ports: 查看开放的端口
2.2 设置防火墙访问策略
允许指定的 IP 地址通过指定的 TCP 端口访问系统: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="ip" port port="xxx" protocol="tcp" accept'
拒绝所有尝试通过指定 TCP 端口的连接: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="xxx" protocol="tcp" reject'
查看当前防火墙配置的所有规则和设置: firewall-cmd --list-all
移除之前添加的允许指定 IP 通过指定 TCP 端口访问的规则: firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="ip" port port="xxx" protocol="tcp" accept'
移除之前添加的拒绝所有尝试通过指定 TCP 端口连接的规则: firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port port="xxx" protocol="tcp" reject'
+ firewall-cmd: 命令用于管理和配置 firewalld 防火墙
+ --permanent: 使更改永久生效
+ --add-rich-rule & --remove-rich-rule: 添加和移除详细规则
+ rule family="ipv4": 规则适用于 IPv4 协议
+ source address="ip": 指定源地址为 ip 的主机
+ port="xxx": 指定目标端口为 xxx
+ protocol="tcp": 使用的协议是 TCP
+ accept: 允许这个连接
+ reject: 拒绝这个连接
+ --list-all: 列出当前所有配置的防火墙规则
3. 系统相关
3.1 查看系统信息
cat /etc/redhat-release: 查看版本号(CentOS)
uname -r: 查看内核版本
hostnamectl: 所有信息, 包括版本号和内核版本
3.2 查看某个进程(netstat、ps)
netstat -anp | grep 8085: 一般用来查看8085端口是否被占用
(win中: netstat -an | findstr :8085)
ps -ef | grep java: 查看所有与 java 相关的进程信息
ps aux | grep xxx.jar: 查看指定 JAR 文件相关的进程信息
kill -9 <pid>: 强制终止进程的命令, 用于无法正常终止的进程. 使用时需谨慎, 尽量尝试其他信号让进程有机会进行清理和正常退出
kill -15 <pid>: 请求进程正常终止, 可以被进程捕获和处理, 用于要求进程终止并进行清理操作(默认信号)
3.3 查看目录大小(du、df)
du -sh /path/to/dir: 查看指定目录
du -sh .: 查看当前目录
du -sh * | sort -hr: 显示当前目录下每个文件和子目录的大小, 并按大小进行排序
df -h: 查看磁盘信息(-h根据大小适当显示, 输出的大小单位会以 KB、MB、GB 等易于理解的方式呈现)
3.4 查看时间&时区
date: 查看系统时间
timedatectl: 查看时区
timedatectl set-timezone Asia/Shanghai: 设置时区
3.5 定时任务(crontab)
crontab -l: 查看当前的任务
crontab -e, vim /etc/crontab: 可直接设置定时任务
4. 远程操作相关
4.1 远程连接(ssh)
ssh username@hostname: (ssh 用户名@密码, 连接远程服务器, 默认端口22)
ssh -p username@hostname: 指定端口连接
- 更改服务端口: 编辑 /etc/ssh/sshd_config 文件并重启ssh服务
4.2 远程传输文件(scp)
从当前服务器拷贝文件到远程服务器:
- scp local_file remote_username@remote_ip:remote_folder
- scp local_file remote_username@remote_ip:remote_file
(命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名)
从远程服务器拷贝文件到当前服务器:
- scp local_file remote_ip:remote_folder
- scp local_file remote_ip:remote_file
(命令执行后需要输入用户名和密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名)
从当前服务器拷贝目录到远程服务器:
- scp -r local_folder remote_username@remote_ip:remote_folder
- scp -r local_folder remote_ip:remote_folder
(将本地目录复制到远程指定目录下)
从远程服务器拷贝到当前服务器:
scp -r 远端服务器账号@IP:源目录 目标路径
例: scp -r root@x.x.x.x:/home/source_file/data/SHFG /opt/mqq/Gwtest
5. 软连接
5.1 创建一个软连接(ln)
ln -s target_path link_path: target_path是要指向的文件或者目录, link_path是链接文件本身路径
例: ln -s /usr/local/bin/myapp ~/bin/myapp-link
(为/usr/local/bin/myapp创建一个名为~/bin/myapp-link的软连接)
5.2 删除一个软连接
rm -rf 软链接名字
例: rm -rf myapp-link
5.3 修改软连接
ln -snf 新的源文件或目录 目标文件或目录
例: ln -snf /new_source_file/file ~/bin/myapp-link
(将myapp-link的链接目录改成/new_source_file/file)
6. 编辑器(vi、vim)
vim编辑器共有三种模式:命令模式、编辑模式、末行模式
模式间切换:
- 命令模式下, 输入
:
后进入末行模式,i
进入编辑模式 - 编辑模式下,
esc
回到命令模式
vim常用命令:
显示行号: ":set number" / ":set nu"
隐藏行号: ":set nonumber"
搜索关键字: "/"
查找下一个: "n"
查找上一个: "N"
光标到当前行末: "$"
光标到当前行第一个非空字符串: "^"
保存: ":w"
退出: ":q"
保存退出: ":wq"
强制退出: ":q!"
光标移动到顶端: "gg"
光标移动到末端: "G"
取消高亮: ":noh"
7. 运行jar包
前台启动: java -jar xxx.jar > log.log 2>&1
后台启动: nohup java -jar xxx.jar > log.log 2>&1 &
(Windows 后台运行jar: javaw -jar xxx.jar > C:\Path\To\Log\output.log 2>&1)