一、文件系统
Linux的灵魂所在就是一切皆文件,文件系统是对存贮设备的数据和云数据进行组织的机制,这种机制有利于用户和系统的交互,尽管内核是Linux的核心,但是文件系统确时用户和操作系统交互的主要工具,文件系统不仅包含了文件中的数据而且还有文件系统的结构。Linux用户和程序看到的文件,目录,软连接,以及文件保护都存储在其中。
linux最早的文件系统是Minix,后来专门设计了文件系统—扩展文件系统第二版(EXT2)被设计并添加到了Linux中,这对Linux产生了巨大的影响,目前常用文件系统有ext2(ext3是现在默认的Linux文件系统)、swap(作为交换分区使用)、vfat(兼容windows)、NFS(网络文件系统,可以方便的在局域网内共享文件系统,运用广泛)等。
1.目录结构
采用阶层式的树状目录结构,在该结构中的根目录为“/”。
/BIN目录: 作为基础系统最基本的命令大都放在该目录下,如ls,cp,mkdir等
/BOOT: 存放内核以及引导内核所需要的文件,主要是内核
/ETC: 配置文件存放的文件夹,访问最多的文件目录
/USR: 系统用户工具和程序
/USR/bin: 普通用户的可执行文件
/USR/include:标准头文件
/USR/LIB:标准库文件
/USR/SBIN:非必须可执行文件
/USR/SRC:内核源码,默认不一定创建,如果下载源码后通常放在该目录
/VAR: 系统运行需要改变的数据,如日志等,于USR配合使用
/SBIN: 超级用户的二进制文件,大部分文件为系统管理员使用的系统文件
/TMP: 存放临时文件
/DEV: Linux系统下所有的外设文件,驱动等
/HOME: 用户文件夹
/ROOT: 超级管理员文件夹
/LIB: 存放动态库文件
/MNT: 挂在文件系统,平时空,让用户临时挂在文件系统
2.文件类型
普通文件:通常是流式文件,作为数据存储在磁盘当中,可以随机访问 -rw-r–r--
目录文件:用于表示和管理管理系统中的全部文件 drwxr-xr-x
链接文件:用于不同目录下文件的共享(软硬链接) lrwxrwxrwx
设备文件:包括块设备和字符设备文件 #ls -la /dev/tty crw-rw-rw- (b块设备 c字符设备)
管道文件:进程间通讯的一种机制
套接字文件:该文件类型与网络通信有关
3.分区
在Windows系统中,是先将物理地址分开,再在分区上建立目录,Linux则相反,是先有目录再将物理地址映射到目录中,所有的路径都是从根目录开始。Linux默认可分为三个分区,分别是boot区,swap区和根分区。
4.挂载
Linux下的分区需要挂载到目录后才能使用,挂载的意义就是把磁盘分区的内容放在某个目录下,操作该目录就是在操作该分区。这个把分区和目录对应的过程叫做挂载(Mount)而这个挂载在文件树中的位置就是挂载点。有挂载就有必有卸载
Shell使用技巧
Shell是使用较多的工具,提供使用使用者的壳。Linux中的Shell是一个命令解析器,将用户命令解析为操作系统所理解的指令,从而实现用户与操作系统的交互。Shell是内核的一个外壳保护工具,并负责完成用户与内核之间的交互(如命令行)使用最多的版本是bash。既是命令解析器,也是命令编辑器
使用技巧
Ctrl+k: 删除从光标到行尾的部分
Ctrl+u: 删除从光标到行首的部分
Alt+d: 删除从光标到当前单词结束的部分
Ctrl+w: 删除从光标到当期单词开头的部分
Ctrl+a: 光标移到行首
Ctrl+e: 光标移到行尾
Alt+a: 光标移到当前单词头部
Alt+e: 光标移到当前单词尾部
Ctrl+y: 插入最近删除夫人单词
Ctrl+R: 历史记录根据关键词查找
先执行command1,不管对错,执行command2: command1;command2
只有当command1正确执行完成后,执行cmd2 : command1&command2
命令的任务调度或后台运行:command &;任务进入后台后可用jobs命令查看运行的进程,也可以用ps查看并用kill+pid杀死进程。
输出重定向:"<“为输出重定向符,可以将命令的输出结果保存到文件中。“>>” 和”>“作用类似,不同的是,“>”为新建或者重写一个文件,而”>>"是在已有文件尾追加内容;Mail -s “hello world” < testmail
三、环境变量
环境变量是和Shell密切相关的,用户登录系统后就会启动一个Shell,对于Liunx来说一般就是bash,但是也可以重新设定或切换到其他Shell,根据发行版本而定,bash有两个基本的系统级配置文件:/etc/bashrc(启动和命令行等都被读取)和/etc/profile(系统启动时只读取一次)。
环境变量常用变量:
PATH: 决定了shell将到那些目录中寻找命令或程序
HOME: 当前用户主目录
HISTSIZE: 历史记录数
LOGNAME: 当前用户登录名
HOSTNAME:主机名称
SHELL: 当前用户Shell类型
LANG: 语言相关的环境变量,多语言可修改次变量
MAIL: 当前用户的邮件存放目录
//PATH声明格式
PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>
//环境变量更改后,在用户下次登录时生效。如果想立即生效可执行:
source .bash_profile
//显示环境变量值
echo &PATH
//添加环境变量,用户退出失效
export MyName="qiu"
env : 显示所有环境变量 (grep筛选)
set : 显示所有本地定义的Shell变量
unset <名字>: 清除所有环境变量
readonly <名字>: 设置只读变量 超级用户修改
四、管理文件
查看命令帮助手册 ./man command
//目录操作命令
pwd 显示当前目录
cd
ls
mkdir mkdir -n 777 test 创建目录并指定权限 mkdir -p /root/my/test 路径不存在则创建
//文件操作命令
touch <文件> 创建或修改文件更新日期
file <文件> 识别文件类型
cp <选项><源文件><目标文件> 复制文件
-r:递归复制整个目录树
-p:源文件属性不变
-f:覆盖同名文件或目录
-i:需要覆盖时提醒
rm <选项><文件>
-r:递归删除整个目录树
-f:强行删除文件或目录
-i:需要提醒
mv <选项><源文件><目标文件或目录>
which <文件> 查找文件位置
find <范围><查找条件> find /etc -name "pass"
-name
-size
-type
-user
ln -s <源文件或目录><链接文件> 创建软连接
ln <源文件或目录><链接文件> 创建硬连接
五、内容管理
cat filename //显示文件内容 与">"">>"灵活结合
-n filename //显示文件内容+行号
more filename //分页显示文件内容
less filename (ps -ef | less)
tail filename 查看文件结尾部分内容
head filename 查看文件头部分内容
wc <选项> 目标文件 统计单词数量等
grep <选项> 查找条件 目标文件 ls -l | grep d
diff <op> 文件1 文件2 diff -u tes tes2 对比文件差异 与打补丁结合
六、用户管理
useradd <op> 用户名 添加用户 /etc/passwd记录了用户账号的基本信息 如:testUser:x:1001:1008::/home/testUser:/bin/bash
名称:密码:UID:GID:宿主目录:登录Shell信息
op---
m:在home下创建宿主目录
u:指定UID标记号
d:指定宿主目录
e:指定账号失效时间
g:指定UID号
G:指定GID号
M:不为用户建立并初始化宿主目录
s:指定用户的登录Shell
userdel [-r] 用户名 删除用户(连同宿主目录)
passwd [op] 用户名 设定用户密码
op---
d:清空用户密码
l:锁定用户张虎
S:查看用户状态
u:解锁用户账号
groupadd 用户名
七、权限管理
chmod [ugoa] [+-=] 文件或目录 chmod -c o-w,0-x test.c (对test.c去除其他用户的写和执行权限)
u:user
g:group
o:other
a:all
+:增加权限
-:去除权限
=:设置权限
chmod nnn 文件名或目录
n:八进制数
op:R 递归修改目录下的所有的文件和子目录
chown 属主:属组 文件/目录 修改文件拥有者 chown -v qiu:qiu test.c 将test.c拥有者和所属组修改为qiu
八、压缩与解压
压缩文件的类型:
*.Z compress程序压缩的文件;
*.gz gizp程序压缩的文件;
*.bz2 bzip2程序压缩的文件;
*.tar tar程序压缩的文件;
*.tar.gz tar程序打包的文件,并经过gzip的压缩;
*.tar.bz2 tar程序打包的文件,并经过bzip2的压缩;
gzip [op] filename
bzip2 [op] filename 解压缩命令 对应的格式文件
op---
9:表示高压缩比,多在创建压缩包时使用
b:用于解压已经压缩过的文件
tar [op] 归档文件名 源文件
tar cvf test.tar test 打包不压缩
tar zcvf test.tar.gz test 打包并压缩
tar vzfx test.tar.gz
tar zcvf test.tar.bz2 test 打包并压缩
tar vjfx test.tar.bz2 解压
op---
c:创建.tar包格式文件
x:解开.tar包格式文件
v:输出详细信息
f:表示使用归档文件
p:打包时保留原始文件及目录的权限
t:列表查看包内的文件
C:解包时指定释放的目标文件
z:调用gzip压缩或解压文件
j:调用bzip2程序解压或压缩文件
九、磁盘管理
在系统里新增一个硬盘时,应该有那些动作需要做呢?
①对磁盘进行分区,以创建可用的partition;
②对该partition进行格式化(format),以创建系统可用的filesystem(文件系统);
③可以对创建好的文件系统进行检查
④在Linux系统上,需要创建挂载点(亦即是目录),并将它挂载上来;
1.磁盘分区
fdisk -l 查看分区
修改分区
fdisk 主分区名(会有帮助命令)
建立扩展分区并不能直接使用,还需要再扩展分区下建立逻辑分区
分区大致内容
Device | boot | Start | End | blocks | ld | System |
---|---|---|---|---|---|---|
/dev/sda1 | * | 1 | 13 | 1043291 | 83 | Linux |
/dev/sda12 | 14 | 7832 | 62806117 | 8e | Linux LVM | |
分区设备名称 | 是否引导分区(是*) | 该分区在硬盘的起始地址(柱面数) | 该分区在硬盘的结束地址(柱面数) | 分区大小(块,默认块大小1024字节) | 分区类型的ID标记号,对于EXT3分区为83,LVM为8e | 分区类型 |
分割推荐方案
硬件名称 | IDE硬盘 | SCSI硬盘 | SATA硬盘 | USB移动盘 | 光驱 | 软驱 | 打印机 |
---|---|---|---|---|---|---|---|
挂载位置 | /dev/hd[a-z] | /dev/sd[a-z] | /dev/sd[a-z] | /dev/sd[a-z] | /dev/cdrom | /dev/fd[0-1] | /dev/lp[0-1] |
2.挂载磁盘
df 存储设备和挂载点罗列出
du 挂载点 磁盘使用率
①格式化(创建文件系统)
mkfs -t 文件系统类型 分区设备
②挂载文件系统
mount [-t 类型] 存储设备 挂载点目录 vfat文件类型务必指定
mount -o loop ISO镜像文件 挂载点目录
3.设置文件系统自动化挂载
/etc/fstab配置文件包含了开机后自动挂载的文件系统记录
注意:挂载点的目录必须是已经创建完成的,否则挂载失败,挂载点同一时间只能挂载一次,分区也只能挂载,系统自带的挂载点尽量不要去修改
![自动挂载配置
十、网络管理
1.ifconfig*
①查看网络接口信息
ifconfig
②设置网络接口IP地址、子网掩码
ifconfig 接口 ip地址 [netmask 子网掩码] ifconfig eth0 192.168.1.108 netmask 255.255.255.0
ifconfig 网络接口 IP地址[/掩码长度]
③禁用或重新激活网卡
ifconfig up ifconfig eth0 up
ifconfig down ifconfig eth0 down
设置MAC地址
ifconfig eth0 down
ifconfig eth0 hw ether 00:01:02:03:04:05
ifconfig eth0 up
IPv6
ifconfig eth0 add 00:01:02:03:04:05
④设置虚拟网络接口
ifconfig 接口名:序号 IP地址
2.netstat*
netstat [op] 查看系统的网络连接情况、路由器、接口统计等
op--
a:显示所有活动连接
n:以数字形式显示
p:显示进程信息
t:查看TCP协议相关信息
u:查看UDP协议相关信息
r:查看路由表信息
i:显示接口信息
ping IP 测试网络连通性
traceroute 目标主机地址 测试当前主机到目的主机之间经过的网络节点
3.route*
route [-n] 查看路由表条目
route del default gw IP地址 删除路由表中的默认网关记录
eg: route del-net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0
route add default gw IP地址 添加路由表中的默认网关记录
eg: route add default gw 192.168.0.1 eth0
route add -net 网段地址 eg: route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0
设置网络参数方式
①临时配置:使用命令调整网络参数(适合在调试过程中使用,系统重启便失效)
②固定配置:通过修改配置文件修改网络参数(需要重载网络服务或重启后才生效)
网络接口配置文件在/etc/sysconfig/network-scripts/目录下——ifcfg-eth0:第一块以太网往卡的配置文件…
主机名称配置文件在/etc/sysconfig/network文件:保存全局网络设置,主要包括主机名信息
vi /etc/sysconfig/network
内容:NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=qiu
域名解析配置文件在/etc/resolv.conf:配置本机需要使用的DNS服务器的IP地址
vi /etc/resolv.conf
内容:search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1
十一、进程管理
**引导流程总览**
ps [aux] 查看静态的进程统计信息
ps -elf
top 动态查看进程排名信息
终止进程的运行
Ctrl+z
kill -9 pid
killall + 进程名字
十二、编辑工具vi(vim)
基本操作(命令模式下)
操作类型 | 操作键 | 功能 |
---|---|---|
光标方向移动 | ↑、↓、←、→ | 上、下、左、右 |
翻页 | Page Down(Page Up) | 向下整页翻页(向下) |
行内快速跳转 | Home/^/0(End/$) | 跳转行首(尾) |
行间快速跳转 | gg/1G(G)(#G) | 跳转文件首(跳转文件尾)(跳转文件#行) |
行号显示 | :set nu(:set nonu) | 在编辑器显示行号(取消显示) |
删除 | dd(#dd)(d^)(d$) | 删除所在行(删除从光标#行内容)(删除光标前的所有字符)(删除光标后的所有字符) |
复制 | yy(#yy) | 复制整行(复制#行) |
粘贴 | p(P) | 复制到光标之后(之前) |
搜索 | /word(?word) | 自上而下搜索字符串"word" |
- | n(与搜索连用) | 定位下一个匹配字符串 |
- | N | 定位上一个匹配字符串 |
全文替换 | 1,50s/word/Word/g | 将1到50行word替换成WORD |
撤销 | u | 可重复操作 |
撤销 | U | 撤销对当前行所有的操作 |
保存 | zz | 保存对当前文件的操作并退出 |
保存 | :w filename | 另存为fliename |
基础保存退不讲 | – | – |
这玩意还是有点多,历时几天才结束,希望对你的嵌入式之Linux开启一个好篇章,后续将推出Linux C开发,交叉编译,Uboot 、kernel等Linux博客