Linux程序设计课程--Linux文件系统入门、文件基础操作命令


  1. 在线手册
    ->2. 文件系统命令
  2. 系统管理命令
  3. 字符处理
  4. 网络相关命令
  5. 软件安装

掌握基础功能
掌握常用选项
正常输出
使用管道后的输出


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+17读、执行的权限值为4+15
例:

创建指定权限的目录树后查看

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 显示行号
模式 正则表达式

图示:
在bashrc文件中查找包含con的行并加行号显示

grep正则表达式元字符

元字符 功能 实例 解释
^ 行开头定位 ^live 与以love开头的行匹配
$ 行末尾定位 love$ 与以love结尾的行匹配
. 任意一个字符 l..e 包含一个l后跟两个字母再跟e的行
* 前驱字符重复0到多次 Lo*ve 与包含LveLoveLoove等的行相匹配
[] 匹配其中任意一个字符 [Ll]ove 匹配Lovelove
[A-Z] 匹配其中范围内任意字符 [A-Z]ove 匹配AoveBove等至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输出重定向合并文件

上一课:命令入门及查看帮助文档

你可能感兴趣的:(Linux程序设计课程--Linux文件系统入门、文件基础操作命令)