文件系统:
rootfs:根文件系统
FHS: Linux 文件系统层级标准
ls /
/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev: 设备文件
块设备:随机设备,随机访问,数据块 无所谓顺序,如磁盘、
字符设备: 线性访问 按字符为单位,如显示器、鼠标、键盘
设备号:主设备号(major)和次设备号(minor)
/etc: 配置文件
/home: 用户的家目录,默认为一个用户的家目录通常为/home/USERNAME
/root: 管理员的家目录
/lib: 库文件
静态库 .a
动态库,dll,.so share object
/lib/modules: 内核模块文件
lost+found 与系统无关 丢失与找回
/media:挂载点目录, 移动设备
/mnt:挂载点目录, 额外的临时文件系统
/opt: 可选目录, 第三方程序安装目录 Nessas
/proc:伪文件系统,内核映射文件 这个目录其实是空的,系统启动后,就不是空的
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp: 临时文件,/var/tmp
/var:可变化的文件
/bin: binary 可执行文件,用户命令
/sbin: 管理命令
/usr: universal, share, read-only, 只读文件
/usr/bin
/usr/sbin
/usr/lib
/usr/local: 第三方软件
/usr/local/bin
/usr/local/sbin
/usr/local/lib
命令规则:
1、 长度不能超过255个字符
2、 不能使用/当文件名
3、 严格区分大小写
操作系统
文件管理
目录管理
ls
cd
pwd
mkdir
-p:
-v: verbose
/root/x/y/z
/mnt/test/x/m,y
mkdir -pv /mnt/test/x/m /mnt/test/y
mkdir -pv /mnt/test/{x/m,y}
命令行展开
/mnt/test2/
a_b , a_c, d_b, d_c
{a,b}_{b,c}
tree 查看目录树
rmkdir 只能删除空目录
文件的创建和删除
touch --主要用来修改时间戳(Acess Modify Change)
-c -no-create 不创建文件
改时间戳
-a
-m
touch -m -t 2012121212 FILENAME
stat --显示文件或文件系统的状态信息
创建文件还可以使用文本编辑器
ASCII
128个不通的字符
二进制:2^7=0,127
标准:GB18030 GBK, GB2312, Unicode 字符集
nano 文本编辑器
nano hello
删除文件: rm
-i
-f
-r
1、创建目录
(1)在/mnt下创建boot和sysroot:
(2)在/mnt/boot下创建grub:
(3)在/mnt/sysroot下创建proc, sys, bin, sbin, lib, usr, var, etc, dev, home, root, tmp
a)在/mnt/sysroot/usr下创建bin, sbin, lib
b)在/mnt/sysroot/lib下创建modules
c)在/mnt/sysroot/var下创建run, log, lock
d)在/mnt/sysroot/etc下创建init.d
复制和移动文件
cp: copy
cp SRC DEST
-r 递归复制
-f
-p
-a: 归档复制,常用于备份
-l --link link files instead of copying
-L --dereference always follow symbolic links
-P --no-dereference keep link
cp file1 file2 file3
一个文件到一个文件
多个文件到一个目录 可以多个源一个目标
cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/
mv:move
移动文件
mv SRC DEST
mv -t DEST SRC
移动目录,文件
修改文件目录名
install ---copy files and set attributes
-d DIRECTORY
-m -set permission mode
install -t DIRECTORY SRC
install -d /tmp/{install.1, install.a} 创建目录
install /etc/passwd /var/tmp/install.file1 复制文件,有执行权限
install 不能复制目录 install 文件
自由软件
开源协定:版权描述
如果获取Linux当前最新的内核版本号?
www.kernel.org
列出你所了解的内Linux发行版,并说明其跟Linux内核的关系。
Linux, GNU/Linux kernel+GUN的软件 软件以源代码的形式提供
把源代码 进行链接 编译 添加自己的logo
发行版:Fedora, RedHat(CentOS),SUSE, Debian(ubuntu, Mint),Gentoo,LFS(Linux from Scratch)
深度使用Linux的工具LFS
高手一般使用Debian
编译 将源代码转换为当前硬件系统可以执行的二进制代码
RedHat: 通用格式 32位的版本装到64位上
奔腾:酷睿 并不能很好的使用最新cpu的新特性,最好是在本机上编译
file
tree 查看目录树
目录管理:
ls、cd、mkdir、tree
文件管理:
touch、 stat、file(查看文件内容类型)、rm、cp、mv、nano
日期时间:
date、 clock、hwclock、cal
查看文本:
cat、tac、more、less、head、tail
cat:concatenate files and print on the screen链接并显示
cat /etc/issue /etc/fstab
cat:
-n 显示行号
-E 显示每行的显示符 对于Linux系统而言文本行结束符合是$,Windows的文本行结束符是$+ENTER
-A 显示所有字符
shift + pageup pagedown
分屏显示命令:
more、less
more :支持想后翻 空格 b k
more /etc/rc.d/rc.sysint
less:
space k /: b ENERT q
head:查看前n行
tail:查看后n行 默认10行
head /etc/inittab
head -n 2 /etc/inittab
head -5 /etc/inittab
tail -f --follow 查看文件尾部,不退出,等待显示后续加追加至此文件的新内容。
任何时候都不要否定自己要有信息。墨菲定律,有信心不盲目
文本处理:
cut、join、sed、awk
database:
关系型数据库:
表:二维表 行列
文本文件:
Tome:23:male:2013/05/06
显示文本文件的某个部分
cut:
-d:指定字段分隔符。默认是空格
-f:指定要显示的字段
-f 1,3
-f 1-3
cut -d : -f1 /etc/passwd
文本排序:sort
sort对输出显示的内容排序
-n: 数值排序
-r: reverse 降序
-t:字段分隔符
-k:以哪个字段为关键字进行排序
-u:unique 排序后相同的行只显示一次
-f:排序时不区分大小写
sort /etc/fstab 默认升序 ASCII表的顺序
sort -t: -k3 -n /etc/passwd
uniq --report or omit repeated lines (相邻且重复)
-d:repeated 只显示重复的行
-D: 显示所有重复的行
-c:显示某一行重复的次数
文本统计: wc(word count) 行 单词数 字节数
-l
-w
-c
-L --max-line-length
字符处理命令tr
tr: -- translate or delete character
tr [OPTION]... SET1 SET2
-d: 删除出现在字符集中的所有字符
tr 'ab' 'AB'
tr 'a-z' 'A-Z' < /etc/passwd
tr -d 'ab'