Linux学习笔记
Linux内核官网:www.kernel.org
以后遇到BSD,就是加州伯里克分校做的开发
在线Linux环境:https://www.masswerk.at/jsuix/index.html
step1:在打开的页面中点击open terminal
step2:输入guest回车就会进入linux环境了。
一,Unix与Linux的发展史
Linux大体分为两个分支:Redhat系列和debian系列
主要区别:软件安装的方式不一样
Fedora:每开发一个软件就丢进去,这个软件和功能可能并不稳定,没有经过测试;你可以把它看做Redhat公司的实验品。
Redhat:收服务费。
Centos:社区维护版本。推荐用这个
SUSE,Ubuntu:图形界面很漂亮。SUSE欧洲用的比较多
Gentoo Linux:需要一定的基础,比较难,如果Gentoo玩的好的话 ,对Linux的认识绝对是质的提升。
红旗Linux:比较像Windows
Knoppix:不需要安装,下载通过镜像文件直接可以用
二,开源软件简介
部分开源软件
三,Linux应用领域
1,基于Linux的企业服务器
www.netcraft.com 扫描和踩点网站
2,嵌入式应用
手机,平板,银行,智能电视,机顶盒,智能卡系统等
3,Linux在电影娱乐业
第二章,Linux安装
1,VMware虚拟机的安装与使用
小技巧:快照:快速回复某个状态
克隆:1,克隆链接:2,克隆某个系统的全部,相当于复制另外一个一模一样的系统
2,系统分区
/dev/sda1(SCSI硬盘接口,SATA硬盘接口),现在一般都是SATA接口,SATA第三代了!
sd(a,b,c***p)
主分区:最多只能有4个
扩展分区:
最多只能有一个
主分区加扩展分区最多有4个
不能写入数据,只能包含逻辑分区
逻辑分区:
可以存储数据,逻辑分区永远从5开始
磁盘分区---》格式化---》硬件设备文件名---》挂载
挂载在Windows里面就是分配盘符(帮助理解)。挂载点必须是目录
挂载:
必须分区:
/(根分区)
swap分区(交换分区,内存2倍,不超过2GB)
推荐分区:
/boot(启动分区,200MB)
swap没有挂载点,不是给用户用的,给操作系统或内核直接调用的!
文件操作系统
总结:
分区:把大硬盘分为小的逻辑分区
格式化:写入文件系统
分区设备文件名:给每一个分区定义设备文件名
挂载:给每一个分区分配挂载点
文件系统类型:
sweep:
ext4 :/ ,/boot,/home,/tmp,/usr,/var,/usr/local,opt
/boot:系统启动,一般200M就可以了
/home:
linux默认管理员:root 密码:安装时自己设定的
安装日志:
anaconda-ks.cfg详解
系统安装的时候生成的一个文件,通过这个文件可以修改成自动安装的脚本,用于自动安装同样配置的系统.
自动生成的启动文件anaconda # Kickstart file automatically generated by anaconda. 版本=开发 #version=DEVEL 系统安装途径光盘 install cdrom 语言和键盘布局 lang zh_CN.UTF-8 keyboard us 网络配置 network --onboot no --device eth0 --bootproto dhcp --noipv6 root密码 rootpw --iscrypted $6$5XHy/O.DtgKiMf04$5MayVZSdodEj3iwUDYBzAiGETZwuI.u8SZRF3a04vMcgQVzOnEPXz35PAKackJDRHfVUTtQYFCUGNebDaQdd./ 防火墙开启的端口 firewall --service=ssh 认证加密方式 authconfig --enableshadow --passalgo=sha512 seliunx级别信息 selinux --enforcing 时区 timezone --utc Asia/Shanghai 系统启动引导 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work #clearpart --none 磁盘信息 #part /boot --fstype=ext4 --size=200 #part swap --size=2000 #part / --fstype=ext4 --grow --size=200 repo以及本地安装包,centos网络安装包 repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 %packages @chines-support @core @server-policy 结束 %end
它是系统安装的时候生成的一个文件,通过这个文件可以修改成自动安装的脚本。
3,远程登录管理工具
1.虚拟机网络配置
桥接:占用一个IP地址,人多的话 会出现IP冲突,配置简单,用的是本地的真实的网卡,不仅跟本主机通信,还可以跟局域网里的其他主机通信
NAT:用的是VMnet8网卡通信
host-only 仅主机模式:用的是VMnet1网卡通信
提示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟网络则不提供。
大家在安装完虚拟机后,默认安装了两个虚拟网卡,VMnet1和 VMnet8,其他的未安装(当然也可以手动安装其他的)。其中VMnet1是host网卡,用于host方式连接网络的。VMnet8是NAT网卡,用 于NAT方式连接网络的。它们的IP地址是随机生成的,如果要用虚拟机做实验的话,最好将VMnet1到VMnet8的IP地址改掉。习惯上把 VMware虚拟网卡使用的网段“固定”,使用如下原则:VMnet1对应的网段是192.168.10.0,VMnet2对应的网段是 192.168.20.0,其他的类似。当然平常只是随便用用的就不用改了,能上网就行了。
根据IP地址,或者VMnet1,VMnet0的IP地址属性,来给Linux配置IP地址,只要在一个网段里就可以了
//桥接模式,查看本机的IP地址(有网线)为192.168.1.155 ifconfig eth0 192.168.1.156
//仅主机模式,查看VMnet1的IP地址为192.168.118.1 ifconfig eth0 192.168.118.2
上面更改IP地址只是临时生效,如果关机或者重启,就不能用了。IP地址就丢失了,要想永久生效,必须修改IP的配置文件
有网线一般用桥接,无线就用仅主机或者NAT
tip:在桥接的时候,IP地址也配置了,就是不能通信,有可能是自动连接了有线网卡或者无线网卡,所以,可以在VMware里虚拟网络编辑器里修改!
2.SecureCRT远程连接管理工具
3.Winscp文件拷贝工具
第三章,注意事项
Linux严格区分大小写
Linux中所有内容以文件形式保存,包括硬件
硬件文件是/dev/sd[a-p]
光盘文件是/dev/sr0等
Linux所有的存储设备都必须挂载之后用户才能使用,包括硬盘,U盘和光盘
Linux各目录的作用
服务器注意事项
远程服务器不允许关机,只能重启
重启时应该关闭服务
不要在服务器访问高峰运行高负载命令
远程配置防火墙时不要把自己踢出服务器
指定合理的密码规范并定期更新
合理分配权限
定期备份重要的数据和日志
第四章 Linux常用命令
u: 所有者
g: 所属组
o: 其他人
r:读 4
w:写 2
x:执行 1
文件类型:(-二进制文件,d目录 l 软连接文件)
ls -l 目录 显示目录下的文件及目录的信息
ls -ld 目录 显示当前目录的文件信息
ls - a l d h i
a all的缩写,可以把隐藏文件也显示出来,隐藏文件不是让被人看不到,而是防止你把重要的文件误操作
h human 人性化 显示文件的大小,不然就以字节来显示
i indoe 节点 显示文件的索引号
mkdir -p 递归创建目录
rmdir 路径 删除空目录。如果目录里有数据,则删除不了!
cp -rp [原文件或目录][目标目录]
-r 复制目录
-p 保留文件的属性
功能描述:复制文件或目录
-p :保留原文件的属性的意思:例如你复制后的文件的时间会是当前时间,如果你要让复制后的文件的时候与原文件的时间是一样的,就需要用选项 -p
删除文件:rm
语法:rm -rf [文件或目录]
-r 删除目录
-f 强制删除
清屏:control+l 或者命令clear
文件处理命令:touch
创建空文件:touch [文件名]
查看命令:cat tac more less(上下翻页,/+搜索的关键词 ,n是表示接着往下找,是nest的缩写)pgup:向上翻一页,pgdn:向下翻一页,
head -n 指定行数 文件
eg: head -n 8 文件 表示查看此文件的前8行
---------------------------------------------------------------------------------------------------
tail -n 指定行数 文件 表示显示文件的最后n行 默认10行
-f 动态显示文件末尾内容 作用:动态查看,文件更新后,会动态显示,例如:日志,错误日志等动态写入的内容的文件
---------------------------------------------------------------------------------------------------
文件处理命令:链接
语法:ln -s [原文件] [目标文件]
-s 创建软链接
功能描述:生成链接文件
软连接与硬链接的区别:
软连接:相当于Windows的快捷方式,原文件删除就不能用了,软连接可以跨分区,目录和文件都可以生成软连接
硬链接:原文件删除了,此文件还是可以用,文件引用的次数减一,当引用次数为零的时候,文件就删除了,与原文件同步更新,硬链接不能跨分区。硬链接只能是文件,不能是目录
怎么查看某个文件是硬链接? ls -i 文件 会有相同的节点
-----------------------------------------------------------------------------------
权限管理命令:chmod
语法:chmod [{ugoa}{+-=}{rwx}][文件或目录]
[mode=421] [文件或目录]
-R 递归修改
w:4 r:2 x:1
功能描叙:改变文件或目录权限
权限详解:
file: r: cat/more/less/head/tail
w:vim
x:script command
directory: r: ls
w:touch/mkdir/redir/rm
x:cd
在目录中,一般rx会同时出现
修改权限的用户有两个:所有者,root
更改一个权限的所有者,组
命令名称:chown
执行权限:管理员root
语法:chown [用户] [文件或目录]
功能描述:改变文件或目录的所有者
范例:chown xzj wenjian //改变文件wenjian 的所有者为xzj
命令名称:chgrp
执行权限:管理员root
语法:chgrp [用户组] [文件或目录]
功能描述:改变文件或目录的所有者
范例:chgrp xzj wenjian //改变文件wenjian 的所有组为xzj
命令名称:umask
执行权限:所有用户
语法:chgrp [-S]
-S 以rwx形式显示新建文件缺省权限
功能描述:显示,设置文件的缺省权限
范例:umask -S
文件搜索命令:find
命令名称:find
执行权限:所有用户
语法:find [搜索范围] [匹配条件]
功能描述:文件搜索
文件名搜索:-name -iname(不区分大小写) *(通配符) ?(占位符) eg:find /etc -[i]name *xzj*
文件大小搜索:-size +N 大于 -N小于 N等于
所有者搜索: find /home -user xzj 在home目录下,查找所有者为xzj的所有文件 -group 根据所属组查找
-type 根据文件类型查找
f 文件 d 目录 l 软连接
-inum 根据i节点查找
当遇到比较奇怪的文件或者目录时 一般的方法删除不了,可以利用每个文件的节点来删除
eg:ls -i //或者文件的节点
find 位置 -inum 节点数 -exec rm {} \; //就可以删除了
其他搜索命令:跟Windows里的搜索工具everything是一样的
命令名称:locate
执行权限:所有用户
语法:locate 文件名
功能描述:在文件资料库中查找文件
范例:locate 文件名
-i 不区分大小写
优点:速度很快 原因是有一个资料库:在/var/lib/mlocate/mlocate.db 文件会更新在资料库里
问题:新建立的文件是没有收入到资料库里,用locate搜索不到的 find是实时查找 解决方法:updatedb 更新此库(放在tmp里的文件是不能更新的,tmp不在文件资料库的收入范围之内)
帮助命令:
1:命令的帮助信息,5;配置文件的帮助信息
whatis 命令 //简短的介绍命令是干啥的
apropos 配置文件 //简短的介绍配置文件的信息
用户管理命令:
命令名称:useradd
命令所在路径:/usr/sbin/useradd
执行权限:root
语法:useradd 用户名
功能描述:添加新用户
范例:useradd xzj //会在/home目录下生成xzj的用户文件
//当给用户设置密码的时候,才能登陆
命令名称:passwd
命令所在路径:/usr/sbin/passwd
执行权限:所有用户
语法:passwd 用户名
功能描述:设置用户密码,没有就添加,有就更新,
范例:passwd xzj
每个用户可以改自己的密码,root可以修改所有用户的密码
uptime 查看服务器登陆了多长时间
压缩解压命令:
-------------------------------gzip只能压缩文件 不能压缩目录------------------------------------
gzip 文件 //压缩
gunzip 文件 //解压缩
gzip -d 文件 //解压缩
-------------------------------------------------------------------------------------------
gzip 压缩文件都 原文件就不存在了 gzip不能压缩文件 zip就解决了上面两个问题 不过压缩率比gzip小
bzip2的压缩比很大 所以比较大的文件可以用bzip2来压缩
网络命令:
必须是在线用户
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
redhat系列专有的命令
setup设置IP地址是永久生效的,ifconfig是临时生效的
推荐使用setup来设置IP地址
--------------------------------------------------------------------------------------------
service network restart 重启网络
--------------------------------------------------------------------------------------------
每次开机都要手动挂载
设备文件名是自动定义好的,/dev/cdrom 是/dev/sr0的软连接 所以 这两个都可以(光盘挂载时)
--------------------------------------------------------------------------------------------
关机重启命令
1.shutdown命令
[root@localhost ~]#shutdown [选项] 时间
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 重启
立刻关机:shutdown -h now
定时关机:shutdown -h 20:30
立刻重启:shutdown -r now
定时重启:shutdown -r 20:30
正确的关机:关机前关掉正在运行的服务,再关机,而shutdown就是这样执行的,所以,推荐使用shutdown来关机!
init 3 命令行界面
init 5 图形界面
退出登录命令: logout
当操作完了以后,一定要退出用户!
--------------------------------------------------------------------------------------------
第五章 文本编辑器Vim
1,Vim常用操作
Vim撤销快捷键:
u是撤销你刚才做的动作
ctrl+r 是恢复你刚才撤销的动作
上面的参数g是表示不需要确认!
2,Vim常用技巧
:r 文件名 //导入文件到当前文件光标处
:!命令 //在文件里使用命令
control+v+键盘某个字母 //快捷键
每次关机重启后,定义的快捷键都失效了,必须在每个用户的配置文件来设置
例如:root下的配置文件
vim /root/.vimrc
配置文件:以.vimrc的文件是配置文件 /home/用户名/.vimrc /root/.vimrc 以后可以直接用,关机重启后也可以使用,永久有效!
--------------------------------------------------------------------------------------------
第六章 软件包管理
1,简介
二进制包是相对于源码包进行过编译的!
RPM就是二进制包,已经编译好了!类似于Windows里的.exe文件
Linux里有两大系列:Redhat和Debian,他们之间最大的不同就是二进制软件包不一样,Redhat的二进制包是RPM,Debian和Ubuntu的二进制包是deb包
上面的卸载方便说的是:只需要把软件的安装位置文件直接删掉就可以了
RPM命令管理-包命令与依赖性
RPM包管理有两种管理方式:1,RPM命令管理(手动)
2,yum在线管理
用一条命令同时安装 a,b,c可以解决上面的环形依赖!
rpm -Uvh 包全名 完全可以替代 rpm -ivh 包全名
卸载的时候,只需要包名就可以了 不需要全名,是在/var/lib/rpm中搜索
RPM命令管理-查询
在生产每个包的时候,就决定这个包的安装位置了,如果擅自改动,可能会出现问题,比如我们的服务管理命令找不到RPM包安装的一些功能和服务,所以并不推荐RPM包手工指定安装位置!
RPM的校验和文件提取
用校验的目的是检测系统里的文件是否被人修改过,当用rpm -V 包名 没有任何提示信息的话 就表示跟最开始安装的状态是一样的,没有任何修改!
RPM包的文件提取的作用:当你误删除,误操作某个包里的文件,配置文件等造成不可估计的影响的时候,你可以使用此方法来修复!
RPM包管理— yum在线管理-IP地址配置和网络yum源
Redhat认为这是一种售后服务,用yum会收取一定的费用来买官方注册码,但是centos是免费的
上面用的是ifconfig 来配置 只是临时有效,重启或者关机后就没有用了,并且这个只是配置了IP地址和子网掩码,只能在局域网里使用,但是不能访问公网,
IP地址
子网掩码
网关
DNS
IP+子网掩码+网关+DNS才能访问公网
怎么来配置一个有效的IP地址了?
利用Redhat自带的命令(Redhat系列专有的命令,其他系列不一定有这个命令):setup
重启网络服务:
centos的网络yum源已经默认配好了,只要能上网,就可以使用
但是,centos的官方网站在国外,可能有点慢,体验可能不怎么好,类似于composer一样的配置,最好配置国内的公开,免费的源!
yum在线安装,yum命令
eg: yum -y install gcc //远程安装会自动解决依赖问题
如果你升级的时候没有添加软件包,yum -y update //则会升级所有的软件包,包括Linux的内核,Linux的内核需要一定的配置才能启动,如果你是在远程的话,会导致服务器直接崩溃!
yum卸载的时候可能把系统依赖的包给卸载了,会导致系统崩溃,这是yum的缺点
光盘yum源搭建
在线yum比较慢,或者你没有联网的情况下,可以使用光盘yum
光盘yum源有个问题是,软件可能不是最新的,但是对于服务器来说,考虑的是稳定性!
实际的工作中,一般都是使用光盘做yum源!
默认base,debuginfo,vault生效,为了让本地yum生效怎么办了?
1.把这三个移走就可以了!(不建议,以后要用的时候,怕你找不到)
2.yum是根据.repo来识别的,也可以修改后缀名来达到目的,上述就是修改三个的后缀名为.repo.bak (推荐使用此方法)
3.把三个文件里的enable设置为0,表示失效,不起作用!eg:enable=0 (这种方法备用)
baseurl=file:///mnt/cdrom
红色中的file://代替在线yum中的http:// 绿色的是你的光盘挂载点,根据你自己的实际情况填写,还有就是必须是绝对路径
配置完之后 yum list 可以看到软件的最后后面不是base,而是【】里的内容
mount -a //显示你所有的挂载情况
源码包与RPM包的区别:
RPM包安装后,管理service的位置一般都在/etc/rc.d/init.d/目录下面
源码包只能用绝对路径来启动!
源码包的安装过程
源码包与RPM包在安装后的区别:首先RPM的安装路径 系统已经默认好了,但是源码包是自己定义的!因为安装位置不同带来了服务管理不同,RPM包可以使用服务管理命令来处理,比如:server命令,源码包必须是绝对路径!
确认gcc是否安装:
3.源码包安装过程
下载源码包
解压缩下载的源码包
进入解压缩目录
du命令看文件多大?
.configure --prefix=/usr/local/apache2 //在编译前先配置安装目录,
上述命令执行完成后会生成Makefile文件,之后的make install都是根据Makefile来安装的
make 是编译源码
如果make(编译出错的话),直接make clean(会把编译成的临时文件删掉即可)
make install 才是安装(安装出错,只需要把安装文件删除即可,但是你要记得安装路径)
脚本安装包
链接:https://sourceforge.net/projects/webadmin/files/webmin/
解压进入目录后,有一个setup.sh
------------------------------------------------------ 第七章 用户和用户组管理 -------------------------------------
第七章 用户和用户组管理
---------------------------------------------------------------------------------------------------------
7.1、 用户配置文件
如果你想把普通用户强制改为管理员用户,你可以在/etc/passwd 修改UID为0就就可以了!
影子文件
组信息文件/etc/group和组密码文件/etc/gshadow
组密码用的不多,并不推荐组密码!root可以操作,如果root比较忙,知道组密码的用户可以操作相关的操作!
---------------------------------------------------------------------------------------------------------
7.2、用户管理相关文件
添加用户的时候,就有了此邮箱!
作用:你想在每一个用户添加的时候会默认的在用户文件下产生你想看到的文件,也就是说,每次添加新用户的时候,都会自动产生一些默认文件,来源都是来自/etc/skel/目录下的模板文件
---------------------------------------------------------------------------------------------------------
7.3、用户管理命令
---------------------------------------------------------------------------------------------------------
7.4、用户组管理命令
---------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------