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
- 用法
- 选项
程序编译方式:
- 动态链接:
多个程序使用同一个动态库。
- 静态编译
程序使用独立的库,将库文件复制到程序内部。
Linux 文件系统
操作系统的组成
文件系统:层级结构
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
命令行展开
~:展开为用户的家目录
{}:可承载以逗号分隔的列表,并展开为多个
如:/tmp/{a/{a1,a2},b}相当于/tmp/a/a1 /tmp/a/a2 /tmp/b
命令执行的状态结果
通过状态返回值来输出此结果:
值存在于 $?
中
引用命令的执行结果
$(COMMAND)
或
`COMMAND`
文件查看
分屏查看 more 与 less
more <FILE>
翻屏至文件最后自动退出。
less <FILE>
head 和 tail
head [OPTIONS] <FILE>
-n # 或 -# 代表前#行
tail [OPTIONS] <FILE>
-n # 或 -# 代表后#行
-f 代表不退出,紧接着显示新增的行。
stat
stat <FILE>
显示文件的元数据
包含了最近的访问 access,更改 modify,改动 change 时间。
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...
选项
rm
用法
rm [OPTION]... FILE...
选项