目录操作
创建目录
使用 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