Table of Contents
- 程序编译方式:
- Linux 文件系统
- 操作系统的组成
- 文件系统:层级结构
- Linux 文件类型
- 基本命令
- 别名
- 获取所有命名定义:
- 定义别名:
- 撤销别名:
- which
- whereis
- who
- w
- 别名
- bash 的基础特性 命令历史
- history 用法
- history 功能的环境变量
- 调用历史上用过的命令
- 调用上一个命令的最后一个参数
- bash 特性
- 命令补全
- 路径补全
- 目录管理命令
- mkdir: make directory
- rmdir: remove empty directory
- tree
- 命令行展开
- 命令执行的状态结果
- 引用命令的执行结果
- 文件查看
- 分屏查看 more 与 less
- head 和 tail
- stat
- touch
- OPTION
- 文件管理
- cp
- 用法
- 选项
- mv
- 用法
- 选项
- rm
- 用法
- 选项
- cp
程序编译方式:
- 动态链接: 多个程序使用同一个动态库。
- 静态编译 程序使用独立的库,将库文件复制到程序内部。
Linux 文件系统
操作系统的组成
- 静态:kernel,application
文件系统:层级结构
FHS:Filesystem Hierachy Standard
- /bin:所有用户可用的基本命令程序
- /sbin:供系统管理员使用的工具
- /boot:引导加载器要用到的文件
- /dev:特殊文件与设备文件:
- 设备类型: 字符设备(实时),块设备(打包发送)
- /etc:存放静态配置文件
- /lib:存放共享库: 为系统启动,/bin,/sbin 提供共享库; libc.so*:动态链接的 C 库; ld*:运行时链接器/加载器; modules:用于存储内核模块
- /home(可选):存放用户家目录
- /media:便携式设备挂载路径
- /mnt:其它文件系统的临时挂载点
- /opt:第三方应用
- /root:管理员家目录
- /srv:当前主机为服务提供的数据
- /tmp:临时文件目录
- /usr:全局共享的只读数据路径: bin,sbin lib,lib64 include:c 的头文件 share:用于存程序特有数据 local:目前用于安装第三方程序的目录
- /var:用于存储经常变化的数据的目录
- proc:基于内存的文件系统,用于存放内核和进和存储其相关信息;多为内核参数。
- sys:sysfs 虚拟文件系统为 proc 的改进版。主要为 Linux 管理设备提供统一接口。
Linux 文件类型
- -:常规文件,f;
- d:directory 目录文件;
- b:block device 块设备;
- c:character device 字符设备; major number:主设备号,标识设备类型,确定要加载的驱动。 minor number:次设备号,标识同一类型中的不同设备。 8 进制
- l:symbolic link,符号链接文件。
- p:pipe,命名管道。
- s:socket,套接字文件
基本命令
别名
可用 type <COMMAND>
来查看。
获取所有命名定义:
alias
定义别名:
alias <NAME>='<COMMAND>'
撤销别名:
unalias <NAME>
which
显示命令的完整路径
which [OPTIONS] PROGRAMNAME [...]
–skip-alias:忽略别名
whereis
显示命令二进制文件,手册,源文件的位置。
whereis [OPTIONS] NAME
- -b:只显示二进制文件位置。
- -m:只显示手册位置。
who
显示当前系统登录的用户
who [OPTION]...
- -b:此次登录时间
- -r:运行级别
- -d:显示死亡进程
- -l:显示登录进程
w
显示当前系统登录的用户,并显示正在做什么。
bash 的基础特性 命令历史
shell 会在会话中保存此前用户提交执行过程的命令。
history 用法
history [-c] [-d offset] [n]
- -c 清空
- -d 删除特定行
- -r 从文件中读出到内存中
- -w 从内存中写入到文件中
- n:显示 n 条命令
history -anrw [filename]
history -ps arg [arg...]
history 功能的环境变量
- HISTSIZE:shell 可保留的命令最大条数;
- HISTFILESIZE:文件中保存命令的最大条数
- HISTFILE:持久保存命令历史的文件; .bashhistory
- HISTCONTROL:是不不记录命令 ignoredups:不记录重复的命令 ignorespace:忽略以空格开头的命令 ignoreboth:上两者同时生效
调用历史上用过的命令
- !#:执行第#条命令
- !!:执行上条命令
- !STRING:执行最近一次以 STRING 开头的命令
调用上一个命令的最后一个参数
快捷键 ESC .
!$
bash 特性
命令补全
shell 在接收到用户执行命令的请求,最左侧的连续字符作为命令。
- 命令的查找机制:
- 查找内部命令
- 根据 PATH 设定的目录,自左向右搜索目录下的文件名。
如果打头字符串只有唯一命令,则直接补全;如有多个命令名字开头与该字符串同名,两次 TAB 则全
部列出。路径补全
根据给定的起始路径,以对应路径下的打头字符串来匹配起始路径下的每个路径。
目录管理命令
mkdir: make directory
形式
mkdir [OPTION]... DIRECTORY...
OPTION
- -p:递归的创建目录
- -v:verbose 显示详细过程
- -m:设置对应目录的权限
rmdir: remove empty directory
形式
rmdir [OPTION]... DIRECTORY...
OPTION
- -p:递归的删除目录,直到目录不为空
- -v:verbose 显示详细过程
tree
形式
tree [OPTIONS] [DIRECTORY]
OPTION
- -L:level 显示的层级数
命令行展开
~:展开为用户的家目录
{}:可承载以逗号分隔的列表,并展开为多个 如:/tmp/{a/{a1,a2},b}相当于/tmp/a/a1 /tmp/a/a2 /tmp/b命令执行的状态结果
通过状态返回值来输出此结果:
- 成功:0
- 失败:1-255
值存在于 $?
中
引用命令的执行结果
$(COMMAND)
`COMMAND`
文件查看
分屏查看 more 与 less
more <FILE>
less <FILE>
head 和 tail
head [OPTIONS] <FILE>
tail [OPTIONS] <FILE>
-n # 或 -# 代表后#行 -f 代表不退出,紧接着显示新增的行。
stat
stat <FILE>
touch
touch [OPTION]... FILE...
OPTION
- -c:文件不存在时不创建文件
- -a:修改 access time
- -m:修改 modify time
- -t:指定要改为的时间 [[CC]YY]MMDDhhmm[.ss]
文件管理
cp
用法
# 单源复制 cp [OPTION]... [-T] SOURCE DEST # 多源复制 cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE...
单源复制:
- 如果 DEST 不存在: 则创建文件,并复制文件;
- 如果 DEST 存在:
- 如 DEST 非目录:则覆盖目标文件;
- 如 DEST 是目录:则复制到目录;
多源复制:
- 如果 DEST 不存在: 则出错
- 如果 DEST 存在:
- 如 DEST 是目录:则多个文件分别复制到目标目录;
- 如 DEST 非目不:则出错;
选项
- -i:交互式确认;
- -f:强制覆盖目录;
- -r,-R:recursive,递归复制目录
- -d:如源文件为符号链接则只复制链接;
- -a: -dR –preserve=all
- –preserve=
- mode
- ownership
- timestamps
- context:安全标签
- xattr:扩展属性
- links
- all
mv
用法
mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE...
选项
- -i:交互式
- -f:强制
rm
用法
rm [OPTION]... FILE...
选项
- -i:交互式
- -f:强制
- -r:递归
精彩评论