Linux学习笔记
2021-05-04 00:34:43 83 举报
AI智能生成
Linux学习笔记
作者其他创作
大纲/内容
一.服务器注意事项
1.远程服务器不允许关机,只能重启
2.重启前应该关闭服务(例如生产服务,次之网络服务)
3.不要在服务器访问高峰运和地高负载命令(例解,压缩大文件,大量IO操作,如整盘扫描,复制大文件)
4.远程配置防火墙时不要把自已踢出服务器
5.指定合理的密码规范并定期更新
6.合理分配权限
二.Linux注意事项
1.大小写敏感,命令长小写
2.所有内容都是以文件形式保存
3.不靠扩展名(后缀名)区分文件类型
4.所有存储设备都必须挂载后才能使用,包括硬盘,U盘,光盘
三.文件系统结构
相同:linux与window表现出来的文件结构都是树状结构
不同:实际存储的时候,linux可以将树下的某个分支单独出来,并在分区的时候指定一个分区,单独存储这一“分支”
四.分区建议及推荐分区方案
1.分须分区
/:根分区
Swap:交换分区,建议设为内存的2位,但最好不要超过2G
2.推荐分区方案
/:10G
/boot:200M
Swap:2G
/var:
1G以上,可变数据放在其中,例如日志文件,分配大小视用途而定,一般现在的大硬盘,建议分配5G
/home:最大的剩余空间的一半,用户的家目录所在
/usr:最大的剩余空间的一半,最耗用空间的部份。存放软件的地方
五.常用命令
1.文件处理命令
1.命令格式与目录处理命令ls
1.命令格式:命令 -[选项] [参数]
2.ls
别名ll= ls -i
-a 显示隐藏文件,隐藏文件是以“.”开头的文件
-i 显示详细信息
2.目录处理命令
mkdir:创建目录
-p 递归创建
cd:切换目录
cd ..表示返回上一级。..表示上级目录,.表示当前目录
cd:返回家目录
pwd:显示当前目录的绝对路径
rmdir:删除空目录,使用比较少
cp:复制文件或目录(复制同时可实现改名的作用)
-r:复制目录
-p:保留文件属性
mv:剪切文件,改名
rm:删除文件或目上录
-r:删除目录
-f:强制执行
3.文件处理命令
touch:创建文件
文件名不能带"/"符号,不建议带空格的文件名
cat:顺序显示文件内容
-n:带行号
tac:反向显示文件内容
more:分页显示文件内容,但不能向上翻页
f或空格:向下翻页,Enter:向下换行,q或Q:退出
less:分页显示文件内容,可向上翻页,带查找功能
同more,另Page Down,Page Up为向上向下翻页,上下箭头为向上向下换行。
输入/XXX和?XXX为向下上查找字符,下一个按n
head:显示文件前几行,默认10行
-n+“空格”+行数
tail:显示文件末尾几行,默认10行
同head
-f:动态显示,常用于动态显示日志文件
4.链接命令
ln:生成链接文件
-s:创建软链接,默认生成硬链接
软链接:类似Window快捷方式,文件类型为l,日常使用比较多
硬链接:一个或多个具有相同索引节点的文件,具有防止“误删”的功能
不能给目录创建
不能跨区创建
2.权限管理命令
1.权限管理命令chmod
-R 递归修改
r=读权限(查看文件/列表目录中内容),w=写权限(修改文件,不能删/目录中创建,删除文件),x=执行权限(执行文件/进入目录)
权限位:r=4,w=2,x=1
u=所有者,g=所属组,o=其它人,a=所有人
2.其他权限管理命令
chown:修改所有者和所属组。chown user:group 文件或目录
chgrp:修改所属组。chgrp group 文件或目录
umask:显示,设置文件和目录的缺省权限掩码
-S:rwx的形式显示
实际权限=777-掩码
3.文件搜索命令
1.文件搜索命令find
-name:按文件名字查找
-iname:不区分大小写
-size:按文件大小查询,以数据块为单位,1数据块=0.5KB
-user:按所有者查找
-group:按所属组查找
-amin:查找(超过多长时间或多长时间内)访问过的文件
-cmin:查找(超过多长时间或多长时间内)修改过属性的文件
-mmin:查找(超过多长时间或多长时间内)修改过内容的文件
-type:按类型查找。f:文件,d:目录,l:软链接
-inum:按i节点查找
-a:两个条件同时满足
-o:两个条件满足任意一个即可
-exec/-ok:对搜索结果执行操作。例:find / -name init* -exec ls {} ;
可用通配符:*,?,+,—符号
2.其它搜索命令
1.locate:在文件资料库中查找
updatedb:手动更新资料库,tmp临时目录等不在更新范围之内
-i:不区分大小写
2.which:搜索命令位置及别名
3.whereis:搜索命令及帮助文档位置
例:
passwd: /usr/bin/passwd(命令)
passwd: /etc/passwd(配置文件) /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz。1是命令的帮助,5是配置文件的帮助
4.grep:在文件内容中搜索关键字
-i:不区分大小写
-v:排除指定字串
4.帮助命令
1.man:查看命令或配置文件的帮助信息
man 1 XXX查看命令的帮助信息,man 5 XXX查看配置文件的帮助信息,前提是有的话
2.whatis:查看命令简短的帮助信息
3.apropos:查看配置文件简短的帮助信息
4.--help
显示常见的选项的帮助信息
5.info:跟man差不多
6.help:获得内置命令的帮助
内置命令:找不到命令所在路径的命令,linux有不少
5.用户管理命令
1.useradd:添加新用户
2.passwd:设置或更改用户密码
3.who:查看登录用户信息
4.w:查看登录用户详细信息
6.压缩解压命令
1.gzip与gunzip或gzip -d
只能压缩文件
压缩后不保留原文件
2.zip与unzip
-r:压缩目录
压缩后保留原文件
3.bzip2与bunzip2或bzip2 -d
只能压缩文件
-k:压缩后保留原文件
4.tar:打包
-c:打包
-x:解包
-v:显示详细信息
-f:指定文件名
-z:打包:打包后通过gzip压缩。2.解包:解压gz格式的打包文档
-j:打包:打包后通过bzip2压缩。2.解包:解压bz2格式的打包文档
7.网络命令
1.write:给在线用户发信息
2.wall:发送广播信息,ctrl+d保存发送
3.ping:测试网络连通性
4.ifconfig:查看/设备网卡信息
5.mail:发送/查看邮件
进入mail后按h显示邮件列表
按d加编号删除邮件
6.last:查看目前与过去登录系统的用户信息
7.lastlog:检查全部/特定用户上次登录的时间
-u:查看特定用户
8.traceroute:显示数据包到主机间的路径
9.netstat:显示网络相关信息
-n:显示IP和端口
-t:显示tcp协议的连接
-u:显示udp协议的连接
-l:显示监听状态的连接
-a:显示所有网络连接,包含-t,-u,-l
-r:查路由表可显示网关,单独使用
10.setup:配置网络,redhat系列独有
11.mount,umount:挂载/卸载
8.关机命启查看当前运行级别退出登录命令
1.关机命令
1.shutdown
可以指定执行时间和警告信息
-h:关机
-r:重启
-c:取消前一个关机命令
2.halt
3.poweroff
4.init 0
2.重启命令
1.reboot
2.init 6
3.runlevel:当看当前级别
4.logout:退出登录,使用完一定要退出
六.文本编辑器Vim
1.Vim工作模式
1.命令模式:插入模式按ESC
2.插入模式:命令模式输入i,a,o
3.编辑模式:命令模式输入:
2.Vim常用操作
:set nu:设置行号
:set nonu:取消行号
:n:到第n行
x:删除光标所在处字符
dd:删除光标所在行
u:取消上一步的操作
:x,yd:删除由x行到y行
yy:复制当前行,nyy复制当前行以下n行
dd:剪切当前行,ndd剪切当前以下n行
R:从光标所在处开始替换字符,按ESC结束
/string:搜索字符串,n下一下
:w:保存
:q:退出
3.Vim常用技巧
跳过不看
七.软件包管理简介
1.软件包分类,二者概念上的区别
1.源码包:原代码安装,脚本安装包
优点
1.开源,可以自行修改源代码
2.可以自由选择所需功能
3.源码包需要编译,更加适合安装的系统,稳定性和效率更高
4.卸载方便,可直接删除安装的位置, 没垃圾
缺点
1.安装步骤较多,尤其安装大型的软件集合时,容易出现拼写等人为错误
2.编译时间较长,比二进制包安装慢
3.安装过程报错新手很难解决
2.二进制包:RPM包,DEB包,编译后的二进制文件
优点
1.包管理系统简单。安装,升级,查询,卸载几个命令就可以实现
2.安装速度比源码包快得多
缺点
1.因为是编译后的,不能再看到源代码
2.功能选译不如源码包灵活
3.存在依赖性的问题
2.RPM包管理
1.rpm命令管理
1.RPM包命令原则
例:httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd:软件包名,而httpd-2.2.15-15.el6.centos.1.i686.rpm是包全名
2.2.15:软件版本
15:发布的次数
el6.centos:适合的Linux平台
i686:适合的硬件平台,noarch:适合任何硬件平台
rpm:rpm包扩展名
2.RPM包依赖性
1.树形依赖:a->b->c
2.环形依赖:a->b->c->a
3.模块依赖:模块依赖查询网站:www.rpmfind.net
3.RPM安装
-i:安装,后跟包全名。例:rpm -ivh 包全名
-U:升级,后跟包全名,大写U
-e:后跟包名
-v:显示详细信息
-h:显示进度
--nodeps:不检测依赖性
4.用rpm安装软件很痛苦
5.查询
-q:查询指定的包是否安装
rpm -q httpd
-qa:查询所有已安装的包
rpm -qa |grep httpd:列出所有已安装的包的包名带“httpd”的清单
-i:查询已安装包中的包信息
rpm -qi 包名
-p:查询没安装包的信息
rpm -qip 包全名
-l:查询包的安装位置
rpm -qlp 包名(装没装都可以查)
-f:查询文件属于哪个包
rpm -qf 文件名
-R:查询包的依赖性
rpm -qRp 包名
6.RPM包校验
-V:校验已安装的RPM包
验证内容
S:文件大小是否改变
M:文件的类型或权限是否被改变
5:文件的MD5校验是否改变
D:设备的中,从代码是否改变
L:文件路径是否改变
U:文件的所有者是否改变
G:文件的所属组是否改变
T:文件的修改时间是否改变
文件类型
c:配置文件
d:普通文档
g:ghost文件,很少见,就是该文件不应该被这个RPM包包含
l:授权文件
r:描述文件
RPM包中文件提取,用于修复文件
rpm2cpio 包全名 | cpio -idv.文件绝对路径
2.yum在线管理
1.IP地址配置和网络yum源
redhat系统可以用setup命令来配置网络参数
2.yum命令
yum list:查询所有可用软件列表
yum search 关键字:搜索服务器上所有和关键字相关的包
yum -y install 包名:自动应答安装包
update:升级,格式跟install一样
remove:删除,同上
安装软件的原则是用什么装什么,升级软件也要有针对性的升级不要“yum -y update”。因为这样会连linux的内核在内,所有包一并更新,更新内核后需要配置才能使用,不配置是进入不了系统的。remove也一样,因为依赖性的问题,删除软件有可以使其它软件崩溃,尽量不要卸载。
软件组
yum grouplist
yum groupinstall 软件组名
yum groupremove 软件组名
3.光盘yum源搭建
1.mount:挂载光盘
2.修改原始的3个网络yum源文件失效
3.让光盘yum源生效,CentOS-Media.repo就是系统准备给用户的光盘yum源文件,使用时修改内容即可
3.源码包管理
源码包和RPM包的区别,安装位置不同
RPM包安装位置:一般情况下是默认的
/etc/:配置文件
/usr/bin/:可执行命令
/usr/lib/:程序所使用的库
/usr/share/doc/:使用手册
/usr/share/man/:帮助文件
源码包安装位置:可以指定位置
建议:/usr/local/软件名/
两者安装位置不同的影响
RPM安装的服务管理
1.绝对路径中运行
例:/etc/rc.d.init.d/httpd start
2.,因为安装位置一般是默认的,所以可以用简化命令运行
例:service httpd start,service是redhat系统专有的
实际上service命令会去/etc/rc.d.init.d/目录查找你所需要运行的服务
类似于window中设定了系统变量
源码代安装的服务
因为安装路径不同,没有了”系统变量“,只能使用绝对路径
源码包安装过程
注意事项
1.源代码保存位置:/usr/local/src/
2.软件安装位置:/usr/local/
3.如何确定安装过程报错
1.安装过程停止
2.并出现error,warning或no的提示
1.安装C语方编译器:gcc
2.下载源码包
3.解压源码包并进入解压的目录,看到INSTALL(安装说明)和README(使用说明)两个文件,最好可以查看一下
4.运行./confure
1.定义需要的功能选项。一定要使用--prefix=/usr/local/软件名
2.检测系统环境是否符号安装要求,例如依赖包是否安装
3.将定义好的功能选择和环境信息写入Makefile用于后续编译
5.运行make,占用时间最长
调用gcc把源码包编译成机器码
6.运行make install
现在才安装到服务器上
7.运行make clean
清空编译产生的临时文件,如果在运行make install之前报错,也可以用这个。清空临时文件
源码包的卸载
make uninstall或不需要卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件
4.脚本安装包
类似于window的安装方式
八.用户和用户组管理
1.用户配置文件
1.用户信息文件:/etc/passwd
1.用户名
2.密码标志
3.UID
UID为1~499是伪用户,不能登录
系统用户默认是500~65535之间
4.GID
5.用户说明
6.家目录
7.登录之后的Shell
2.影子文件:/etc/shadow
1.用户名
2.加密密码
如何为*或!!代表没密码,不能登录
3.密码最后一次修改日期
4.两次密码的修改间隔
5.密码有效期
6.密码有效期到期的警告天数
7.密码过期后的宽限天数
留空或0:到期后马上失效
-1:密码永不失效
8.帐号失效时间,使用时间戳表示
9.保留字段
3.组信息文件/etc/group和组密码文件/etc/gshadow
2.用户管理相关文件
1.用户家目录
root:/root/,权限550
普通用户:/home/用户名/,权限为700
2.用户邮箱
/var/spool/mail/用户名/
3.用户模板
/etc/skel/
3.用户管理命令
1.useradd:用户添加命令
添加用户时有很多默认值,那这些默认值由什么控制?
/etc/default/useradd
/etc/login.defs
2.passwd:修改用户密码
3.usermod:修改用户信息
4.chage:修改密码状态
chage -d 0 登录名:强迫用户第一次登录的时候就需要修改密码
5.userdel:删除用户
-r:删除用户同时删除用户家目录,建议使用
6:id:查看用户ID和组ID的信息
7.su:切换用户
-:连带用户的环境一起切换,切换用户时,一定要带“-”选项
例:su - 用户名
-c:不切换用户,但用这个“用户”的身份来执行某个命令
例:su - root -c "useradd user3"
7.系统添加和删除用户时系统所操作的文件
1./etc/passwd:用户信息文件
2./etc/shadow:2.影子文件
3./etc/group:组信息文件
4./etc/gshadow:组密码文件
5./var/spool/mail/用户名/:邮箱
6./etc/skel/:模板
7./home/用户名:家目录
4.用户组管理命令
1.groupadd:添加用户组
-g:指定组ID
2.groupmod:修改用户组
-g:修改组ID
-n:修改组名
不建议使用,因为还要很多东西要改,如家目录、邮箱。返而还不如直接删除再重建
3.groupdel:删除用户组
如果有用户的”初始组“是这个要删除的组,则不能删除
如果有用户的”附加组“是这个要删除的组,则不影响,可以删除
4.gpasswd:添加,删除附加组中的用户
-a:添加用户进组
-d:从组中删除用户
九.权限管理
1.ACL权限
1.ACL权限简介与开启
1.解决(所有者,所属组,其它人)身份不够用的问题
2.类似Window的权限,抛开(所有者,所属组,其它人)身份,直接给某个用户配权限
3.查看分区ACL权限是否开启
现在的linux默认支持acl
1.df -h:查看系统有那些分区
2.dumpe2fs -h 分区:查看分区详细信息
Default mount options: user_xattr acl默认支持acl
如不支持可手动开启
1.临时开启:mount -o remount,acl /,重新挂载根分区,并挂载加入acl权限
2.永久生效
1.修改/etc/fstab,在defaults后加",acl",一般情况下这个”defaults“就已经包含acl
2.mount -o -remount /:重新挂载文件系统或重启,使配置生效
2.查看与设定ACL权限
1.查看acl权限:getfacl 文件名
2.setfacl 选项 文件名
-m:设acl
例:setfacl -m u:test(用户名):rx(权限) /project(文件或目录)
例:setfacl -m g:test(组名名):rx(权限) /project(文件或目录)
设置完成后,权限位后会多个“+”位,表示除了普通权限外,还有acl权限
3.最大有效权限与删除ACL权限
输入getfacl 文件名
显示出来的“mask”是用来指定最大有效权限的。如果赋予acl权限后,是需要和mask的权限“相与”才能得到用户的真正权限,但不影响“所有者“的权限
修改最大有效权限mask:setfacl -m m:rx(权限) /project(文件或目录)
删除ACL权限
1.setfacl -x u:text(用户名) project(文件或目录)
2.setfacl -x g:text(组名名) project(文件或目录)
3.setfacl -b project(文件或目录)
4.默认ACL权限和递归ACL权限
0 条评论
下一页