linux基础知识

Version:1.0StartHTML:000000201EndHTML:000013044StartFragment:000002271EndFragment:000012976StartSelection:000002271EndSelection:000012972SourceURL:http://blog.51cto.com/13268236/2162600

在经过了一段时间的学习之后,不但对之前较模糊的知识点有了一个比较清晰的认识,还学到了一些没学到的东西。下面对这些知识点做一个总结,一是想对这一阶段画上一个比较完美的句号,二是想把这篇博客当做以后的一个笔记之用吧,好了,废话不多说,看看我这段时间都学了些什么东东吧!

一、什么是操作系统

人与计算机硬件之间的中介

二、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.confDNS配置文件

/etc/sysconfig/network主机名称( HOSTNAME )与启动 Network 与否

/etc/hostsIP和域名的解析文件

/etc/fstab开机自动挂载文件系统的文件

/etc/inittabLinux完成内核引导以后需要读取的文件,Linux运行级别可以在这个文件中设置

/etc/init.d服务启动脚本所在的目录

/etc/profile这是每个用户在登录时都会运行的环境变量

/etc/bashrc为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取

/etc/rc.local开机启动文件

/etc/issuelinux本地终端登录的欢迎语句存储文件.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 <

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小伙伴儿,那不如留下你宝贵的意见或建议我们一起奔跑吧!

你可能感兴趣的:(linux基础知识)