linux常用命令总结

2 篇文章 0 订阅
2 篇文章 0 订阅

Linux常用命令总结

一、编辑器

1. vi

# 编辑 test.txt 内容(此时是只读模式)
vi test.txt
  • i 按i进入编辑模式,此时可以编辑文件内容。
  • ESC 按下此键,输入 : 可进入命令模式 ,在命令模式下,有三种命令可以使用:
    • q! 强制退出文件,不保存。
    • q 退出文件。
    • wq 保存文件内容并退出文件。

2. vim

vimvi 的升级版本,用法与 vi 一致。

二、目录

1. 切换目录

# 切换到某个目录下
cd xxx
# 返回上层目录
cd ..
# 输出当前工作目录
pwd

2. 创建目录

# 创建xxx目录
mkdir xxx

# 创建多层目录
mkdir -p xxx/xxx/xxx

3. 删除目录

# 删除xxx目录
rmdir xxx

# 删除多层目录
rmdir -p xxx/xxx/xxx

4. 移动目录

# 移动test目录到xxx目录下
mv test xxx

三、文件

1. 创建文件

创建文件有三种方式,分别是 vim、touch、cat

# 打开文件,如果该文件不存在则创建
vim test.txt

# 直接创建文件
touch test.txt

# 通过键盘输入创建文件(输入完内容后按Ctrl+c结束)
cat > test.txt

2. 删除文件

rm [可选项] 文件或目录

可选项有:r 表示递归删除,f表示不提示是否删除。

# 删除test.txt文件(不带-r可选项的命令方式不能删除目录)
rm test.txt

# 删除test.txt文件,且不提示是否删除
rm -f test.txt

# 递归删除test目录及目录下的文件,会给出删除提示
rm -r test

# 递归删除test目录且不给出删除提示(慎用)
rm -rf test

3. 复制文件

# 将test.txt文件复制到xxx目录下(xxx目录必须存在)
cp test.txt xxx

# 将test.txt文件复制到a.txt文件中
cp test.txt a.txt

4. 移动文件

# 移动文件test.txt文件到xxx目录下
mv test.txt xxx

# 将test.txt重命名为test_new.txt
mv test.txt test_new.txt

5. 查看文件

# 查看test.txt文件
cat test.txt

# 编辑并查看test.txt文件
vim test.txt

四、系统配置文件

# 查看系统配置文件
cat /etc/profile

# 编辑系统配置文件
vim /etc/profile

# 使系统配置文件生效
source /etc/profile

五、权限

5.1 三种权限

linux 系统中,任何一个文件或目录都有 三部分权限,依次分别是:所属用户权限、所属组权限,其他用户权限。而权限又分

为三种,分别是:r 可读(Read)、w 可写(write)、x 可执行(Execute)

5.2 修改文件权限

chmod 用来修改文件或目录的 权限

chmod [-R] [u g o][+-=权限] 文件名或者目录
或者
chmod [-R] [421][421][421] 文件名或者目录 (421分别表示读写可执行权限) 如:chmod 777 文件名

# 赋予a.txt所属用户可执行权限
chmod u+x a.txt

# 移除a.txt所属用户可执行权限
chmod u-x a.txt

# 赋予a.txt的所属用户及所属用户组及其他用户的写权限
chmod +w a.txt

# 移除a.txt的所属用户及所属用户组及其他用户的写权限
chmod -w a.txt

# 赋予a.txt所属用户读写及可执行权限
chmod u=rwx a.txt

# 移除a.txt所属用户的读权限
chmod -r a.txt

# 将/opt目录及其所有文件的可读权限赋予给其他用户
chmod -R o+r /opt/

5.3 修改所属用户及用户组

chown 用来修改文件或目录的 所属用户 (也可以同时修改文件所属的用户组)

chown [-R] 用户名 文件名或者目录
或者
chown [-R] 用户名:用户组 文件名或者目录

# 将a.txt所属用户修改为admin
chown admin a.txt

# 将/opt目录及其所有文件的所属用户修改为admin
chown -R admin /opt/

# 将a.txt所属用户修改为admin,同时将所属用户组修改为root(同时修改用户名和用户组)
chown admin:root a.txt

chgrp 用来修改文件或目录的 所属用户组

chgrp [-R] 用户组 文件名或者目录

# 将a.txt所属用户组修改为admin
chgrp admin a.txt

# 将/opt目录及其所有文件的所属用户组修改为admin
chgrp -R admin /opt/

5.4 用户

# 新增admin用户
useradd admin

# 新增admin用户,同时指定所属用户组wheel
useradd -g wheel admin

# 为admin用户设置密码
passwd admin

# 修改admin用户所属用户组为root
usermod -g root admin

# 删除用户
userdel admin

# 查看用户的相关信息
id 用户名

# 查看所有用户
cat /etc/passwd

5.5 用户组

# 新增aihao用户组
groupadd aihao

# 修改用户组名称
groupmod -n 要修改的用户组名称 新名称
# 将aihao用户组修改为AiHao
groupmod -n aihao AiHao

# 删除aihao用户组
groupdel aihao

# 查看所有用户组
cat /etc/group

5.6 sudo权限

当用户无权限执行某些命令或者无权限操作文件时,如果该用户具有 sudo 权限,则可通过 sudo 需要执行的命令 直接执行。

用户获取 sudo 权限有两种方式:1、将用户设置成 sudo 用户

​ 2、将用户所属的用户组设置为 sudo 组。

# 查看所有拥有sudo权限的用户和用户组,可以通过修改该文件来配置新的sudo用户和用户组。
cat /etc/sudoers

## Allow root to run any commands anywhere 
## 允许root用户在任何地方执行任何命令(sudo 需要执行的命令),随后输入用户的密码即可执行。
root	ALL=(ALL) 	ALL
这里可以设置新的sudo权限用户(配置方式如上行)

## Allows people in group wheel to run all commands
## 允许wheel组中的用户执行任何命令(sudo 需要执行的命令),随后输入用户的密码即可执行。
%wheel	ALL=(ALL)	ALL
这里可以设置新的sudo权限用户组(配置方式如上行)

## Same thing without a password
## 与上面效果一样,同样具有sudo权限。(sudo 需要执行的命令)不同之处在于,无须输入用户密码。
# %wheel	ALL=(ALL)	NOPASSWD: ALL

六、网络

有的时候需要查询自身机器的 IP 地址或进行其他操作,则此时可以使用 ifconfig 命令

# 查看网络相关信息
ifconfig

# 重启网络
systemctl restart NetworkManager

七、其他常用命令

1. ls 和 ll

# 列出当前目录下的所有文件(只列出文件名)
ls 

# 列出当前目录下的所有文件及详细信息(修改时间、文件大小、文件权限等)
ls -l

# 等价于ls -l
ll

# 列出当前目录下的所有文件及详细信息,包含隐藏文件
ll -a

2. echo

# 输出系统变量
echo $PATH
# 输出java安装目录
echo $JAVA_HOME

3. > 和 >>

>>> 都是把前一个命令的执行结果输出到到另一个文件中,如果该文件不存在,则新建。如果存在,则写入该文件中。

注意点:> 是覆盖写入、>> 是追加写入。

# 将ls执行的结果覆盖写入test.txt文件中
ls > test.txt

# 将ls执行的结果追加写入到test.txt文件中
ls >> test.txt

# 将test.txt中的内容写入到demo.txt中
cat test.txt > demo.txt

# 将运行jar包所输出的控制台内容写入到test.txt中
java -jar demo.jar > test.txt

4. 日期和日历

# 查看当前日期
date
# 查看当前日历
cal
# 查看2020年日历
cal 2020

5. find 命令

find 可查询文件、* 代表通配符。

# 查询test.txt文件
find test.txt

# 查询所有名称中带有test的文件或目录
find *test*

# 查看命令所在路径
which 命令
whereis 命令

6. grep 过滤命令

grep 可以对前一个搜索命令或查看命令的结果,按名称进行过滤。

搜索命令 | grep [可选项] 过滤条件

查看命令 | grep [可选项] 过滤条件

可选项有:i 表示忽略大小写、n 显示行号

# 查询出含有java名称的进程
ps -ef | grep java

# 查看名称带有test的文件
ls | grep test

# 查看test.txt文件中有关beijing的内容
cat test.txt | grep beijing

7. 压缩和解压相关命令

7.1 gzip 和 gunzip

注意:gzipgunzip 只能压缩或解压单个文件 。

gzip 文件名:压缩单个文件,生成一个 .gz 的压缩包,并把原来的文件删除。

gunzip 压缩包名称:解压 .gz 压缩包,并把该压缩包删除。

# 压缩单个文件
gzip 文件名
gzip test.txt

# 解压gz文件
gunzip 压缩包名称
gunzip test.txt.gz
7.2 zip 和 unzip

zipunzip 可以压缩(打包)或解压多个文件及目录。但是 linux 系统中没有该命令,需要额外下载该工具,使用 yum install -y zip unzip 可以进行下载安装。

zip 目标压缩包名称(通常用 .zip) 多个文件或目录:压缩多个文件或目录,生成指定名称及后缀的压缩包。

unzip 压缩包名称:解压指定的压缩包。

# 压缩(打包)多个文件和文件夹
zip 目标压缩包名称 多个文件或目录(中间用空格分开)
zip demo.zip test.txt testDir

# 解压到当前目录下
unzip 压缩包名称
unzip demo.zip

# 解压到指定的目录下
unzip 压缩包名称 -d 目录名称
unzip demo.zip -d /opt/test
7.3 tar 命令

tar [选项] :一个命令即可以完成压缩(打包)和解压多个文件及目录的功能

选项有:z表示打包并压缩、c 表示压缩、x表示解压、v表示显示详细信息、f表示指定压缩后的文件名。

tar -c 目标压缩包名称(通常用 .tar.gz) 多个文件或目录 :压缩多个文件或目录,生成指定名称及后缀的压缩包。

tar -x 压缩包名称 :解压指定的压缩包。

# 压缩(打包)多个文件和文件夹
tar -zcvf 目标压缩包名称 多个文件或目录(中间用空格分开)
tar -zcvf demo.tar.gz a.txt b.txt test

# 解压到当前目录下
tar -zxvf 压缩包名称
tar -zxvf demo.tar.gz

# 解压到指定的目录下
tar -zxvf 压缩包名称 -C 目录名称
tar -zxvf demo.tar.gz -C /opt/test

8. 软件管理

8.1 RPM包管理

在Linux系统中,都是通过 RPM 来安装和管理软件的,即软件后缀都是 .rpm 格式的。

# 安装软件
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm

# 查看已经安装的软件
rpm -qa

# 查看已安装的软件,过滤出mysql软件
rpm -qa | grep mysql

# 查看某个软件的安装信息
rpm -qi 软件名

# 卸载软件
rpm -e mysql-community-common-8.0.25-1.el7.x86_64.rpm
或 
yum remove mysql-community-common-8.0.25-1.el7.x86_64.rpm # (推荐使用,能够自动卸载依赖包)
8.2 YUM包管理

由于使用 RPM 来安装软件时,有时软件的安装需要依赖于其他 RPM安装包 ,这时需要我们自己手动去下载并安装,非常的麻烦。

因此,产生了YUM包管理工具,在安装软件时,可以自动的去下载安装软件所需要的依赖。

# 查看已经安装的软件
yum list

# 查看某个软件的安装信息
rpm -qi 软件名

# 安装zip和unzip软件工具
yum install zip unzip

# 卸载zip和unzip软件工具
yum remove zip unzip

八、运维常用命令

1. 进程

1.1 查看进程

ps 显示当前系统进程信息

# 只会显示应用进程
ps

# 显示所有进程
ps -e

# 以全格式的形式显示所有进程
ps -ef

# 效果与ps -ef类似,不同在于增加了进程的cpu和内存使用率
ps -aux 

# 查看所有与java有关的进程
ps -ef | grep java
1.2 关闭进程
# 根据端口号关闭进程
sudo fuser -k -n tcp 端口号

# 根据进程号关闭进程
kill -9 PID(进程号)

2. 服务

服务是支持 linux 系统的一些必要程序,本质上也是一种进程,叫守护进程。相当于 windows 中的 services.msc

linux 操作服务:systemctl [start | stop | restart | reload | status] 服务名称

windows 操作服务:net [start | stop ] 服务名称

# 显示系统的所有服务信息
systemctl 

# 显示系统的所有服务信息(开机自启与否)
systemctl list-unit-files

# 查看mysql的运行状态
systemctl status mysqld

# 关闭mysql服务
systemctl stop mysqld

# 开启mysql服务
systemctl start mysqld

3. 查看端口占用情况

# 查看当前系统端口占用情况
netstat -ant

4. 查看CPU占用情况

# 查看CPU占用情况
top

5. 查看内存使用情况

# 查看内存使用情况
free -mh

6. 清除系统缓存

# 清除系统缓存
echo 3 > /proc/sys/vm/drop_caches

7. 定时任务

# 查看并编辑定时任务
crontab -e

#定时任务格式: 分 时 日 月 周 待执行的脚本 (* * * * * /home/my.sh )

# 查看并编辑root账户下的定时任务
crontab -u root -e

8. 后台运行程序包

我们在部署项目到服务器的时候,常常需要让程序一直在后台运行,比如运行 jar 包程序等。

# 后台运行demo.jar程序,并将程序执行的输出内容覆盖写入到log.txt中
nohup java -jar demo.jar > log.txt &

# 后台运行demo.jar程序,并指定dev环境运行。
nohup java -jar demo.jar --spring.profiles.active=dev &

9. nginx

# 启动nginx进程,在sbin目录下运行./nginx即可启动nginx
./nginx

# 停止nginx进程,先找出nginx的进程ID,再杀死
ps -ef | grep nginx
kill -9 进程ID

# 重启nginx进程
./nginx -s reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总是提示已注册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值