文件格式:
windows:PE
linux: ELF
文件系统:
rootfs
FHS:规定linux应该创建哪些目录
/下的目录结构:
/boot: 系统启动相关的文件,如内核,initrd,以及 grub(bootloader)
/dev :设备文件(例如:光盘,cdrom)
类型:
块设备:随机访问, 数据块
字符设备:线性访问, 以字节为单位
设备号:主设备号(major),次设备号(minor)
/etc: 配置文件(绝大多数为纯文本格式)
/home: 用户的家目录,默认为/home/username
/root: 管理员的家目录
/lib :库文件
/lib/modules:内核模块文件
静态文件,lib, a
动态文件:dll, so
内存中多个进程共享一份
/lost_found: 丢失和找回,跟系统无关
/media: 挂载点目录,移动设备(光盘cdrom)
每个设备都在/dev目录下都对应的应该有一个设备文件,如果我们想访问这个设备,就必须将这个设备文件和/media 关联, 然后通过/media 下对应的文件来访问这个设备
/mnt: 挂载额外的临时文件系统
/misc:
/opt: 可选目录, 第三方程序安装目录 , 现在应经替换为/usr/local
/proc: 伪文件系统, 内核映射文件
/sys: 伪文件系统, 跟硬件设备相关的属性映射文件
/tmp: 临时文件
/var: 可变化的文件
重要的有:
/var/cache
/var/lock
/var/log
/var/mail
/var/run
/bin: binary 可执行文件 用户命令
/sbin: 管理命令
/usr:
/usr/bin
/usr/sbin
/usr/lib
/usr/local:
/usr/local/bin
/usr/local/sbin
/usr/local/lib
几个命令:
tree 查看文件结构
tee 目录名
mkdir 创建目录
mkdir -p x/y/z (x,y 不存在是创建z)
-v: verbose详细信息
mkdir -pv x/y/z
需求:
/mnt/test/x/m, y
mkdir -pv /mnt/test/x/m /mnt/test/x/y
mkdir =pv /mnt/test/{x/m, y} 命令行展开
/mnt/test2/下有如下创建如下文件夹:
a_b, a_c , d_b, d_c
mkdir -pv /mnt/test2/{a, d}_{b,c}
rmkir: 删除命令
rmdir -p /x/y/z (一线单传时)
文件创建:
touch 修改文件的时间戳(3个时间戳, 访问, 修改,)
stat filename 查看文件信息
指定时间, touch -t
rm -i : 交互式
\rm 使用命令自身, 不使用别名
文本处理命令:cat, more, less, head, tail, cut, sort, uniq, grep
管道和重定向,< , > , >>, <<
用户,组, 权限
正则表达式
bash及其特性
目录管理: ls, cd , pwd, mkdir, rmdir, tree
文件管理: touch, stat(文件属性信息), file, rm , cp, mv, nano(编辑器)
日期时间:date, clock, hwclock, cal
查看文本文件的内容:
cat, tac, more , less, head, tail
cat : 连接并显示
cat /etc/issue
cat /etc/fstab
cat /etc/issue, /etc/fstab
-n : 显示行号
-E: 显示行尾结束符(linux和windows不同)
tac:反向显示
分屏查看命令:
more, less
space , b, enter
查看文件首尾几行:
head:查看前几行
tail:查看后几行
-n: 指定行数
tail -f:
动态显示文件的变化
不退出,显示追加进来的内容(日志文件查看时)
文本处理: cut, join, sed, awk, grep
cut -d:
-d 指定分割符,默认是空格
-f 指定要显示的字段
-f 1,3
-f 1-3
文本排序:sort
-n 数值大小排序,不再是ascii
-r 逆序
-t 指定字段分割符
-k : sort -t: -k3 /etc/passwd, 以那个字段为关键字进行排序
-u :相同的只显示一次
-f :忽视大小写
uniq:
-d:只显示重复的行
-D:显示所有重复行
-c:显示文件中行重复的次数
文本统计:wc
-l:行数
-w:word
-c:字节数
-L:最长一行包含多少个字符
tr:字符处理命令,转换或删除字符
tr 'ab', "AB"
tr 'ab' 'AB' < /etc/passwd
tr -d 'ab', 删除
bash及其特性
shell:外壳
GUI:GNOME, KDE, xface
CLI:sh, bash, csh,ksh
假设系统有root,和student 用户
程序一份,
进程二份,在每个进程看来,当前主机上只存在内核和当前进程
用户工作环境
bash:
shell, 子shell
使用: pstree命令查看
LANG=en处理乱码
1、命令历史
2、管道,重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程
光标跳转: ctrl+a:跳到命令行首
ctrl + e:跳到命令行尾
ctrl + u:删除光标至命令行首的内容
ctrl + k:删除光标至命令行尾的内容
命令历史:
history 查看历史命令
-c :清空历史命令
-d:删除指定位置的命令
-d OFFSET [n]
note: 用户退出后 ,缓存的命令会追加用户家目录中的.bash_history文件中
-w :将缓存中的历史命令保存到历史文件中
历史命令的使用技巧;
!n:执行命令历史中的第n条命令
!-n: 执行命令历史中倒数第n条命令
!!执行上一条命令
!str: 执行命令历史中最近一个以指定字符开头的命令
!$:引用前一个命令的最后一个参数,等价于 ESC,松手,. 或 ALT + .
环境变量:
PATH 命令搜索路径
HISTSIZE: 命令历史缓存的大小, 默认是1000
命令补全: tab, tab tab
路径补全: cd ..
命令别名: alias
在shell定义的别名仅在当前shell生命周期中有效,别名的有效当前shell进程
unalias 取消别名
\cmd : 使用命令本身