Linux操作基础
Shell 和命令基础
Shell 是系统的用户揭秘那,提供了用户与内核进行交互操作的一种接口(命令解释器)。
分类:
- Linux命令:存放在/bin、/sbin目录下的命令
- 内置命令:出于效率的考虑,将一些常用命令的解释程序构造在Shell内部
- 使用命令:存放在/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin等目录下的实用程序
- 用户程序:用户程序经过编译生成可执行文件后可作为Shell命令运行
- Shell脚本:由Shell语言编写的批处理文件
过程:
bash是大多数Linux系统默认的Shell。
Shell元字符
元字符 | 含义 |
---|---|
* | 代表任意字符串 |
? | 代表任意字符 |
/ | 根目录或目录间隔 |
\ | 转义字符 |
\<Enter> | 续行符 |
$ | 变量值置换 |
’ | '…'中间的字符会被当作文字处理 |
" | "…"中间的值会被当做文字处理并允许变量值置换 |
< | 输入重定向字符 |
> | 输出重定向字符 |
` | 命令替换,置换`…`中的命令执行的结果 |
| | 管道字符 |
& | 后台执行字符 |
; | 分割顺序执行的多个命令 |
~ | 自家目录 |
通配符
通配符 | 说明 |
---|---|
* | 匹配任何字符和任何数目的字符 |
? | 匹配任何单字符 |
[…] | 匹配任何包含在括号里的单字符 |
[!..] | 匹配任何不包含早括号里的单字符 |
文件及目录结构
文件类型包括:
- 普通文件(-)
- 目录(d)
- 符号链接(l)
- 字符设备文件(c)
- 块设备文件(b)
- 套接字(s)
- 命令管道(p)
普通文件的常见后缀
后缀 | 说明 |
---|---|
*.txt | 文本文件 |
*.conf | 配置文件 |
*.html *.xml *.yml *.sql | html xml yml sql 文件 |
*.c *.cpp | c c++源文件 |
*.so *.ko *.lib | 模块文件 库文件 |
*.sh *.php *.py *.pl *.rb | shell php python ruby脚本文件 |
*.tar | tar存档文件 |
*.rpm | rpm包文件 |
*.gz *.bz2 *.xz | 由gzip bzip2 xz生成的压缩文件 |
*.tar.gz *.tgz *tar.bz2 *.tbz *.tar.xz *.txz | 压缩后的tar文件 |
*.lock | 用于表示某个程序或某种服务正在运行的锁文件 |
*~ | 备份文件 |
硬链接和符号链接(软连接)
硬链接:文件指向源文件的磁盘空间,删除源文件不影响硬链接文件
软链接:文件指向源文件,再由源文件指向磁盘空间,删除源文件,会变成死链接
设备文件
在Linux下,为了屏蔽用户对设备访问的复杂性,采用了设备文件,每个硬件设备至少与一个设备文件相关联。所有的设备文件存放在/dev目录下
常用设备文件
设备文件 | 说明 |
---|---|
/dev/sd* | scsi sas pata sata usb 硬盘设备,sda1 表示第1块硬盘的第1个分区;sdb2表示第2块硬盘的第2个分区 |
/dev/console | 系统控制台 |
/dev/tty* | 本地终端设备 |
/dev/pts/* | 伪终端设备 |
/dev/sr0 | 光驱设备 |
套接字和命名管道
套接字和命名管道是Linux环境下实现进程间通信的机制
命名管道(FIFO)文件允许运行在同一台计算机上的两个进程间进行通信。
套接字(socket)允许运行在不同计算机上的进程之间的互相通信。
套接字和命名管道通常是在进程运行时创建或删除的,一般无需管理员干预。
熟悉Linux的目录结构
目录名 | 内容说明 |
---|---|
bin | 存放二进制的可执行文件 |
boot | 存放用于系统引导时使用的各种文件 |
dev | 用于存放设备文件,用户可以通过这些文件访问外部设备 |
etc | 存放系统的配置文件 |
home | 每个普通用户默认的家目录 |
lib/lib64 | 存放根文件系统中的程序运行所需要的共享库和内核模块 |
lost+found | 存放一些系统检查结果,发现不合法的文件或数据都放在这里,通常此目录是空的 |
mnt | 临时文件系统的挂载点目录 |
media | 即插即用型设备的挂载点自动在这个目录下创建 |
opt | 第三方软件的存放目录 |
proc | 是一个虚拟文件系统,存放当前内存的映射,主要在于不重启机器的情况下管理内核 |
root | 超级用户目录 |
sbin | |
srv | 系统对外提供服务的目录 |
tmp | 用于放置各种临时文件 |
usr | 用于存放系统应用程序 |
var | 用于存放需要随时改变的文件,如系统日志、脱机目录等 |