文件系统管理
文件系统常用命令
df -h:人性化显示
一般不用du统计文件大小
du -sh 用的多
游戏每周二维护,最重要的就是Linux服务器重启,还原。一周重启一次,高负载的服务器。
du看到的是所有文件的大小,df除了文件大小,还有一些其他系统信息。
fsck:文件系统修复命令
系统开机自动执行,底层命令,不需要自己做,知道就好,可能没问题,修复之后反而出问题了。
挂载
mount 和 mount- l 感觉没区别呀
mount -a:安装配置文件重新挂载一遍
挂载光盘与U盘
光盘默认设备文件名,dev/sr0,dev/cdrom;dev/cdrom 是 sr0的软链接
U盘和硬盘命名规则一样
U盘不能用远程工具挂载,只能用虚拟机挂载,鼠标点中虚拟机,不然就会被Windows识别U盘
Linux中把fat32识别为vfat,
支持NTFS文件系统
移动硬盘默认是NTFS的,Linux内核中,包含了常见的驱动
重新编译内核(用的少);第三方插件
好吧,我安装好了ntfs-3g为什么还是挂载失败,呜呜呜。
fdisk分区
1.先在虚拟机中在添加一块硬盘
扩展分区不能格式化,不能写入数据
分区自动挂载与fstab文件修复
lost+found:分区的备份数据
这里修改了/etc/fstab之后,用mount -a挂载一下保险起见。
万一/etc/fstab文件写错了,如果是自己添加的一行/dev/sdb1这行错了,还可以在开机的时候修复一下,如果把原来的根分区的都搞错了就炸了。
shell基础
/etc/shells
shell脚本的执行方式
最习惯的执行方法还是第一种方法
dos2unix:Windows上文件转换为Unix上格式
-c:一般不要执行,会把缓存和.bash_history中的历史命令都清除
-w:把缓存命令写入.bash_history中;不这样的话默认是关机后写入的。
Tab补全命令,记住
命令别名与常用快捷键
输入输出重定向
ls &> /dev/null,垃圾桶
输入重定向用的不多
多命令顺序执行与管道符
命令1得有输出,得正确输出,命令2才执行
通配符与其他特殊符号
?:得有一个字符
*:可以没有字符
[ ]:得有一个字符
bash变量
环境变量
从一个shell中进入另外一个shell,后面那个就是子shell
gender=male
export gender把一个自定义变量变为环境变量
env:查看环境变量
:分割
位置参数变量
$#:不包含命令本身
预定义变量
bash运算符
使用declare -x 把变量声明为环境变量
方法三用的最多
变量置换方式知道有就好,不用记。
环境变量配置文件
修改配置文件后,一般需要重启配置文件才生效,使用source,就可以不重启就生效
.和配置文件之间有空格;.就是source
etc下的是对任何用户都生效;~是每个用户自己的配置文件
/etc/profile
后面的会覆盖前面的,如果一个变量在多个配置文件中定义
/etc/bashrc:不需要输入用户名和密码,直接登录的时候调用的,nologin shell
用户logout退出登录的时候执行,默认是空的
存放历史命令的;当前的命令退出登录后才会保存在bash_history中
/etc/issue只对本地登录有效
/etc/motd默认是空的。
cut
把用户名都提取出来。
cut的局限,cut可以识别制表符,不能识别空格
awk比cut复杂,cut能实现的就不用awk
cut比较死,你按照一个空格分割,他就严格按照一个空格分割。
printf
awk:列截取
awk功能太多了,我们挑主要的来讲
awk和cut的区别,awk把多个空格当一个空格
BEGIN 和 END
awk默认是先读入一行,在安装空格分割,BEGIN可以让第一行也安装其它要求分割
awk中条件表达式
sed命令
sed支持管道符操作,可以应用于命令的结果
1.输出第二行数据
不加-n 会把原内容再输出一遍,一遍都加-n
2.删除行,但不修改文件本身
3.在某一行后追加数据
4.某一行前插入数据
5.替换
sed -i 不建议用
字符处理命令
-n 按数字排序,默认是安装字符串排序
条件判断
判断root目录是否存在
按照文件权限判断,只要属主,属组,其他人,任意一个有权限,就判断为真
测试硬链接
这里aa是整型还是字符串类型搞不清楚。