开源软件:
1.绝大多数开源软件免费
2.可以获得源代码
3.自由传播,改良
linux应用
1.基于Linux的企业服务器
2.嵌入式
忘掉Windows思维方式
VMware简介
是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,依次来实现在一台机器上真正同时运行两个独立的操作系统。
一、系统分区
分区类型:
主分区:最多只能有4个
扩展分区:
最多只能有1个
主分区加扩展分区最多有4个
不能写入数据,只能包含逻辑分区
逻辑分区
二、格式化:
格式化(高级格式化)又称逻辑格式化,它是指根据用户选定的文件系统(如FAT16,FAT32,NTFS,EXT2,EXT3,EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表,目标表等用于文件管理的磁盘空间。
3.硬件设备文件名
had1:IDE硬盘接口的第一个硬盘的第一个分区
分区,格式化,分区建立设备文件名,分配盘符
硬盘的设备文件名,分区的设备文件名
sda,sdb,sdc;sda1,sda2,sda3
1-4只能用于主分区和扩展分区,5之后的用于逻辑分区 ,逻辑分区永远都是从5开始。
空的目录作为挂载点 (相当于Windows中盘符)
逻辑上boot,etc,home目录都在根目录/下,实际存储可能根目录/在sda3上,boot在sda1上,home在sda2上。
总结
分区:把大硬盘分为小的逻辑分区
格式化:写入文件系统,附带清除数据
分区设备文件名:给每个分区定义设备文件名
挂载:给每个分区分配挂载点
mininal:最小化安装,有一些命令会默认不自带
Desktop:带桌面环境
我们现在安装basic server版本的
Host only:虚拟机只能和物理主机通信,不能访问外网,通过虚拟网卡Vmware Net1进行通信
NAT:虚拟机可以和物理主机通信,可以访问外网,通过虚拟网卡Vmware net8进行通信
桥接:利用物理主机真实网卡通信,还可以访问局域网内的其他主机,访问外网,占用1个ip地址。
Host only示例:
查看VMware Net1的ip地址
添加一个网卡eth0,配置ip和VMware1在同一网段
Windows中ping测试
Linux中ping测试:
桥接示例:
查看物理网卡ip信息
Linux中设置网卡eth0和物理网卡在同一网段
远程登录工具管理:
SecureCRT下载与安装
https://www.cnblogs.com/yjd_hycf_space/p/7729796.html
Winscp文件拷贝工具
注意事项:
1.Linux严格区分大小写
2.Linux中所有内容以文件形式保存,包括硬件
硬盘:/dev/sd[a-p]
光盘:/dev/sr0等
3.Linux不靠扩展名区分文件类型
Linux中文件不用加扩展名,系统也可以识别打开,写扩展名是为了方便用户管理,直观一些。
4.Linux中所有的存储设备都必须挂载之后,用户才能使用,包括硬盘,U盘,光盘等。
单用户模式和Windows下安全模式类似
邮件,日志一般放在var下。
隐藏文件:不是为了让用户找不到,设计的初衷是告诉用户这是一个系统文件,你一般不用碰它。
如果自己要建立一个隐藏文件,直接在文件名前面加.就可以了。
ls命令:
引用计数 ;文件大小默认单位是字节
ls -d:查看目录本身的信息
ls -i:查看文件的inode号
mkdir:make directory
mkdir -p:递归创建
同时创建多个目录:
cd ..返回上一级目录:因为..表示当前目录的上一级目录
rmdir:
删除空目录,一般不用
cp -p保留文件属性,例如文件的时间属性。
复制文件的时候,更改文件的名字
剪切的时候,也可以重命名
1.touch
创建带空格的文件,不建议文件名带空格,带空格的时候文件名需要用""引起来
2.cat
3.tac
4.more
5.less
less和more区别,more不能往上翻页查看, less可以使用上箭头向上翻一行或者使用pageup向上翻一页。
less中可以使用/关键词进行搜索,使用n查看下一个关键词
6.head
head 默认显示10行
7.tail
tail -f示例
开始:
进行操作
日志文件实时变化
软链接:用的比较多
1.软链接:类似于Windows快捷方式
2.软链接文件的权限都是lrwxrwxrwx,但最终的权限取决于源文件的权限。
3.软链接的文件大小,只是符号链接,很小,不是源文件的大小
硬链接:用的比较少
1.拷贝cp -p+同步更新
2.删除源文件后,软链接会报错,硬链接文件依然可以访问
3.硬链接文件和源文件的i节点相同,软链接的不相同。
一个文件对应一个i节点,一个i节点不一定对应一个文件
4.硬链接不能跨分区,软链接可以
5.硬链接不能针对目录使用,软链接可以
1.chmod
文件的属主和root才可以更改文件的权限
chmod -R:递归修改
例如:要想删除一个文件,不是看这个文件的权限,而是看这个文件的目录有没有写权限:
1.chown
只有root用户才能改变文件的所有者
2.chgrp
3.umask
文件:默认新建是没有可执行权限的
文件夹:755,文件:644
第一个0表示特殊权限,先不管。
更改umask
搜索:占用大量的系统资源
find
?:单个字符
*:任意字符
-5表示5分钟之类,+5表示大于5分钟
-a:and; -o:or
1.locate
对于才建立的文件,locate无法找到,这个时候就需要updatedb更新文件资料库
放在tmp里面的文件,locate是无法查找到的。
locate -i :不区分大小写搜索的时候
2.which
3.whereis
4.grep
例如,查找的时候去掉注释行,^#以#开头的行。
1.man
使用man查看配置文件的帮助信息,直接man 配置文件名,不要使用全局路径,使用全局路径会把配置文件的内容给输出。
例如:
是man services;而不是man /etc/services
passwd既是一个命令,又是一个配置文件
1表示命令,5表示配置文件
man手册分好几个部分:
1 用户命令, 可由任何人启动的。
2 系统调用, 即由内核提供的函数。
3 例程, 即库函数,比如标准C库libc。
4 设备, 即/dev目录下的特殊文件。
5 文件格式描述, 例如/etc/passwd。
6 游戏, 不用解释啦!
7 杂项, 例如宏命令包、惯例等。
8 系统管理员工具, 只能由root启动。
9 其他(Linux特定的), 用来存放内核例行程序的文档。
2.whatis 命令
只查看命令的功能
3.只查看配置文件的功能
4.help
1.useradd
useradd添加用户之后,用户是没有密码的,还需要使用passwd给用户设置密码。
2.passwd
普通用户只能使用passwd更改自己的密码,管理员root可以更改任何用户的密码。管理员更改其他用户密码,不需要知道用户原密码。
3.who
查看登录用户信息
登录用户名 登录终端 登录时间 登录主机IP地址
一个用户可以多次登录
tty:本地登录
pts:远程终端
4.who
当前时间; up:9:25表示运行了9个小时25分钟
load average:系统平均负载
IDLE:用户空闲时间
PCPU:占用CPU时间
JCPU:累计占用CPU时间
WHAT:当前正在执行操作,-bash表示当前没有操作
uptime:Linux连续运行时间
5.uptime
查看Linux连续运行时间
.gz格式
1.gzip:只能压缩文件,不能压缩目录,和tar结合
gzip压缩文件的时候不保存源文件
gzip -d 解压
2.tar
打包,压缩
先打包,再压缩
打包时直接压缩
3.zip
linux中的压缩格式,Windows一般都支持
4.bzip2
gzip的升级版,针对文件,和tar结合
1.write
给在线用户发送信息
Ctrl+退格:删除错误信息
2.wall
write all的缩写,给所用在线用户发送信息,自己也会收到一份这个信息
3.ping
4.ifconfig
5.mail
6.last
7.lastlog
查看最后一次登录时间
根据userID查看某个用户最后一次登录时间
8.traceroute
9.netstat
用途非常广泛
a:all
10.setup
rethad专有,其他Linux没有
永久生效
11.mount
直接mount查看挂载情况
1.shutdown
-h:用的比较少
shutdown -h now:立即关机;shutdown -h 20:30,定时关机
shutdown -r now:立即重启;shutdown -r 20:30,定时重启
poweroff:相当于直接断电
单用户:相当于Windows安全模式 ,修复时用
runlevel:查询系统运行级别
N:表示上一次运行级别没有,3表示当前运行级别
5.logout
退出登录
常用操作:
wq!:当文件没有写权限时,root和文件所有者可以使用wq!强行写。
:r 文件名 :导入一个文件的内容到当前文档中
例如,ee.txt内容为:
d.txt内容为
ee.txt中执行:r d.txt后,ee.txt的内容变为
:r !命令 : 在不退出vim的情况下,执行相应的命令
例如:r !data直接把日期插入到文档中
定义快捷键:
例如定义注释的快捷键:
:map ^P I#
取消注释:
:map ^B 0x
插入邮箱
:map ^H [email protected]
连续行注释
:n1,n2s/^/#/g...
替换:
:ab hw hello world,输入hw 都会变成hello world
这些设置在文件关闭后就失效了,要想永久有效,需要在每个用户的目录下.vimrc中设置。没有的话,就自己创建一个,设置的时候不需要加:
\命令:使用原始的命令,不加别名的
软件包管理简介
.exe文件在Linux上不能识别,病毒无法运行;
服务器端软件Linux上比Windows上多
源码包:C语言源代码;脚本安装包,就是自己写了个安装界面,来安装源码包,比较少,给新手用的。
二进制包:C语言源代码编译之后的包,厂商发行软件的时候帮我编译好了,看不到源代码;RPM就相当于Windows的.exe
卸载方便:直接把软件安装目录删掉就可以了,不会遗留垃圾。
RPM包管理-rpm命令管理
noarch表示所有硬件平台都支持
redhat中yum是收费的,centos中yum不收费
yum安装时把依赖的包自动给你装上
模块依赖:
.so+数字表示依赖的是一个模块,需要自己找到这个模块是哪个安装包中的
--nodps一般不用
rpm安装的时候包依赖问题很麻烦
rpm命令管理-查询
RPM包的安装位置是默认的,可以手工指定安装位置,但是不推荐改,改了系统可能就找不到
这个文件得是包装出来的,不是自己创建的;
判断系统文件是否被人进行了修改
我们安装好Apache后,先rpm -V httpd看一下,什么反应都没有,说明包中的文件没有被修改
然后我们修改一下,包中的任意一个文件,例如/etc/httpd/conf/httpd.conf
在后面加上一个index.php
再查看rpm -V httpd
对应的位上出现字母或数字,就代表发生了对应的变化;S表示文件大小变化,5表示文件内容变化,T表示文件修改时间发生变化,C表示这个文件是一个配置文件。
主要用于修改,删除了某个文件时用
例如误删了ls命令的修复方法 ,先查看ls命令属于哪个软件包,再从那个软件包中提取出来,放回原位。
这里rpm2cpio那一行的./bin/ls不怎么理解
yum管理的也是rpm包,没有yum包一说
默认Base的网络yum源生效,Media代表光盘镜像yum源
yum命令
例如yum -y install gcc
装完后,查看
升级的时候一定记得加上包名,不然会把所有软件都升级,包括Linux内核,这样Linux就崩了,开不了机。
软件装好了,尽量别卸载。
a->b->c;a依赖b,b依赖c;卸载c的时候,会把a,b都给卸载掉,容易出现问题。
光盘yum源
让其他yum源失效,可以把其他几个都打开,然后设置里面的enabled=0 ,但是这样太麻烦,我们就直接给他们换一个名字,备份。
Linux配置文件是有格式的,上面的注释#得写在开头,也不能有空格
这个时候再yum list看到的软件就都是光盘中的了
源码包和rpm包的区别
安装位置不同,
Linux中启动一个软件的方法,根本上就是使用命令的绝对路径
查询通过rpm安装的软件
这里得使用绝对路径,不能使用相对路径
注意这里要管理防火墙,编辑一个index.html文件,随便写上点内容,在主机浏览器中输入Linux的ip地址就可以访问了。
service红帽专有命令,service会到rpm默认的安装位置搜索相应文件,本质是一样的
源码包安装过程
虽然已经安装了rpm的Apache,但还是可以安装Apache的源码包
INSTALL文件是软件的安装方法,README是软件的使用方法
碰到一个软件先看看INSTALL文件看安装方法
这时候安装会报错
是因为有几个依赖包没有安装,需要安装三个依赖包,参考
https://jingyan.baidu.com/article/4b07be3c5cd75348b380f3c3.html
http://www.bubuko.com/infodetail-767705.html
安装时提示没有g++是因为没有安装gcc-c++导致,安装即可
./profile之后会生成Makefile文件
如果make之后报错,这几make clean就可以清除临时垃圾,因为这个时候还没有在/usr/local下生成文件
启动源代码安装的Apache,提示80端口被占用,是因为我们开启了rpm安装的Apache,关掉即可。
出现这个界面表示安装成功
脚本安装包
主要用于安装硬件驱动,因为硬件驱动安装比较复杂
du -sh 查看文件大小
进行要安装的软件目录,执行./setup.sh,根据提示操作即可
1./etc/passwd
7个字段
x:表示用户是有密码的,空的话表示没有密码,可以本地登录,不能远程登录ssh不允许
UID为0表示管理员,root其实就是根据其uid为0,来识别为管理员。
可以把一个普通用户的uid改为0,这样他就成为了管理员,Linux中允许多个用户的uid相同
伪用户:不能登录, 不能删除
不推荐改初始组,容易把自己搞晕
家目录:用户初始登录目录,Windows一进去是桌面,Linux中用户一进去也得有一个目录呀。
2./etc/shadow
9个字段
影子文件,权限为0,保存用户密码,重点保存文件
如果想禁止某一个用户登录,可以在用户的密码前加一个!
第7字段为空,表示密码过期后立即失效
第8字段,表示账号失效时间,这里设置了失效时间时候,就不管前面第5字段密码有效期。
3./etc/group
4个字段
4./etc/gshadow,用的少
组密码用的并不多,并不推荐使用,
用户管理相关命令
用户的家目录的所有者,所属组,权限查看;
权限对root用户没用
Linux中把一个普通用户变为超级用户,不是把普通用户的所属组gid改为root组,而是把uid改为0
这个时候搞hd用户登录后,发现提示符为#,但是他的家目录不变,还是/home/hd
就是创建用户的时候默认创建的文件,这些文件从/etc/skel下拷贝过来
我们也可以自己在/etc/skel下创建一个文件,这样在创建新用户的时候,这个文件也会被拷贝到用户的家目录下。
1.useradd
useradd,passwd
-g:不推荐使用
-G指定附加组,用,分割,组得已经存在
-d:不用自己创建,系统会自动创建
PASS_MIN_LEN:已经不再生效,PAM中定义了密码规则。
2.passwd
超级用户可以改所有用户的密码,普通用户可以改自己的密码,普通用户改自己密码时后面不用接自己的用户名,接了反而报错。
普通用户更改自己的密码需要遵守规范
锁定用户和解锁用户
这时候再登录hd账号就不能登录上了,
解锁之后可以重新登录
shell编程时候使用
3.usermod
usermod锁定和解锁用户,和passwd命令的功能基本一致;还可以直接修改/etc/shadow文件,或者把用户登录的/bin/bash改为/sbin/nologin
4.chage
手工修改/etc/passwd文件来的更方便
这样一登录进去就必须修改密码
5.uderdel
6.id
查看uid和gid
7.su
切换到其他用户的h时候 - 不能省
尽量不要修改组
要向删除组,这个组中不能有初始用户,附加用户没关系;得把初始用户都删完再删组。
也可以手工修改/etc/group文件,把用户加到其他组
解决所有者,所属组,其他组权限不够用的情况
/etc/fstab文件:
系统开机自动挂载的文件,改这个文件的时候需要小心,改错了,系统就起不来了,就崩了。默认是不会挂载光驱的,因为光驱中可能没有光盘,就会有问题。
查看和设定acl权限
最大有效权限与删除ACL权限
mask影响ACL权限和所属组,不影响所有者
默认ACL权限和递归ACL权限
递归对 已存在的文件起作用,对新建立的文件不起作用。
这两个权限只能赋予目录。默认权限对未来新建立的文件起作用,对已经存在的文件不起作用。
默认权限和递归权限可以一起使用,这样新建立的目录也具有了这个权限。
SUID
给文件增加suid权限,文件得有执行权限,不然强加会变为大S,报错。
给vim设置了suid权限之后很危险,这样vim就可以以管理员身份打开所有文件了。
SGID
一般不会对一个文件同时赋予suid,sgid,sbit权限,需要什么权限就赋予什么权限
3.chattr权限
chattr对root也起作用
给文件增加i属性,相当于把文件锁起来了,大家只能看,不能删除,不能改
e:表示文件所在的文件系统是ext4
对目录加i权限,不能删除目录本身,也不能删除目录下的文件
对文件增加a属性,不能用vim编辑,应为很难判断你有没有删除,只能>>追加
对目录增加a属性,可以修改文件内容,不能修改文件名
chattr不是用来限制root用户的,是为了防止大家误操作,用户可以自由地+-权限。
不知道chattr = 怎么使用,老是报错
4.sudo
这里的ALL代表的被管理的主机IP地址,或者所在网段。ALL表示所有IP地址都可以。
这里命令不用 使用绝对路径,就直接运行了呀。
可以尝试给一个用户 vim的sudo权限,这样vim就无敌了,是不允许这样做的。