全书笔记目录:https://www.cnblogs.com/taceywong/p/9383439.html
(由于我平常用的系统是Mac和Ubuntu,终端模拟器是iterm2/gnome terminal,使用的Shell是zsh(与bash兼容),显示可能会和书上略有不同)
在接触bash的时候都会接触到一个命令man
,是manual(手册)的缩写。这个是bash手册命令,用于查看shell命令的相关信息。比如在输入man hostname
,会像下面这样显示hostname的相关帮助描述:
Linux的Man页面约定有以下内容(并不是所有的man页面都完全拥有这些内容,也有些不符合标准):
- Name:显示命名名称和简短的介绍
- Synopsis:显示命令语法
- Configurtion:提供配置信息
- Description:描述命令
- Options:描述命令选项
- Exit Status:定义命令退出标志码
- Return Value:描述命令返回值
- Error:提供命令错误信息
- Evironment:描述使用的环境变量
- Files:定义命令使用的文件
- Versions:描述命令版本信息
- Conforming To:提供标准流
- Note:描述额外的帮助材料
- Bugs:提供反馈发现Bug的方式
- Example:显示命令使用样例
- Authors:显示命令开发者信息
- Copyright:定义命令代码版权信息
- See Also:引用相似可用命令
为了方便,man页面提供了section区,从1-9:
- 1 可执行程序或者shell命令
- 2 系统调用
- 3 库调用
- 4 特殊文件
- 5 文件格式或约定
- 6 游戏
- 7 概览和约定
- 8 超级用户或者系统管理员命令
- 9 内核例程
可以使用man 7 hostname
这样的形式进行查看。
与man
相似功能的是info
命令
访问文件系统
路径
需要注意的是Linux路径形式:/Users/tacey/Documents,是以反斜杠/
分割的。
Linux的不同目录可以挂载不同的硬盘,示例:
一般Linux目录名称及用途
+ / 根目录(虚拟目录的根),一般情况下,不会再根目录放置文件
+ /bin 二进制目录,存储GNU用户级工具集
+ /boot 启动加载目录,存储启动文件
+ /dev 设备目录,Linux创建设备结点的地方
+ /etc 系统配置文件目录
+ /home 家目录,Linux创建用户的目录
+ /lib 库目录,存储系统和应用的库文件
+ /media 媒体目录,一般用来挂载可移除设备
+ /mnt 挂载目录,另外一个用来挂载可移除设备的木
+ /opt 可选目录,经常用来存储第三方软件包
+ /proc 进程目录,存储当前硬件和进程的信息
+ /root root用户家目录
+ /sbin 系统二进制目录,存储GNU管理级工具集
+ /run 运行目录,系统操作运行时数据存储所在
+ /srv 服务目录,本地服务存储文件的地方
+ /sys 系统目录,存储系统硬件信息
+ /tmp 临时目录,临时工作文件,可以创建和销毁
+ /usr 用户二进制目录,GNU用户级工具和数据文件存储所在
+ /var 变量目录,存储频繁变更的文件,例如日志
更完整的描述可以查阅FHS
遍历目录
cd 目标目录(可相对,可绝对)
切换目录cd ~
回到家目录(~可省略)cd /
切换到根目录cd -
返回先前目录cd ..
返回上级目录
pwd
显示当前绝对路径
列出目录的文件
ls
列出当前目录下可见文件及文件夹名ls -F
给目录加上反斜杠ls -a
列出所有文件包括隐藏文件ls -R
递归ls -l
增加文件名更多的信息- 文件类型(d目录、-文件、l链接文件、c字符设备、b块设备)
- 文件权限
- 文件拥有者
- 文件主要用户组
- 文件byte大小
- 文件最后被修改的时间
- 文件或目录名
ls --time=atime
文件访问时间ls 通配符
对列出文件进行过滤
处理文件
touch 文件名
创建文件cp
源文件 目标文件名拷贝文件 +
cp -i重名进行询问是否覆盖 +
cp 通配符`符合通配符的进行复制ln
源文件 目标文件创建硬链接(必须在相同物理设备上) +
ln -s `创建软连接mv 源文件名 新文件名
重命名(Linux用剪切覆盖rename职能)rm 文件
删除文件rm -i
需要确认
管理目录
mkdir 文件夹名称
mkdir -p
创建多级目录
rm -rf
移除非空目录tree 目录
树结构显示目录
查看文件内容
file 文件名
查看文件类型cat 文件名
查看文件全部内容cat -n
添加行号cat -b
添加行号,但是空行不添加cat -T
不显示制表符
more 文件名
迭代读取less 文件名
tail
tail -n
head
head -n