背景
本书作者为Mark G Sobell,Linux Torvalds 通过阅读Mark的书学会UNIX后,创作了Linux,后Mark为Linux著书,使更多人能快速掌握Linux。
一些概念的摘要
POSIX(Portable Operating System Interface for Computer Environments) 可移植计算机环境操作系统接口标准
Linux文件系统标准 - FSSTND(Filesystem Standard), 该标准逐渐演化为文件系统层次标准FHS(Filesystem Hierarchy Standard)
访问控制列表 - ACL (Access Control List) 使得用户和管理者对文件访问权限可以进行较细粒度的控制。
Linux实用工具
基本实用工具 ls cat rm less more hostname
文件操作 tab cp mv lpr grep head tail sort uniq diff file
script 实用工具可以记录登陆会话的部分和全部信息, 默认情况下,script捕捉到的会话内容存放在文件typescript中, 若想存放在某个指定的文件中,可以直接指定文件名 -a 表示以追加的方式记录, 否则覆盖文件。
unix2dos 将Linux文件转换为Macintosh格式或者Windows格式
dos2unix 略
bzip2 压缩文件,bunzip2 bzcat, -v 显示出节省空间的百分比。
gzip (GNU zip的简写)比bzip2出现早且效率低的压缩工具,用法和bzip相似
tar (tape archive的简写) 用来将多个文件或多个目录归档为一个tar文件,或将某个tar分解开。cpio 实用工具执行类似功能。
tar不删除源文件,但是x解压得到的文件可能会覆盖原来文件。
- -c create
- -v verbose 包含详细信息
- -f 从一个文件进行读写
- -t 按表格显示
- -x 拆分文件
管道可以将gunzip和tar放在一个命令上:
gunzip -c file.tar.gz | tar -xvf -
-c 使得gunzip将输出送到管道而不在创建文件
另外一种简单做法为使用-z,使得tar直接调用gunzip:
tar -xvzf file.gat.gz
定位工具
which, where, apropos(搜索关键字), locate(搜索文件, 用来在本地系统搜索文件)
获取用户和系统信息
who w finger
Linux文件系统
文件系统是一种数据结构
/bin 基本的二进制文件 - 包含启动系统以及首次进入但用户模式运行时所需文件
/dev 设备文件
/etc 本地计算机系统配置文件 - /etc/passwd目录包含使用系统的所有授权用户的列表
/opt 附加软件包
/tmp 临时文件
setuid和setgid权限
当执行一个具有setuid权限的文件时, 文件的执行进程将具有文件所有者的特权。尽可能少的使用root用户拥有的setuid和setgid程序,因为其具有的功能和潜在的破坏性,应该尽量避免不加选择的创建和使用root用户拥有的setuid和setgid程序。
链接
链接表示指向文件的指针, 分为硬链接和符号链接,硬链接是一种较为古老的链接方式,文件的硬链接会以另一个文件的形式出现在文件结构中,只能在拥有该文件的文件系统里才能创建文件的硬链接。
ln existing-file new-link
ls的-i 可以列出文件对应的索引节点编号,从而确定哪些文件是链接文件。索引节点是指文件的控制结构,若某两个文件对应的索引节点编号相同,那么这两个文件共享同一个节点,也就是链接到同一个文件。
符号链接 - linux文件层次结构通常几个文件系统该组成,每个文件系统各自包含的文件保持单独的控制信息(即简历单独的索引节点表 index mode)因此在不同文件系统间简历硬链接是不可能的。符号链接可以指向任何文件,不管位于文件结构哪个地方。符号链接可以指向不存在的文件。可以为某个间断性地被删除和创建的文件简历链接。符号链接缺点是,硬链接地位是平等的,符号链接不然。
Shell
Control + D 发送EOF信号
cat > sample.txt
快速建立文本
cat file1 file2 file3 > file4
合并文件
noclobber 避免文件的重写
该特性可以防止重定向时不经意的重写已经存在的文件。
set -o noclobber
在重定向输出符号后跟管道, ‘>|’可以忽略noclobber的设置。
/dev/null 数据接收器(data sink)通常被成为垃圾桶(bit bucket), 重定向到此,输出数据将不留痕迹的消失。
tee 从两个方向输出。 tee将标准输入复制到文件和标准输出,一个输入两个输出。
后台程序
& 符号可以指定程序后台执行,返回jobID和pid。jopID引用perfix%。
将作业从前台移到后台,Control + Z挂起键,shell把前台作业挂起,将进程的输入与键盘断开。
bg 命令将挂起的作业放到后台运行,如果只有一个作业挂起,可以不指明作业编号。
fg 不带任何参数可以将后台唯一的作业移到前台。键入fg或者%, 后跟作业编号,可以将对应作业移动前台。