12.9
任务目标 // 进度:
- Linux系统定制
工作结果:
学习笔记:
Linux系统定制流程和方法
fedora
位 i386 x86 64
桌面 Unity、 GNOME、KDE、Cinnamon、MATE、XFCE和 LXDE
Linux系统串口、GPIO、显示等驱动安装及测试
Linux系统文件系统结构
-
文件系统结构
在Linux系统中,目录被组织成一个:单根倒置树结构,文件系统从根目录开始,用/来表示。文件名称区分大小写( 大小写敏感还需要看具体的文件系统格式 ),以.开头的为隐藏文件,路径用/来进行分割(windows中使用\来分割),文件有两个种类:元数据与数据本身。在操作linux系统时,通常会遵循以下的分层结构规则:LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)
/:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。
/bin : 提供用户使用的基本命令, 存放二进制命令,不允许关联到独立分区,OS启动会用到里面的程序。
/boot:用于存放引导文件,内核文件,引导加载器.
/sbin:管理类的基本命令,不能关联到独立分区,OS启动时会用到的程序(重要的命令通常处于bin,不重要的则安装在sbin)。
/lib:存放系统在启动时依赖的基本共享库文件以及内核模块文件. 系统使用的函数库的目录 也存放了大量的脚本库文件 ,程序在执行过程中,需要调用时会用到
/lib64:存放64位系统上的辅助共享库文件.
/etc: 系统配置文件存放的目录,该目录存放系统的大部分配置文件和子目录,不建议在此目录下存放可执行文件 。
/home:普通用户主目录,当新建账户时,都会分配在此,建议单独分区,并分配额外空间用于存储数据。
/root: 系统管理员root的宿主目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
/media:便携式移动设备挂载点目录.
/mnt:临时文件系统挂载点.
/dev: 设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件 (b 随机访问,c 线性访问)
/opt:第三方应用程序的安装位置.
/srv: 服务启动之后需要访问的数据目录,存放系统上运行的服务用到的数据,如www服务需要访问的网页数据存放在/srv/www内。
/tmp:存储临时文件, 任何人都可以访问,重要数据一定不要放在此目录下。
/usr: 应用程序存放目录,/usr/bin 存放保证系统拥有完整功能而提供的应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,_/usr/local 存放软件升级包,第三方应用程序的安装位置,/usr/share/doc _系统说明文件存放目录。
/var :放置系统中经常要发生变化的文件,如日志文件。/var/log 日志目录及文件./var/tmp:保存系统两次重启之间产生的临时数据.
/proc: 用于输出内核与进程信息相关的虚拟文件系统,目录中的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间
**/sys **: 用于输出当前系统上硬件设备相关的虚拟文件系统.
/selinux:存放selinux相关的信息安全策略等信息.
-
文件类型
- – : 普通文件
- d: 目录文件
- b:块文件
- c:字符文件
- l:符号链接文件
- p:管道文件pipe
- s:套字节文件socket
-
文件名规则
- 蓝色 -> 文件夹
- 绿色 -> 可执行文件
- 红色 -> 压缩文件
- 浅蓝色 -> 链接文件
- 灰色 ->其他文件
Linux系统常用命令
# 文件管理命令
cp //复制文件
mv //移动文件
rm //删除文件
rmdir //删除目录
chattr //改变文件属性
chmod //改变文件权限
cat //显示文本文件内容
grep //查找字符串
# 磁盘管理命令
fdisk //磁盘分区
fdisk -l //查看所有分区
lspci -tv //查看PCI设备
dmesg //显示开机信息
dmesg | grep IDE //查看启动时IDE设备检测状况网络
# 进程管理命令
top //显示进程
jobs //显示后台进程
sleep //暂停进程
kill //杀死进程
# 网络管理命令
ifconfig //设置网络接口
ping //检测主机的连通性
telnet //远程登录
lnstat //显示Linux系统网络状态
# 用户管理命令
useradd //建立用户
userdel //删除用户
usermod //修改用户信息
who //显示当前用户
id //显示用户信息
su //切换身份
chsh //设置Shell
# 备份和压缩命令
tar //备份文件
tar -cvf a.tar 1 2 //打包
tar -zcvf a.tar 1 2 //打包并压缩
tar -xvf a.tar //解压
cpio //建立、还原备份文件
# 系统管理命令
cd //切换目录
clear //清屏
clock //系统RTC时间设置
cal //显示日历
date //显示、设置系统时间
exit //退出Shell
enable //启动、关闭Shell命令
getty //设置终端模式
history //显示历史命令
pwd //显示工作目录
rlogin //远程登录
shutdown //系统关机命令
halt //关闭系统
reboot //重启系统
rpm //软件包管理
apt //软件包在线管理
yum //软件包在线管理
dnf //软件包在线管理
suspend //暂停执行Shell
set //设置Shell
setserial //设置、显示串口信息
whereis //查找文件
# 开发应用命令
nasm //汇编器
gcc //C编译器
# 行编译器
ed //文本编辑器
ex //文本编辑器
nano //文本编辑器
vim //全屏文本编辑器
jed //编辑文本文件
joe //编辑文本文件
# Shell 命令
cp //复制文件
mv //移动文件
fdisk //磁盘分区
fdisk -l //查看所有分区
lspci -tv //查看PCI设备
dmesg | grep IDE //查看启动时IDE设备检测状况网络
top //显示进程
ifconfig //设置网络接口
tar //备份文件
date //显示、设置系统时间
cd
pwd
ll //查看权限
touch a.sh //刷新
chmod 777 a.sh //改变权限
vim a.sh
reboot
cat /proc/cmdline
cat /proc/tty/driver/serial
vim /boot/grub2/grub.cfg
rpm (软件包管理器)
rpm -qa | grep kernel-devel //检索系统中已经安装有关kernel-devel的软件包
dnf(包管理器,代替yum)
# dnf install setserial //联网下载安装 setserial
chmod
u(user) g(group) o(other)
rwx 422 7
编辑器vim
-
命令模式
vi/vim打开文件后进入的默认模式:不可以直接编辑文本
----命令模式:---- a/i/o:光标前输入,并切换到插入模式 :(英文冒号):切换到底行模式 yy 复制光标所在行 2yy 复制光标所在行开始的2行 p 粘贴 dd 删除光标所在行(实际是剪切) 3dd 删除光标所在行开始的3行(剪切) x 删除当前光标所在的字符 X(大写) 删除当前光标前一个字符 h 左移 j 下移 k 上移 l 右移 (四个箭头也可以上下左右移动) H 当前屏幕第一行 M 当前屏幕中间 L 当前屏幕最后一行 ctrl+f 往下翻页 ctrl+b 网上翻页 G 定位到最后一行(整个文档最后一行) 5G 定位到第5行 gg 定位到第一行(整个文档第一行) w 跳到下一个单词 b 跳到上一个单词 { 移动到上一个代码块 } 移动到下一个代码块 v、V 先按v再用上下箭头选中几行,再> 这几行集体右移,再.继续右移 v、V 先按v再用上下箭头选中几行,再< 这几行集体左移 u 撤销 ctrl+r 反撤销(撤销u操作) r 修改当前字符 R 从当前位置开始修改,按Esc返回
-
插入模式
在插入模式下可以进行文本的编辑。插入模式下你按Esc可以返回命令模式。
-
底行模式
底行模式下可以做一些保存,字符替换等操作,底行模式下命令以回车结束,退出或者返回命令模式,或者双击Esc返回命令模式。
----底行模式:---- q! 不保存退出 wq 保存退出 %s/abc/123/g 把全文的abc替换成123 1,10s/abc/123/g 把1-10行的abc替换成123 / 搜索,先输入/,再输入搜索内容+回车。n、N表示上(下)一个搜索结果
shell脚本编写
-
创建,编写脚本代码
[root@server ~]# vim first.sh cd /boot pwd ls -lh vml*
-
执行脚本文件
方法一:脚本文件路径(绝对路径与相对路径) 必须有x权限 ./first.sh 方法二:sh脚本文件路径 不需要x权限 sh first.sh 方法三:source 脚本文件路径 会切入到自动脚本中的环境 不需要x权限 source first.sh
-
更完善的脚本构成
脚本声明 注释信息 可执行语句 [root@server ~]# vim first.sh #!/bin/bash //解释器 # This is my first.sh //注释 cd /boot //程序主体 echo "当前的目录位于:" pwd echo "其中以vml开头的文件包括:" ls -lh vml*