在经过了一段时间的学习之后, 不但对之前较模糊的知识点有了一个比较清晰的认识, 还学到了一些没学到的东西. 下面对这些知识点做一个总结, 一是想对这一阶段画上一个比较完美的句号, 二是想把这篇博客当做以后的一个笔记之用吧, 好了, 废话不多说, 看看我这段时间都学了些什么东东吧!
一, 什么是操作系统
人与计算机硬件之间的中介
二, Linux 发展史
1969 年一个没有名字的系统诞生于贝尔实验室, 后来给他取名 Unix, 后来开始收取版权费, 大概在 1986 年左右 谭宁邦教授根据 Unix 原型开发出一款名叫 minix 的操作系统, 主要用于教学, 但是大多功能实现不了, 这时候一个叫斯托曼的人的站了出来, 目标是开发一个自由的, 开源的操作系统, 替代 Unix, 并建立自由软件基金会 (FSF) 为达成这一目标设立了 GNU(优秀软件: gawk,bash,gcc,emacs)项目并宣告 GPL 规则 (所有人都可以自由传播和修改开源软件, 但是必须把修改后的内容发布出来) 虽然 GNU 项目优秀软件一大堆, 但是还少一个内核, 这时候在 91 年时候托瓦兹开发了 Linux 内核, 所以我们一般说我们使用的是 GNU/Linux
二, Linux 常用发行版本的区别
1)Fedora 是 Linux 的社区版, 说白了就是体验版, 一般新功能会在 Fedora 中发布, 供大家体验, 同时提出 bug 或者建议;
2)Red hat 是 Linux 当中一个比较著名的版本, 本来有企业版和个人版, 后来个人版不在开发改为 Fedora, 而企业版是要收费的
3)Centos 就是 redhat 的企业版, 而且是免费的, 去掉红帽中的收费软件 去掉红帽里面的 logo
三, 镜像文件下载
http://mirrors.aliyun.com/ 或 https://www.centos.org/
四, 几种分区方法
1)通用方法
/boot 引导分区 200M
swap 交换分区 内存的 1.5 倍(内存小于 8G) 大于 8G 给 8G
/ 根分区 剩下多少给多少
2)数据非常重要
- /boot
- swap
- / 50-200G
/data 剩下多少给多少
3)不知道数据是否重要
- /boot
- swap
- / 50-200G
剩余的空间 不分配留着.
五, Linux 常用文件及目录作用
文件及目录 | 作用 |
---|---|
/etc/sysconfig/network-scripts/ifcfg-eth0 | 网卡配置文件 |
/etc/resolv.conf | DNS 配置文件 |
/etc/sysconfig/network | 主机名称 ( HOSTNAME ) 与启动 Network 与否 |
/etc/hosts | IP 和域名的解析文件 |
/etc/fstab | 开机自动挂载文件系统的文件 |
/etc/inittab | Linux 完成内核引导以后需要读取的文件,Linux 运行级别可以在这个文件中设置 |
/etc/init.d | 服务启动脚本所在的目录 |
/etc/profile | 这是每个用户在登录时都会运行的环境变量 |
/etc/bashrc | 为每一个运行 bash shell 的用户执行此文件,当 bash shell 被打开时, 该文件被读取 |
/etc/rc.local | 开机启动文件 |
/etc/issue | linux 本地终端登录的欢迎语句存储文件. net 是远程终端登录显示 |
/etc/motd | 布告栏信息,每次用户登录时,/etc/motd 文件的内容会显示在用户的终端 |
/usr/local | 第三方软件安装的目录 |
/var/log/messages | 记录系统信息,几乎所有的开机系统发生的错误都会在此记录 |
/var/log/secure | 记录登录系统存取数据的文件; 例如: pop3,ssh,telnet,ftp 等都会记录在此. |
/var/spool/cron/ | 以账号来区分每个用户自己的执行计划 |
/proc/cpuinfo | 提供了有关系统 CPU 的多种信息 |
/proc/meminfo | 这个文件给出了内存状态的信息 |
/proc/loadavg | 这个文件给出以几个不同的时间间隔计算的系统平均负载 |
/proc/mounts | 这个文件以 / etc/mtab 文件的格式给出当前系统所安装的文件系统信息 |
三, 文件及其目录的权限
1)权限对目录及文件的意义
对于文件
r 读取文件内容
w 修改文件的内容, 但是需要 r 的配合没有 r 配合强制修改退出, 会清空文件的内容
x 权限执行, 需要 r 权限的配合
对于目录
r 查看目录里面的内容如 ls 需要与 x 配合使用
w 可以在目录里面创建 删除 重命名文件需要与 x 配合
x 可以进入 (cd) 到这个目录
2)特殊权限;
suid 4 表示 --------->当普通用户运行一个命令的时候能够获取到 root 权限并运行比较危险 chmod u+s /sbin/cat
dticky 粘志位 1 表示 --------->每个人都可以在目录中创建文件目录, 但是只能管理自己的文件或目录
3)隐藏权限
a=====append 只能追加
i=====immutable 无敌的 不可修改的
chattr--- 设置权限
lsattr---- 查看权限
4)默认权限
Umask 默认权限位, 就是我们在创建一个文件或者目录的时候默认的权限是多少
五, inode 与 block
inode 存放文件属性信息每次创建一个文件消耗一个 inode
block 存放具体数据的地方每创建一个文件至少需要一个 block
六, 软硬链接
软链接也叫符号链接, 和 Windows 的快捷方式差不多, 文件块中存放的是被链接文件的路径, 软链接可以链接一个目录
硬链接就是一个文件有多个别名, 它们使用同一个 inode 号码, 所以在删除一个文件后对另一个文件没有影响, 硬链接不能链接目录
PS: 文件被删除条件 1, 硬链接数为 0 且无程序被占用可用 lsof 命令查看
七, 正则表达式与统配符
1, 通配符特殊符号
符号 | 作用 | 符号 | 作用 | |
---|---|---|---|---|
‘ ‘ | 所见即所得,吃啥吐啥 | ! | 查找并运行历史命令,find,AWK 表示取反 | |
" " | 特殊符号会被解析运行 | $ | 取出变量的内容 | |
$() | 先运行里面的命令 把结果留下 | * | 所有东西文件 | |
> | 先清空文件的内容 然后追加文件的最后 | \ | 撬棍,转义字符 | |
>> | 追加重定向,在文件末尾添加内容 | && | 前一个命令执行成功,执行第二个命令 | |
2> | 错误重定向,只有错误的才会被添加到文件 | {} | 生成序列,如 {1..10} | |
< | 输入重定向 | . | 当前目录 | |
<< | 追加输入重定向 | .. | 上级目录 | |
~ | 当前用户家目录 | ? | 精确匹配如 ll -d /etc/??m | |
ll | 前一个命令执行失败执行第二个命令 | l | 管道符号 |
2., 正则表达式
(1), 基础正则
符号 | 功能 |
---|---|
^ | 以... 开头 |
$ | 以... 结尾 |
. | 任意个字符,不包含空行 |
* | 前一个字符重复 0 次到多次 |
.* | 所有字符 |
^$ | 空行 |
[] | 匹配方括号内的任意一个字符,其中用 - 表示连续的几个字符 |
[^] | 表示不匹配括号内的字符 |
(2)扩展正则
符号 | 功能 |
---|---|
l | 或的意思,如 aaalbbb 表示匹配 aaa 或者 bbb 的内容 |
+ | 前一个字符出现一次或者多次 |
() | 括号内的内容包括一个整体,正向引用(反向引用) |
{} | 匹配在它前面的单个字符重现的次数区别,{n} 指重现 n 次;{n,m} 指重现 n 至 m 次; |
? | 表示前一个字符连续出现 0 次或 1 次 |
3, 正则表达试与通配符区别
用途 | 匹配的内容 | 支持的命令 |
---|---|---|
用来匹配文件名 | 匹配文件 | 大部分命令都支持 |
在文件中匹配文件的内容 | 匹配文件内容 | Linux 三剑客 |
八, 正则表达式练习案例
1), 提取 IP 的 n 种方法
- root@jiangjunwang ~]# ifconfig eth0|egrep -o 'inet addr:[0-9.]+'|egrep -o '[0-9.]+'
- 192.168.52.130
- [root@jiangjunwang ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2{print $4}'
- 192.168.52.130
- [root@jiangjunwang ~]# ifconfig eth0|sed -nr '2s#.addr:(.) B.*$#\1#gp'
- 192.168.52.130
(2), 提取权限的几种方法
- root@jiangjunwang ~]# stat bb.txt|awk -F "[(/]" 'NR==4{print $2}'
- 0644
- [root@jiangjunwang ~]# stat bb.txt |sed -nr '4s#^.(([0-9]+).$#\1#gp'
- 0644
- [root@jiangjunwang ~]# stat bb.txt |sed -n '4p'|egrep -o "[1-9]+"
- 644
(3), 排除以 #开头的行和空行
创建测试文档
- [root@jiangjunwang ~]# cat>>name.txt <<EOF
- aaa
- #bb
- cc
- EOF
方法:
- root@jiangjunwang ~]# egrep -v "^#|^$" name.txt
- aaa
- cc
- @jiangjunwang ~]# grep -v "#" name.txt |awk '{if($0!="")print}'
- aaa
- cc
- [root@jiangjunwang ~]# awk '!/^#/&&/./{print}' name.txt
- aaa
- cc
- [root@jiangjunwang ~]# awk {'if($0!=""&&!/^#/)print}' name.txt
- aaa
- cc
好了! 以上差不多就是我这段时间所学到的知识了, 看到这篇文章的朋友如果你也和我一样是一个正在拼搏的 IT 小伙伴儿, 那不如留下你宝贵的意见或建议我们一起奔跑吧!
来源: http://www.bubuko.com/infodetail-2737123.html