常用Linux命令

目录操作

创建目录

使用 mkdir 命令可以创建一个新的目录

bash 复制代码
# 在当前目录下创建一个名为 test 的目录
mkdir test

删除目录

使用 rm 命令可以删除一个目录。如果目录中包含文件或子目录,需要使用 -r 参数来递归删除

bash 复制代码
# 递归删除名为 test 的目录
rm -r test

显示当前目录

使用pwd命令可以显示你当前所处目录的完整路径

bash 复制代码
pwd

定位目录

使用 cd 命令可以定位到指定的目录

bash 复制代码
# 进入名为 test 的目录
cd test

查看目录文件

使用 ls 命令可以查看指定目录下的文件和子目录

bash 复制代码
# 查看当前目录下的所有文件和子目录
ls

# 使用 ll 命令可以查看更详细的信息,包括文件的权限、所有者、大小等 是ls -l命令的简写
ll

修改目录名和移动目录

使用 mv 命令可以修改目录的名称或者移动目录。

bash 复制代码
# 将名为 test 的目录改名为 new_test
mv test new_test

# 将test目录移动到用户主目录下
mv test ~/

拷贝目录

使用 cp 命令可以将一个目录拷贝到另一个目录中。需要使用 -r 参数来递归拷贝子目录和文件

bash 复制代码
# 将名为 test 的目录拷贝到名为 backup 的目录中
cp -r test backup

文件操作

创建文件

bash 复制代码
# 使用 touch 命令可以创建一个新的空文件
touch test.txt

# 可以使用 vi 命令创建并编辑文件
vi test.txt

删除文件

使用 rm 命令可以删除一个文件

bash 复制代码
# 删除名为 test.txt 的文件
rm test.txt

# 要删除一个目录及其下的所有文件和子目录,可以使用 -rf 参数来强制递归删除
rm -rf test

修改文件名

使用 mv 命令可以修改一个文件的名称

bash 复制代码
# 将名为 test.txt 的文件改名为 new_test.txt
mv test.txt new_test.txt

拷贝文件

使用 cp 命令可以将一个文件拷贝到另一个目录中

bash 复制代码
# 将名为 test.txt 的文件拷贝到名为 backup 的目录中
cp test.txt backup/

# 拷贝多个文件,可以在命令中列出所有要拷贝的文件名,然后指定目标目录
cp file1.txt file2.txt file3.txt backup/

查找文件

bash 复制代码
 # 一般查找
 find pathName -name fileName
 find / -name httpd.conf
 
 # 模糊匹配查找
 find / -name *.conf

查找执行文件

bash 复制代码
# which用于从系统的PATH变量所定义的目录中查找可执行文件的绝对路径
which passwd # 返回绝对路径 /usr/bin/passwd

# whereis用法同which,但它不仅能找出二进制文件的绝对路径 还能找出相关的man文件
whereis passwd # passwd: usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz ...

文件压缩打包

bash 复制代码
# gzip用于单个文件压缩
# 压缩
gzip install.log // 压缩成install.log.gz
# 解压
gunzip install.log.gz // 解压成install.log

# tar用于将整个目录中所有文件整合成一个包,整合包还可以通过gzip进行压缩,整合后的包后缀为.tar
# 同时整合和压缩后的包后缀为tar.gz 或简写为.tgz

# -z使用gzip压缩 -c创建压缩文件 -v显示当前被压缩的文件 -f应用当前传入的文件名也就是boot.tgz
tar -zcvf boot.tgz /boot

# -x从归档文件中提取文件 运行下述命令从boot.tgz中解压成boot目录
tar -zxvf boot.tgz 

文件和目录权限

改变文件权限

bash 复制代码
# Linux下每个文件都定义了文件拥有者(user)、拥有组(group)、其他人(others)的权限
# 我们使用u、g、o来表示 具体权限则使用(r:读)(w: 写)(x: 操作)来定义 增加权限使用+ 删除权限使用-

# 给用户增加读的权限
chmod u+r file.txt 
# 给用户删除写的权限
chmod u-w file.txt
# 给其他人增加操作的权限
chmod o+x file.txt

# 同时定义r=4,w=2,x=1, 如果权限是rwx,则数字表示为7,如果权限为r-x,则数字为5
# 假设拥有者的权限是读、写、执行 拥有组的权限是读、执行,其他人的权限是只读 则如下设置
chmod 754 file.txt

改变文件拥有者

bash 复制代码
# 更改文件的用户
chown userName file
chown john a.txt


# 更改文件的用户组
chown :userGroup file
chown :johnGroup a.txt

# 用一个命令实现用户和用户组的改动
chown userName:userGroup file
chown john:johnGroup a.txt

文件内容操作

查看文件

bash 复制代码
# 使用 cat 命令可以查看一个文件的内容
cat test.txt

# 使用 head 命令查看文件的前几行 看文件的前10行
head -n 10 test.txt

# 使用 tail 命令查看文件的后几行 看文件的最后10行
tail -n 10 test.txt

# 动态查看-f 实时更新内容
tail -f -n 10 test.log

编辑文件内容

bash 复制代码
# 使用 vim 命令可以编辑一个文件的内容
vim test.txt

# 移动光标:使用方向键或 h、j、k、l 等键来移动光标。
# 插入文本:按下 i 键进入插入模式,然后可以输入文本。按下 Esc 键退出插入模式。
# 保存文件:按下 : 键进入命令模式,然后输入 w 命令保存文件。如果要保存并退出 Vim,可以输入 wq 命令。
# 退出 Vim:按下 : 键进入命令模式,然后输入 q 命令退出 Vim。如果文件已经被修改,可以输入 q! 命令强制退出 Vim。
# 删除文本:在命令模式下,使用 x 命令删除光标所在位置的字符;使用 dd 命令删除整行文本。
# 查找文本:在命令模式下,输入 / 命令,然后输入要查找的文本,按下 Enter 键即可查找。
# 替换文本:在命令模式下,输入 :%s/old/new/g 命令,将文件中所有的 old 替换为 new。

查找文件内容

使用 grep 命令可以在一个文件中查找包含指定关键字的行

bash 复制代码
# 在名为 test.txt 的文件中查找包含关键字 hello 的行
grep 'hello' test.txt

# 支持一些参数,例如 -i 参数表示忽略大小写,-n 参数表示显示行号等
grep -n 'hello' test.txt

文本处理awk

基于列的文本处理工具。awk认为文件都是结构化的,也就是由单词和各种空白字符组成。非空白部分叫域,从左到右依次是 <math xmlns="http://www.w3.org/1998/Math/MathML"> 1 、 1、 </math>1、2..

bash 复制代码
# 语法
awk 'pattern { action }' file

# 内置变量
# NR:当前记录数(行号)。
# NF:当前记录中的字段数。
# $0:当前行的全部内容。
# $1, $2, ...:当前行的第一个、第二个字段

# 打印特定列
awk '{print $1, $3}' file.txt # 打印第一列和第三列

# 条件匹配
awk '$3 > 50 {print $1, $3}' file.txt # 打印第三列大于50的第一列和第三列

# 使用正则表达式
awk '/error/ {print $0}' file.txt # 打印包含 "error" 的所有行

文本处理sed

以行为单位的文本处理工具。默认不会修改文件本身,而是对流经sed命令的文本进行修改,并将修改后的结果打印到标准输出中。sed处理文本是。sed可以做删除、查找替换、添加、插入、从其他文件读入数据等。

bash 复制代码
# 语法
sed [options] 'command' file

# 文本替换
sed 's/old/new/g' file.txt

# 删除行
sed '3d' file.txt

# 插入行
sed '2i\This is a new line' file.txt # 在文件 file.txt 的第二行前插入 "This is a new line"

# 多行处理
sed -n '2,4p' file.txt # 打印文件 file.txt 中的第二到第四行

# 结合正则表达式
sed -n '/pattern/p' file.txt # 打印包含 "pattern" 的行

其他操作

查看进程

bash 复制代码
ps -ef | grep chrome

杀进程

bash 复制代码
# kill 常用的信号代码 HUP(1) Kill(9) TERM(15) 分别代表重启、强行杀掉、正常结束
kill -9 2100

显示磁盘空间使用情况

bash 复制代码
df -h

显示目录或文件的磁盘使用情况

bash 复制代码
du -sh /path/to/directory

显示内存使用情况

bash 复制代码
free -h

显示或配置网络接口

bash 复制代码
ifconfig

测试网络连接

bash 复制代码
ping google.com

SSH连接

可以通过 SSH 连接到远程主机

bash 复制代码
ssh user@hostname

scp复制

通过scp命令 连接SSH后将本地文件 复制到远程机器

bash 复制代码
scp file.txt user@hostname:/path/to/destination
相关推荐
2202_754421542 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
醉の虾14 分钟前
Vue3 使用v-for 渲染列表数据后更新
前端·javascript·vue.js
张小小大智慧23 分钟前
TypeScript 的发展与基本语法
前端·javascript·typescript
hummhumm32 分钟前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
asleep7011 小时前
第8章利用CSS制作导航菜单
前端·css
运维&陈同学1 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
hummhumm1 小时前
第 28 章 - Go语言 Web 开发入门
java·开发语言·前端·python·sql·golang·前端框架
幼儿园的小霸王1 小时前
通过socket设置版本更新提示
前端·vue.js·webpack·typescript·前端框架·anti-design-vue
疯狂的沙粒1 小时前
对 TypeScript 中高级类型的理解?应该在哪些方面可以更好的使用!
前端·javascript·typescript
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu