【03】linux基本命令的使用
Linux 下文件和目录的特点
- Linux 文件 或者 目录 名称最长可以有 256 个字符
- 以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
- . 代表当前目录
- .. 代表上一级目录
目标:
- 理解学习linux终端命令的原因
- 常用linux命令实践
原因
- Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管
理、文件权限 设定等 - 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护
工作都需要通过命令来完成 - 作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令
- Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已
- 学习终端命令的技巧:
- 不需要死记硬背,对于常用命令,用的多了,自然就记住了
- 不要尝试一次学会所有的命令,有些命令是非常不常用的,临时遇到,临时百度就可以
常用Linux命令的基本使用
序号|命令|对应英文|作用
---|---|---|---|---
01|ls|list|查看当前文件夹下的内容
02|pwd|print work directory|查看当前所在文件夹
03|cd[目录名]|change directory|切换文件夹
04|touch[文件名]|touch|如果文件不存在,新建文件
05|mkdir[文件名]|make directory|创建目录
06|rm[文件名/目录名]|remove|删除指定的文件或目录
07|clear|clear|清屏,等同于ctrl+L
08|mv[文件名/目录名][文件名/路径]|move|两个作用:[修改文件或目录名为新的名字][移动文件或目录到新的路径下]
09|cp[文件名/目录名][路径]|copy|复制文件/目录到新的路径下
10|cat[文件名]|Concatenate|查看文件内容
11|su|Swith user|切换用户,切换到root用户,“-”表示用户的环境变量一起切换,“-c”,仅执行一次命令,而不切换用户身份
12|chown|Change owner|改变所有者
13|chgrp|Change group|改变用户组
14|ps|Process Status|进程状态
15|chmod 权限数字 [文件名/目录名]|Change mode|改变文件或目录权限
16|head|head|查看文件前几行(默认10行),-n:指定行数
17|tail|tail|查看文件的后几行,-n:指定行数,-f(follow)动态显示文件内容
18|ln|link|产生链接文件,类似win中创建快捷方式
19|man|manual|获取命令或者配置文件的帮助信息
20|help|查看shell内置命令的帮助信息
小技巧:
ctrl + shift + =:放大终端窗口的字体显示
ctrl + -:缩小终端窗口的字体显示
文件系统操作
- 常用选项
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
ll等同于ls -al
- ls 通配符的使用
通配符 | 含义 |
---|
- |代表任意个数个字符
? |代表任意一个字符,至少 1 个
[] |表示可以匹配字符组中的任一一个
[abc] |匹配 a、b、c 中的任意一个
[a-f] |匹配从 a 到 f 范围内的的任意一个字符
切换目录:
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd .. | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
- 相对路径和绝对路径
- 相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
- 绝对路径:在输入路径时,最前面是 / 或者~,表示从根目录/家目录开始的具体目录位置
删除目录/文件
使用 rm 命令要小心,因为文件删除后不能恢复
选项 | 含义 |
---|---|
-f | force,强制删除,忽略不存在的文件,无需提示 |
-r | recursive,递归地删除目录下的内容,删除目录时必须加此参数 |
扩展点: 删除乱码文件
一些文件乱码后使用rm -rf 依然无法删除
此时,使用ll -i 查找到文件的inode节点
然后使用find . -inum 查找到的inode编号 -exec rm {} -rf \;
就能顺利删除了
修改文件名称/移动文件
mv aaa bbb:修改文件名aaa到bbb
mv aaa bbb/ccc:将aaa文件移动到bbb目录下并改名为ccc
复制文件
cp aaa '路径':复制aaa文件到'路径'下
[语法]:cp [-rp] 源文件或目录 目的目录
-r :递归处理,复制目录
-p :保留文件属性(yuan)
创建文件
- 创建文件或修改文件时间
- 如果文件 不存在,可以创建一个空白文件
- 如果文件已经存在,可以修改文件的末次修改日期
- touch 文件名:创建文件
- touch {文件名1,文件名2}:同时创建多个文件
- echo "hello,nice to meet u" > aaa:向文件aaa中写入hello,nice to meet u【如果aaa文件存在,则覆盖掉原数据】
- echo 'hi baby' >> aaa:向文件aaa中末尾处追加hi baby
创建文件夹
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
- mkdir 目录名
新建目录的名称 不能与当前目录中 已有的目录或文件 同名
查看文件内容
- cat 命令可以用来查看文件内容、文件合并等功能
- cat 会一次显示所有的内容,适合查看内容较少的文本文件
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
cat 文件名:查看文件内容
- more命令可以用于分屏显示文件内容,每次只显示一页内容
- 适合于 查看内容较多的文本文件
使用 more 的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter 键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
- head:head 文件名
[root@master data]# head idf.txt
劳动防护 13.900677652
生化学 13.900677652
奥萨贝尔 13.900677652
考察队员 13.900677652
岗上 11.5027823792
倒车档 12.2912397395
编译 9.21854642485
蝶泳 11.1926274509
外委 11.8212361103
故作高深 11.9547675029
[root@master data]# head -3 idf.txt
劳动防护 13.900677652
生化学 13.900677652
奥萨贝尔 13.900677652
- tail:tail 文件名
[root@master data]# tail idf.txt
拿手戏 13.2075304714
冯公子 13.2075304714
哲 9.34680076038
外行话 12.1089181827
防冻液 11.0674643079
推服 13.2075304714
丝路 10.604840786
一闹 10.1394775363
写封信 10.1630080337
玩花样 13.2075304714
[root@master data]# tail -3 idf.txt
一闹 10.1394775363
写封信 10.1630080337
玩花样 13.2075304714
- ln:
- ln -s [源文件] [目标文件] ---> 创建软链接,源文件使用绝对路径
- ln [源文件] [目标文件] ---> 创建硬链接
命令 | 语法 | 作用 | 示例 |
---|---|---|---|
find | find [搜索路径] [匹配条件] | 查找文件或目录 | find -name 123.txt:当前路径下查找123.txt文件 |
参数1 | -name | 按名称查找、精确查找 | find / -name 123.txt |
参数2 | -iname | 按名称查找,不区分大小写、模糊查找 | find / -iname abc*:查找根目录下所有abc开头的、find / -iname abc??? 在“/”目录下查找abc开头并且后面有三位的文件 |
参数3 | -size | 按文件大小查找,以block为单位,一个block是512B, 1K=2block、+:大于、-:小于、不写:是等于 | find / -size -102400,在根目录下找小于100M的文件 |
参数4 | -type | 按文件类型查找,f:二进制文件、l:软连接文件、d:目录、c:字符文件 | find / -type f --->查找根目录下的二进制文件 |
- Find Tips
- 当使用正则时候,加双引号:find / -name "*abc" ---> 查找根目录下以abc结尾的所有文件
- 模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用\*。
grep命令
- Linux系统中grep命令是一种强大的文本搜索工具
- grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式
选项 | 含义 |
---|---|
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
- 常用的两种模式查找
参数 | 含义 |
---|---|
^a | 行首,搜寻以 a 开头的行 |
ke$ | 行尾,搜寻以 ke 结束的行 |
管道 |
- Linux 允许将一个命令的输出可以通过管道做为另一个命令的输入可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里【|】的左右分为两端,左端塞东西(写),右端取东西(读)
- 常用的管道命令有:
- more :分屏显示内容
- grep :在命令执行结果的基础上查询指定的文本
linux权限描述格式解读
示例:drwxr-xr-x
- d:表示节点类型('d':文件夹---'-':文件---'l':链接)
- r:可读
- w:可写
- x:可执行
第一组rwx:表示文件拥有者对它的权限:可读可写可执行
第二组x-r:文件所属组的权限:可读可执行,不可写
第三组x--:其他用户组权限(不包含以上两组):可执行,不可写、不可读
修改权限
字符修改权限
- chmod g -rw aaa: 将aaa文件所在用户组权限:不可读、不可写
- chmod o -rw: 将aaa文件其他用户组权限:不可读、不可写
- chmod u+x:将aaa文件所属用户权限增加x
数字修改权限
r = 4
w = 2
x = 1
777:一位数字代表一个用户组,每个用户组的权限之和为7
chmod 777 aaa:aaa文件全部用户组拥有可读、可写、可执行权限
chmod 644 aaa: rw-r-r
多级目录权限的修改【递归修改权限】:
chmod - R 644 aaa:aaa目录下所有的文件按文件夹的权限都更改为644
示例:
444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx
其他
echo
重定向: > 和 >>
管道: |
终端实用技巧
- 自动补全
- 在敲出文件/目录/命令的前几个字母之后,按下tab键
- 如果输入的没有歧义,系统会自动补全
- 如果还存在其他文件/目录/命令,再按一下tab键,系统会提示可能存在的命令
- 曾经使用过的命令
- 按上/下光标键可以在曾经使用过的命令之间来回切换
- 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c
Tips
- ctrl + c:强制关闭
- ctrl + z:后台运行
wc指令比较实用,可以统计文件中的字节数、字符数、行数、字数等。
先通过 wc --help 查看指令帮助
which命令
Linux which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix