Linux常用命令整理

发布时间:2023年12月27日

常用命令

ifconfig/ip addr  # 检查IP地址
clear               # 清屏
pwd			# 检查当前的位置
tab键		# 自动补齐(注意唯一性)

cd命令集

# cd命令是linux中最基本的命令语句,必须熟练掌握
cd / # 返回根目录
cd ~ # 用户主目录
cd . # 当前目录
cd .. # 返回到上一级目录
cd /usr/ # 进入到usr目录
cd – # 返回上一个目录
cd # 直接回家

查看目录和文件 ls

ls –l # 详细格式,文件权限,时间
ll # 和ls –l作用相同
ls *.txt # 查看所有的txt类型文档

目录操作 mkdir

mkdir # 创建目录
mkdir a # 创建 a目录
mkdir -p a/b # 创建 a目录,并在a目录里创建b目录
mkdir -m 777 c # 创建一个权限为777的C目录
rmdir  # 删除目录(如果目录里有文件,则不能用此命令)

Vi/vim 创建/查看/编辑文件

vim a.txt # 创建a.txt
# 命令行:Esc切换到命令行模式。
# 编辑模式:
# 按i,在光标前开始编辑
# 按a,在光标后开始编辑
# 按o,在当前行的下一行开始编辑
# 按u, 撤销之前的操作
# 底行模式:按  shift+:冒号。

:q! # 不保存退出
:wq # 保存退出
:/world # 从当前光标处,向上查找world关键字
:?world # 从当前光标处,向后查找world关键字

删除文件 RM

rm # 删除文件
rm n.txt # 提示y删除n放弃
rm –f n.txt # 不提示
Rm -r a # 提示递归删除目录下所以内容
rm –rf dirname # 不提示递归删除目录下所以内容
rm –rf * # 删除当前文件夹所有文件
rm –rf /* # 删除根目录文件下所有子目录所有和文件,慎用

复制和移动文件

cp # 复制文件:cp 源文件 目标文件
cp nginx.conf n.txt

cp –R 源文件夹 目标文件夹  #复制整个目录
cp –R tomcat1 tomcat2   #复制整个目录

mv # 修改文件名或移动文件
mv n.txt m.txt 修改文件名称

浏览文件

cat # 输出文件所有的内容
more # 输出文档所有的内容,分页输出,空格浏览下一屏,q退出
less # 用法和more相同,只是通过PgUp、PgOn键来控制
tail # 用于显示文件后几号,使用频繁
tail -10 nginx.conf # 查看nginx.conf的最后10行
tail –f nginx.conf # 动态查看日志,方便查看日志新增的信息
tail –f -n 100 nginx.conf # 显示最后100行日志,并动态查看后续日志,方便查看日志新增的信息
tail -f soms-log-info.2021-10-22.log |grep -E "上传影像件Str信息"  # 动态查看日志,只查看过滤后的信息
ctrl+c 结束查看

修改文件权限:

# chmod  (u g o a)   (+ - =)   (r w x)   (文件名)
# [u g o a]    含义
# u    user 表示该文件的所有者
# g    group 表示与该文件的所有者属于同一组( group )者,即用户组
# o    other 表示其它用户组
# a    all 表示这三者皆是

# [+  -  =]    含义
# +    增加权限
# -    撤销权限
# =    设定权限

# [r   w   x]    含义
# r    read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
# w    write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
# x    excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。

sudo chmod 777
# 第一个数字7:代表用户 u 的权限 rwx, 4 (r) + 2 (w) + 1 (x) =  7
# 第二个数字7:代表用户 g 的权限 rwx,    4 (r) + 2 (w) + 1 (x) =  7
# 第三个数字7:代表用户 o 的权限 rwx,    4 (r) + 2 (w) + 1 (x) =  7
# 0:无权限
# 1:执行权限
# 2:写入权限
# 3:写入和执行权限
# 4:读取权限
# 5:读取和执行权限
# 6:读取和写入权限
# 7:读取、写入和执行权限

文件打包压缩或解压命令

# tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成name.tar.gz的文件。
# -c 创建一个新的tar文件
# -v 显示运行过程的信息
# -f 指定文件名
# -z 调用gzip压缩命令进行压缩
# -t 查看压缩文件的内容
# -x 解开tar文件

tar –cvf n.tar ./*  # 打包当前目录下的所有文件和目录,文件名为n.tar
tar –xvf n.tar # 解压压缩包中的文件到当前目录(如果长时间未解压成功 Ctrl+C推出)

tar -zcvf m.tar.gz ./* # 压缩当前目录下的所有文件和目录
tar -zxvf m.tar.gz        # 解压m.tar文件到当前目录
tar -zxvf 打包文件.tar.gz -C 目标路径  # 解压缩到指定路径

文件上传下载

yum install lrzsz  # 安装上传工具

rz filename # 文件上传

sz filename # 文件下载

cat编辑文件命令

# 向文件1.txt输入覆盖内容
cat <<EOF > 1.txt 

grep命令

grep root  /etc/passwd   # 在文件中查找关键字root
grep root  /etc/passwd  –-color       # 高亮显示
grep root  /etc/passwd  –A5 –B5       # 高亮显示,A后5行,B前5行
grep -n root /etc/passwd  查找并显示行数
grep -v root /etc/passwd   取反,查出不含root的数据

查找 find

# find [dir] [expression]

# a. 按文件类型查找:
find . -type f # 查找所有普通文件
find . -type d # 查找所有目录

# b. 按文件大小查找:
find . -size +10M # 查找大小大于10M的文件
find . -size -10k # 查找大小小于10k的文件

# c. 按文件修改时间查找:
find . -mtime +30 # 查找修改时间30天前的文件
find . -mtime -2 # 查找修改时间在2天内的文件

# d. 组合使用选项:
find . -name "*.txt" -type f -size +10M -mtime -30

关机/重启

# 关机/重启 不指定选项和参数,默认表示 1 分钟之后 关闭电脑,远程维护服务器时,最好不要关闭系统,而应该重新启动系统

shutdown -r now # 重新启动操作系统,其中 now 表示现在
shutdown now # 立刻关机,其中 now 表示现在
shutdown 20:25 # 系统在今天的 20:25 关机
shutdown +10 # 十分钟后自动关机
shutdown -c # 取消之前指定的关机计划

远程登录和复制文件

# 远程登录和复制文件
# ssh  远程登录:ssh [-p port] user@remote
# 	user 是在远程机器上的用户名,如果不指定的话默认为当前用户
# 	remote 是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名
# 	port 是 SSH Server 监听的端口,如果不指定,就为默认值 22
ssh -p 22 root@192.168.7.233

# 远程拷贝文件
# scp 就是 secure copy ,是一个在 Linux 下用来进行远程拷贝文件的命令,它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径 
scp -P port 01.py user@remote:Desktop/01.py # 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py 

# 加上 -r 选项可以传送文件夹
scp -r user@remote:Desktop demo # 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹 

查询linux资源情况

free -m  #  查询内存使用情况

df -h # 查看整个磁盘还剩多少空间,可以使用命令

# 2.如果并不关心磁盘还剩余多少空间,只是需要知道当前的文件夹下的磁盘使用情况,可以使用如下命令:
du --max-depth=1 -h

# 列出文件夹下所有文件及文件夹大小
du -h 文件名

# 查看cup数量
cat /proc/cpuinfo |grep 'processor'|wc -l

安装JDK

# 1. 下载jdk安装包并上传到linux
# 2 解压文件
tar -xvf jdk-8u51-linux-x64.tar.gz
# 3 配置环境变量,配置文件路径: 
vim /etc/profile

# 4 让环境变量生效:(两种方式)
# 4.1.重启Linux服务器
# 4.2. 执行命令,重新加载资源文件 
source /etc/profile

# 5 检查JDK是否有效

查看进程 ps

# 1. 查找指定的服务的PID号
ps -ef | grep 服务名称
ps -ef | grep java* # 查找启动的java项目PID号 

# -e 显示所有进程
# -f 全格式
# -h 不显示标题
# -l 长格式
# -w 宽输出
# -a 显示终端上的所有进程,包括其他用户的进程。
# -r 只显示正在运行的进程。
# -u 以用户为主的格式来显示程序状况。
# -x 显示所有程序,不以终端机来区分。

# 根据pid查看进程
ps -ef |grep -v grep|grep 1905236

关闭进程 kill

kill PID # 简单的关闭进程
kill -15 PID # 可以执行关闭的操作,但是进程必须杀死
kill -9 PID # 强制杀死进程

# 获取pid,并杀死进程
# 通过cut截取出pid,可能存在错误
ps -ef | grep mall-shop-1.0-SNAPSHOT | grep -v grep | cut -c 9-16 | xargs kill -s 9

# 通过awk 取第二个变量
ps -ef | grep mall-shop | grep -v grep | awk '{print $2}' | xargs kill -s 9
# ps -ef 查看服务器的进程信息 -e:等价于 -A,表示列出全部的进程 -f:显示全部的列
# grep mall-shop:查找含有 ‘mall-shop’ 的行
# grep -v:反向查找,grep -v grep:查找不含有 grep 的行
# awk ‘{print $2}’:一行一行的读取显示的信息, 以空格作为分隔符,打印第二个字段
# xagrs:接收管道传过来的参数, xargs kill -9:将前面获取到的进程号通过空格分割,传递给 kill -9,杀死所有进程

配置Linux防火墙策略

# 1 检查防火墙状态
systemctl status firewalld 
firewall-cmd --state

# 2 防火墙 禁用/启用 配置
systemctl disable firewalld.service  # 下次开机开始禁用防火墙
systemctl enable firewalld.service   # 下次开机开始启用防火墙,默认启用

# 3 手动开关防火墙
systemctl stop firewalld.service        # 关闭
systemctl start firewalld.service      #  开启

# 4 手动开放防火墙端口
# 1). 检查防火墙开放的端口
firewall-cmd --list-ports

# 2).检查端口是否开放
firewall-cmd --query-port 80/tcp

# 3). 开启防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 4).移除端口
firewall-cmd --zone=public --remove-port=9090/tcp --permanent

# 5).关于防火墙操作的解释
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–remove-port=80/tcp #移除端口,格式为:端口/通讯协议
–permanent  #永久生效,没有此参数重启后失效

# 6).重启防火墙
firewall-cmd --reload

# 7).开启指定端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent

查看已知端口占用情况

# 查看已知端口占用情况,如果没有被占用,就什么都不显示
netstat -anp | grep 8080
netstat -tln | grep 8080

# 查看全部端口占用情况
netstat -anp
# 或者
netstat -tln

# 查看具体端口被哪个程序占用,如果没有被占用,就什么都不显示
lsof -i :8080

修改IP地址

# 1-
./ip-static
ip: 192.168.137.131

# 2-
cd /etc/sysconfig/network-scripts
vim ifcfg-ens33 # 修改制定Ip

service network restart # 重启网络
systemctl stop NetworkManager  # 禁用NetworkManager

# 3.配置DNS
vi /etc/resolv.conf

# 4.网卡启动失败
# 禁用NetworkManager
# 1、
systemctl stop NetworkManager
# 2、
systemctl disable NetworkManager
# 重启之后,网络恢复正常

dos界面与图形化界面切换快捷键

# 图形到dos:
ctrl+alt+f2
# dos到图形:
startx

# 或者在命令上输入 
init 3 # 切换到dos界面
init 5 # 切换到图形界面

切换用户

# su 用户名
su root

安装Nginx

# 1 官网下载:http://nginx.org/en/download.html
# 2 上传安装包 /usr/local/src

# 3 解压Nginx 压缩文件
tar -xvf nginx-1.19.4.tar.gz

# 4.移动安装目录到指定文件
mv nginx-1.19.4.tar.gz software/

# 5.修改已解压文件名称
mv nginx-1.19.4 nginx-source

# 6.安装nginx服务
# 6.1) 进入 nginx-source 目录
cd nginx-source
# 6.2) 执行命令 
./configure
# 6.3) 在nginx-source的根目录中 执行 make
make install

# 7) 查找nginx工作目录,输入命令
whereis nginx

# 8) 启动Nginx
# 8.1) 进入nginx/sbin目录
# 8.2) 执行命令
./nginx # 启动命令
./nginx -s reload # 重启命令
./nginx -s stop # 关闭命令

# 9) 配置代理
# 9.1) 就进入到 /usr/local/nginx/conf 目录
# 9.2) 修改 nginx.conf 文件

java jar 启动

nohup java -jar 8091.jar => 8091.log & # 后台启动,将日志写到 8091.log
nohup java -jar 8091.jar => 8091.log & nohup java -jar 8092.jar => 8092.log & # 批量后台启动,将日志写到 8091.log

文章来源:https://blog.csdn.net/m0_58660225/article/details/135236825
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。