- 在线手册
->2. 文件系统命令 - 系统管理命令
- 字符处理
- 网络相关命令
- 软件安装
掌握基础功能
掌握常用选项
正常输出
使用管道后的输出
Linux基础之文件系统
文件命名:/
和空字符
以外的所有字符都可以出现在文件名中,.
开头的文件为隐藏文件,默认不显示。Linux文件名大小写敏感
文件类型:
靠文件内容格式来区分文件类型而非文件拓展名,Linux并不严格要求文件要有拓展名
符号 | 说明 |
---|---|
- | 普通文件(概含windows所有文件类型,即数据文件) |
d | 目录文件(文件夹) |
l | 符号链接(类似于快捷方式) |
c | 字符设备文件(键盘、鼠标、打印机、显示器等字符流文件) |
b | 块设备文件(区别流式文件) |
p | 管道文件(用于进程之间通信) |
s | 套接字(socket)文件(用来描述网络通信) |
Linux文件系统:
单根的分层树型结构
Linux把不同的文件系统挂载(mount)在根文件系统不同的子目录(挂载点)上。
Linux系统目录:
挂载点 | 意义 |
---|---|
/ | 根目录 |
/bin | 存放重要的Linux命令的可执行文件 |
/boot | 存放用于启动Linux操作系统的所有文件(内核、启动文件) |
/dev | 存放连接到计算机的所有设备对应的文件 |
/etc | 默认的配置文件存放区,存放和特定主机相关的文件和目录 |
/home | 一般用户的主目录所在 |
/proc | 当前进程和系统信息(内存的映射) |
/tmp | 临时目录,所有人可读写(用户只能删除自己创建的文件) |
/usr | 综合目录,存放用户使用的命令和应用程序 |
/sbin | 存放用于系统管理的命令(仅限管理员使用的命令) |
/var | 可变目录,用于存放变动频繁的文件的目录(日志等,FTP默认位置) |
/root | root用户主目录 |
/lib | 共享库 |
/lost+found | 存放文件系统检测产生的碎片文件 |
主目录和当前目录:
用户主目录:默认的某用户用于存放自己文件的位置,/home/用户名,替代符
~
也可表示主目录
当前目录即当前工作目录,用户当前所在的目录,.
或./
表示当前目录,..
表示父级目录。
文件名通配符:
符号 | 意义 |
---|---|
* | 匹配任意长度的字符串,包括空字符(除过第一位出现的. ) |
? | 匹配任意一个单字符,不包括空字符 |
[] | 匹配括号中的任意一个字符 |
! | 跟在[之后,表示匹配除!后的所有字符 |
ls命令:
ls [-al] [路径列表]
、-a
显示所有文件、-l
以长格式显示文件信息、-F
显示文件类型说明符
符号 | 意义 |
---|---|
/ | 目录 |
* | 可执行文件 |
@ | 符号链接 |
| | 管道 |
= | socket文件 |
pwd命令:
pwd
打印当前工作目录完整路径
mkdir: 创建目录命令
madir [-p] [-m mode]
-p
创建目录树,即允许连续创建多级目录mkdir -p ~/aa/bb/cc
-m
创建时指定权限,以nnn
方式指定(三位八进制码,分别代表文件主、所属组、other的权限值)。
例:mkdir -m 750 doc
,分别有读写执行、读执行、空的权限
权限代码有三种
代码 | 权限 |
---|---|
4 | 读 |
2 | 写 |
1 | 执行 |
将同一个人的不同权限组合起来对应的代码值相加即此人对此文件的权限值
如读、写、执行
权限的代码值为4+2+1
即7
,读、执行
的权限值为4+1
即5
例:
ls -l
各字段解释详见:Linux ls -l 各字段解释...
rmdir : 删除空目录
rmdir dir
删除dir目录,对非空的目录无效,用途少但保证安全
cd: 切换当前工作目录
cd [目录]
切换工作路径到指定的目录下;
cd -
返回上级目录(cd ..
也有同样的效果)
cd
空参数则返回用户主目录呢(cd ~
也有同样的效果)
mv : 移动或文件更名
mv 源文件(列表) 目标文件
mv dir1 doc1.doc ~/tmp
将dir目录与doc1.doc文件移动到~/tmp目录下,即多个参数时只有最后一个是目标目录指定
mv doc1.doc doc2.doc
在同一目录下移动一个文件到另一个文件即给文件更名,示例即为将doc1.doc更名为doc2.doc
rm : 删除文件或目录
rm [-rf] 文件列表
-r
递归删除所有子目录及文件
-f
忽略不存在的文件,不提示错误警告、强行删除
×××××××××××××××××××××××××××××××××××××××××××××××××××××××
× 谨慎使用rm -rf, 讲个笑话从删库到跑路只有一行命令:rm -rf / ×
×××××××××××××××××××××××××××××××××××××××××××××××××××××××
cp : 文件复制
cp 源文件(列表) 目标文件
-r/R
递归复制子目录
-a
复制时保留文件属性(时间戳、符号链接等)
find : 文件搜索
-name
按名称查找,可以使用引号引起来的通配符
-type
按类型查找
-exec
将查找到的目标进行进一步处理,exec
后跟处理命令,通过{}
引用被找到的文件,且以\;
结束命令(空格转义符分号)
注意find
命令的选项采用减号-
而非双减号--
调整选项
文件内容显示:
cat
一次性显示文件所有内容:cat doc.txt
more
分屏显示文件内容
less
分屏显示文件内容,支持搜索,浏览界面/
后输入检索内容回车
head
默认显示前十行文件内容,head -n 20 doc.txt
显示前20行
tail
默认显示后十行文件内容。
wc : 文件统计
-l
: 统计字数
-c
: 统计字节数
-m
: 统计字符数
-w
: 统计单词数
grep : 文件内容筛选(在文件中搜索指定的内容)
图示:
grep [-vn] 模式 文件列表
-v
显示不匹配的行(即反向筛选)
-n
显示行号
模式
正则表达式
grep正则表达式元字符
元字符 | 功能 | 实例 | 解释 |
---|---|---|---|
^ | 行开头定位 | ^live |
与以love 开头的行匹配 |
$ | 行末尾定位 | love$ |
与以love 结尾的行匹配 |
. | 任意一个字符 | l..e |
包含一个l 后跟两个字母再跟e 的行 |
* | 前驱字符重复0到多次 | Lo*ve |
与包含Lve 或Love 或Loove 等的行相匹配 |
[] | 匹配其中任意一个字符 | [Ll]ove |
匹配Love 或love
|
[A-Z] | 匹配其中范围内任意字符 | [A-Z]ove |
匹配Aove 、Bove 等至Zove
|
[^A-z] | 匹配非范围内任意一个字符 | [^A-Z] |
匹配不包括大写字母的行 |
\ | 转义元字符 | love\. |
匹配包含love 后跟. 的行 |
示例:
^a.*b$
表示a
开头b
结尾的任意长度的文件名
grep "\.$" a.txt
:在a.txt
中找到句点.
结尾的行
grep "^ *//" a.c
:在名为a.c
的C语言源文件中查找所有双斜线//
开头的注释行(即使该行以空格开头)
管道和输出重定向:
管道
格式:
命令1 | 命令2 | 命令3
功能:
将前一个命令的输出作为后一个命令的输入
示例:
ls -l | grep "^d" | wc -l
统计当前目录下属目录的数量输出重定向
格式:
命令 > 文件名(覆盖文件)
格式:
命令 >> 文件名(追加文件)
功能:
将命令的输入输出结果保存到指定的文件中
示例:
cat a.txt b.txt > c.txt
使用cat
输出重定向合并文件
上一课:命令入门及查看帮助文档