Linux学习1入门
Linux-轻巧且稳定
1.有很多的小程序,每个小程序完成单一的功能,实现复杂的任务
2.尽量避免捕获用户接口,用户与内核不直接接触,通过shell传递和反馈信息
3.配置文件为纯文本格式(可以用文本编辑器编辑vim)
网络连接的三种模式
桥接模式
优点:方便
虚拟系统可以和外部系统通讯
缺点:容易造成ip冲突
NAT模式 网络地址转换模式
在本体的主机上产生另外一个ip,之间形成一个独立的可通讯的联系,不造成ip冲突
虚拟机可通过代理到外部,而外部到不了虚拟机
主机模式
仅与本地物理通讯,不可上网。
虚拟机克隆
Linux目录结构
FHS标准:希望用户可以了解已经安装的程序在哪个目录下
基本介绍
- linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
- 记住一句经典的话:在Linux的世界里,一切皆文件 😀
Linux的结构与Windows不同是系统规划好的
root root用户所用到的一些文件
boot Linux在启动时用的文件,破坏会使Linux无法启动
dev 设备管理器
Linux特性:他会把硬件映射成一个文件来管理 例如CPU等
详解:
/bin
Binary的缩写,这个目录存放着最经常使用的命令
/usr/bin 普通用户使用的命令,和/bin 区别是否与开机有关
/usr/local/bin
/sbin
/usr/sbin 网络服务器命令
/usr/local/sbin
/usr/lib和/usr/lib64:包含各种应用程序函数库
/usr/share:存放共享文件目录(在线帮助文件,杂项,时区)
/usr/include :存放程序开发头文件
/usr/src:释放源代码目录
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/hoom
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
每添加一个用户,便会多一个文件夹,删掉用户文件夹随之消失
/root
该目录为系统管理员,也称作超级权限者的用户主目录
/lib 系统开机所需要的最基本的 动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
/lib/modules:存放内核相关的模块(驱动程序等)
/lost+found
这个目录下一般情况是空的,当系统非法关机后,这里就存放了一些文件。
/etc
所有的系统管所需要的配置文件和子目录
例如安装了mysql数据库 my.conf
/usr unix software resource 存放安装的应用程序
这是一个非常重要的目录,用户的程序和文件默认放在这个目录下,类似于Windows下的program files目录。
/*boot
Linux存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/proc 不能动
这个目录是一个虚拟的目录,他是系统内存的映射,访问这个目录来获取系统值。
伪文件系统,数据存放在内存中,存放关于进程的相关信息
/srv 不能动 service的缩写,该目录存放一些服务器启动之后需要提取的数据
/sys 不能动 伪文件系统,存放在内存当中,记录了内核相关的信息,包括目前加载的内核文件和内核检测到的设备
/tmp 存放一些临时文件,所有用户都可以创建访问文件,每个用户只能删除自己的文件
一个月清空一次
/dev 类似于Windows的设备管理器,八宿友的硬件用文件的形式存储。
/media Linux系统会自动识别一些设备,例如光盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了
例如: d:/myshare
/opt 给主机额外安装软件所摆放的目录,如安装ORACLE数据库就可放到该目录下,默认为空
/usr/local
这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序
与/usr不同的是,这个是安装目录,usr是exe
/var
这个目录中存放着不断扩充着的东西,习惯将经常被更改的目录放在这个目录下,包括各种日志文件,mail等
/var/cache:存放应用程序运行时产生的缓存文件
/var/lib:程序运行时,需要使用的数据文件的存放目录
/var/lock:存放锁文件,设备或资源一次只能被一个应用程序使用,如果多使用程序会产生错误,因此要为设备或资源上锁
/var/log:存放日志目录(系统,用户登录,服务日志)
/var/mail:存放个人电子邮件(系统报警产生邮件信息)
/var/run:存放应用程序运行时PID文件(进程号,pid结尾)
/var/spool:存放队列数据,排队等待其他应用程序使用的数据,数据通常情况使用完成后会被删除
/selinux security-enhanced linux
SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置
类似于Windows的360等软件
FHS规定:/etc /bin /dev /lib sbin 五个目录必须要和根目录位于同一文件系统
Linux远程登陆
在虚拟机中ifconfig 获得虚拟机ip
建议用桥接模式
在母机ping相应ip地址,若能联通,就可以开始玩了
一次性接受
接受并保存—相当于记住密码
通过xshell远程操控Linux的文件
xftp
若传输失败
或进入root账户
解决乱码问题
选utf编码
xshell
ssh +虚拟机ip地址进行连接
一次性接受
接受并保存—相当于记住密码
通过xshell远程操控Linux的文件
shell:使用者,计算机交互接口(人机交互接口)
shell中输入命令,shell把命令传递给内核,内核把命令结果反馈给shell,人从shell中读取命令执行结果
内核:图形界面/字符界面 收到的信息都是一样的
Linux支持的shell
bash:Linux默认支持的shell
ksh
csh
内核的作用:
进程的管理:进程:要执行的任务
内存管理:
文件系统:存储设备上存储数据的方式方法:Windows:NTFS/FAT32 存储方式不同但存储数据相同
网络功能:管理ip地址信息等
硬件驱动:
安全功能:管理密码
vim
输入esc
输入: 进入命令行模式
关机重启与登陆注销
基本介绍
shutdown -h now 立刻关机
shutdown -h 1 1分钟后关机
shutdown -r now 现在重启计算机
halt 关机,同上
reboot 现在重启计算机
sync 把内存的数据同步到磁盘
shutdown 默认一分钟后关机
小心驶得万年船
登陆时尽量少用root账号登陆,避免操作失误,在普通账户下可以先用
1 | su - 用户名 |
命令来切换成管理员身份
在提示符下输入logout即可注销用户
图形运行级别:
运行级别3
在root下logout,会退回到普通用户,在普通用户logout,会退出系统
21-26跳过了
命令提示符
[root@www ~]#管理员
[fff@www ~]$普通用户
root:当前登录的用户名
www:主机名
:当前用户所处的目录(代表用户宿主目录)
#:代表当前用户是管理员
$:代表当前登录用户是普通用户
Linux终端
多用户多任务系统
6个终端:ctrl+alt+fn
推出终端:exit
Linux界面
GUI:graphical user interface:图形用户接口(图形界面)切换图形界面:CTRL+alt+f7
GNOME:Linux默认图形界面 用C语言开发
KDE:C++开发
xface:简化的图形界面
CLT:command line interface 命令行接口(字符界面)
Linux 使用凭证
用户名和密码 用户获取资源权限的凭证
指纹/刷脸等
root:Linux默认管理员用户名
普通用户:
切换用户:su 用户名
退出当前用户:exit
switch user 的简写
当管理员切换至普通用户,不需要输入密码,普通用户切换至管理员,需要输入密码
添加用户:useradd student
Linux命令格式
命令字 [选项 ] [参数] 中括号代表可以省略
命令字是唯一的 ,实现某一项功能
如ls
选项:修改命令的执行方式(实现特定的功能)
长选项:–来引导,是一个单词(多个长选项不能组合)
短选项:-引导,是一个字符(多个多个短选项可以组合)
ls -a -l
ls -al
ls -la
效果相同(╹ڡ╹ )
参数:命令作用的对象
Linux高效获取命令帮助信息(一)
内核版本号:主.次.修订 3.6.28
Linux系统不认识用户名,只认识UID
3A认证
认证机制:
密码认证
- 符合复杂性要求(数字,小写字母,大写字母,特殊符号至少三种)
- 密码要足够长(至少7位)
- 不要使用比较易记的密码,使用随机的字符
- 定期更改密码
- 重复密码的时间要长123 456 123 456间隔要长
Linux登录信息:
/etc/issue
查看:
1 | cat /etc/issue |
Linux命令分类:
- 内部命令:shell自带的命令
- 外部命令:在Linux文件系统中存在一个应用程序
查看命令类型:
type 命令
( )is a shell buildin:buildin关键字说明该命令是内部命令
( )is /bin/mkdir:有路径显示(外部命令)
路径:
绝对路径:从根(/)开始的路径是绝对路径 Windows中的根即C盘,D盘等,而Linux中的根只有一个
相对路径:需要有参照点,以现在所处的工作目录为参照点
. 代表当前路径.. 代表上一级路径 ~代表用的宿主目录
列出目录:
ls:list简写(命令字)
ls -l
第一位:文件类型
-:代表普通文件
纯文本文件(ASCII):配置文件
二进制文件( binary file):命令
数据格式文件(data):/var/log/wtmp
d:代表目录 directory
设备文件
b: 块设备 block 如硬盘,U盘等 一块一块的读取东西
c:字符设备 char 如键盘等 一个字符一个字符的读取,一次性读取,按顺序读取
s: socket套接字文件 symbolic link file 用在网络上数据连接 ip+port
192.168.12.10:20
l:链接文件:软链接文件
p;特殊的文件类型,解决多个程序同时访问一个文件所造成的错误问题
第二到十位:权限位rwx:读写执行
234位:文件属主权限 owner
自个儿
567位:文件属组权限 group
家庭成员
8910位:其他用户权限 other
剩下的人
tom登录:新建一个文件 a.txt文件属主tom
1:代表文件硬链接的次数
第一个root:代表文件属主 owner
第二个root:代表文件属组 group
1207 文件的大小
Nov 6 18:51 文件的时间戳 文件最后被访问的时间戳
文件的时间戳:
- access:访问的时间戳
- Modify:文件被修改的时间戳(修改文件数据,添加删除数据)
- change:文件被更改的时间戳(更改文件属性)
查看时间戳命令
stat 文件名
ls -l
什么都不加的话,会作用于当前的目录
ls -h
为文件大小添加单位
ls -a
显示目录下所有文件(包括 . .. 和以.开头的隐藏文件)
ls -A
和-a相同,但是不显示.和..
ls -R
递归显示目录中的内容(一并显示子目录中的所有内容)
ls -r
逆序显示文件目录内容
ls -i
显示文件所在的i节点( index node)
补充
. 当前目录
.. 上一级目录
变量
环境变量:内存中的命名空间
PATH变量:存放系统命令路径,以冒号隔开,每一个冒号就代表一个路径
查看PATH变量
1 | echo $PATH |
注:Linux命令严格区分大小写
随便输一个命令,如果该命令不存在
如果在以上路径中没有找到相关命令(该命令为外部命令)
提示用户command not found
如果一个命令在以上多个路径中存在,系统会按照从前往后的顺序查找,查找到该命令后,后面的路径不再查找
hash:查看命令缓存及命中率
Linux高效获取命令帮助信息(二)
Linux的帮助信息:
内部命令:help 命令
外部命令:命令 –help
先type一下判断命令类型
pwd 显示当前位置
man :帮助
语法:man 命令
查看内部命令信息时显示的是bash帮助信息
使用的时候可以用上下方向键翻行
enter 向下翻行
pgdn向下翻页
pgup向上翻页
/word :从上往下查找关键字
?word: 从下往上查找关键字
q:退出当前帮助信息
man目录说明
- 普通用户命令 (/bin /usr/bin /usr/local/bin)
- 系统调用库
- 库调用
- 设备或特殊文件 通常指硬件设备 /dev
- 查看配置文件格式
- 游戏
- 杂项
- 管理命令 (/sbin /usr/sbin /usr/local/sbin) secret binary
cd:change directory(切换目录)
cd 不加选项,返回到当前用户的宿主目录
cd -username 切换到username的宿主目录
cd -返回到上一次的工作目录
which 命令 查看命令所在的路径
whatis:当打开操作系统一段时间后这个命令才可以使用,这个时间一般是七十分钟,该命令在系统启动大约70分钟后会生成whatis的数据库,如果时间太短,该命令不会执行,我们可以使用makewhatis 初始化该命令
该命令的作用是查看命令所在的帮助信息的目录
whatis查看该命令在哪几个目录级别中,级别如上八个
man+级别+命令 来查看帮助信息
man使用说明:
NAME:命令名称及简要用法
SYNOPSIS:语法格式,可能还包括一些选项的使用
DESCREIPTION:命令或选项的详细说明
Exit status:退出状态码
AUTHOR:作者信息
REPORTING BUGS(BUG):发现BUG时如何反馈信息
SEE ALSO :另外参照的帮助信息
COPYRIGHT:该命令的版权信息
OPTIONS:说明该命令每一个选项的详细用法
example:命令使用实例
man手册页目录 /usr/share/doc( 工作中主要查看内核信息)
<>:必须使用的选项的或参数,不可以省略
[]:可以省略的选项或参数
|:代表多选一
…:代表可以使用多个选项或参数
{}:分组,没有特殊意义
info:在线查看帮助,注重于命令历史和版权信息
pwd:print working directory
显示当前所处的工作目录
11-15
Linux根文件系统
根目录下目录以及子目录的作用
file:查看Linux中文件类型
file 文件名
在Linux文件名限制
- 单个文件或目录的名称不能超过255字符
- 文件名中不能包含特殊字符 / . - + 等
Linux常见命令
文件惯例
目录管理
系统管理
网络管理
file
查看文件类型(Windows是用扩展名识别文件类型)
语法:file [options] 文件名
option:
-b:显示结果时,不显示文件名
-c:显示执行file命令的执行过程
-i:输出MIME类型的字符串
-z:显示压缩文件的内容
-L:查看软件类对应文件的类型
-f:查看文件当中文件名的类型
cat
一次性查看整个文件
语法:cat [options] 文件名
从键盘输入创建一个新文件:
cat >new_file_name <<EOF //end of the file
不想输入时输入EOF结束
从现有文件当中添加数据
cat >> 文件名 << EOF
把多个文件内容合并到一个文件输出
cat file1 file2 > file3
option:
-n:显示文件内容的同时显示行号
-b:与-n的功能相同,但不包括空行
-s:当文件中有多个空行时,合并为一个空行
-E:在显示内容时,结尾♥显示‘$’符号
cp
复制文件或目录
语法: cp [options] [src_file] [des_file]
一些规则
如上图
option
-f:force,强制复制文件或目录不进行提示
-r:递归复制目录
-s:为某个文件创建符号链接( 软链接),而不是复制文件
-b:覆盖原有的文件前,对文件进行备份
-l:为文件创建硬链接,而不是复制文件
-p:复制文件时保留文件的原有属性
-d:当复制软链接文件时,把目标文件或目录也会创建为软链接,并指向最原始的文件
mv
move
移动或重命名文件和目录
当原位置和目标位置是同一目录时,是重命名:
当原位置和目标位置不是同一目录时,是移动
-b:移动前先对源文件进行备份
-f:强制覆盖
-i:覆盖目标文件前询问
-t:将多个文件移动到同一个目录(目标目录在前面,后面跟文件)
rm
删除文件或目录
-d:删除可能存在数据的目录
-f:强制删除
-i:删除前进行询问
-r:递归删除整个目录
-v:显示命令执行过程
mkdir
make dirictory 创建空目录
-m:创建目录时同时设置权限
-p:递归显示创新目录
a下的bcd同级
{a,b}-{c,d}
-v:显示创新目录的过程
touch
创建新文件或者修改文件时间戳
-a:只改变访问时间戳
-c:不创建文件
-d:使用指定时间戳访问文件,而不是系统文件
-f:解决bsd系列与Linux的兼容性
tree
查看目录树
which
查找命令所在的路径
whereis
查看命令所在的路径,源代码文件,帮助信息文件所在的文件
-b 只查看文件所在的位置,相当于which
-m:只查看帮助信息所在的位置
-s:只查看源码所在的位置
locate
非实时性,根据自己的数据库查找文件,centos每天更新一次数据库,安装完locate后生成/var/lib/mlocate 目录,存放数据库模糊匹配
:# updatedb // 更新locate数据库
: # yum -y install mlocate
: # locate file_name
查看文本文件内容
Linux中是以$为结尾
Windows中是以ENTER键为结尾
cat
一次性查看文本内容
more
可翻页查看文本内容
可用回车键向下翻行
用空格键向下翻一屏
用ctrl+b向上翻一屏
ctrl+f向下翻一屏
m 显示当前的行号
v 调用vi编辑器
! 调用shell执行命令
q 退出more命令
more 数字 文件名 从第几行开始显示文件
less
翻页查看文本内容
可用回车键向下翻行
用空格键向下翻一屏
pgdn向下翻一屏
pgup向上翻一屏
上下方向键可以翻行
/word 在该文件当中查找关键字
n:查找下一个
NL查找上一个
q 退出less命令
less多用于管道当中
管道:选择多条命令,前一条命令输出结果作为后一条命令的输入条件
head
默认查看文件的前十行
-n:查看文本文件的前n行
tail
查看文本文件的后十行
-n:查看文本文件的后n行
-f :动态查看文本文件内容
如动态查看日志:tail -f /var/log/messages
find
压缩解压命令
压缩.gz
只有这种不保留源文件
gzip 文件
解压
gunzip/gzip -d 文件
压缩zip
zip -r 文件名 目录
解压缩
unzip 文件名
网络命令
其他命令
查看进程
Shell特性(上)
GUI:包括GNOME KDE XFACE等
CLI:sh ksh bash等
bashshell是默认使用的shell程序
bash是一个应用程序
shell启动:当用户登陆完成后,系统会自动启动shell程序
进程:应用程序的副本;是joy拍卖行Pid区分( 在系统中,一个进程只认为自己存在)
shell:父shell程序和子shell程序(父子shell之间环境相互独立)
:# cat /etc/shells 查看当前系统所支持的shell程序
:# yum -y install ksh csh //安装ksh,csh的shell程序
:# exit //退出当前shell程序
bash的特性
命令历史 Linux会自动记录系统过去执行的命令,并保存在内存的缓冲区中
。 # history //查看Linux的历史
在每个用户的家目录下,有个隐藏文件 bash _history保存命令历史
-c:清空命令历史
-d:删除某一条命令历史 history -d 数字
history -d 10 4 从第十行往下删四行
-w:将命令历史保存到某个文件中
变量:PATH命令路径变量
HISTSIZE:命令历史大小变量
。$ echo HISTSIZE //查看histsize的变量值
命令历史使用技巧
!n :使用命令历史的第n个命令(n是编号)
!-n:执行命令历史中的倒数第n条命令
!word:执行命令历史中最近一次以word开始的命令(word必须能够唯一标识用户想执行的命令)
!!:执行上一条命令
!$:引用前一个同种命令的参数
ESC键 按完松开 按.键:引用前一个同种命令的参数
管道,重定向
计算机体系结构:
控制器:CPU,读取系统指令
运算器:CPU,运算
存储器:RAM,(内部存储器;易失性存储器)
输入设备(input):输入数据,如键盘,硬盘等
输出设备(output):显示指令执行结果,如显示器,音响,硬盘等。
计算机总线:
地址总线:负责内存寻址
数据总线: 传输数据
控制总线: 控制指令
寄存器:CPU当中内部临时存储空间
I/O设备:负责计算机内部存储设备和外部存储设备(硬盘,U盘,光盘)进行交互的设备
程序:指令+数据
指令:有程序提供,负责加工数据
数据:系统中数据可以有多种来源,比如来自变量,来自文件,来自输入设备
当用户没有为指令指定数据来源时,系统要有默认的数据来源
标准输入输出设备:
标准输入设备:键盘(stdin)
标准输出设备:显示器(stdout)
标准错误输出设备:显示器(stderr)
三种数据流:
标准输入数据流/标准输出数据流/标准错误输出数据流
当在Linux中打开一个文件时,内核会被反复调用,对于文件表示就很重要了,用文件描述符来标识文件,文件加载完成后用数字标识
fd:file descriptor(文件描述符 )
IO重定向:把默认输入输出数据来源重新定向到其他的文件或设备
输出重定向:
:> 覆盖输出重定向 覆盖原来的
:>>追加输出重定向 不覆盖只添加
:2>错误输出重定向 错误才实行
:2>>错误追加输出重定向
: &>>混合覆盖输出重定向
:&>>混合追加输出重定向
输入重定向:
:<:输入重定向
管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件
tr:实现字符转换,不修改原文件
tee
既输出到显示器,又输出到文件
命令别名
。# alias COMM _ALIAS=command
我的理解是c语言中的define
alias别名旨在当前shell生效
注意:执行alias命令是,command最好用‘ ’引起来
。# unalias COMM _ALIAS //取消命令别名
命令行编辑
ctrl+a :光标快速跳转到命令头部
ctrl+e: 光标快速行动到行尾
ctrl+u:快速删除光标位置到命令行行首
ctrl+k:快速删除光标位置到命令行行尾
ctrl+l:清屏(命令clear:清屏)
命令行展开 //提高工作效率
5.1命令补齐:在PATH变量当中搜索命令并补齐(PATH变量必须正常,输入要补齐的命令的字符数一定能够唯一标识这条命令;tab补齐)
按tab键两次,列出以某个字符为首的所有命令
。# echo $PATH //查看PATH变量的值
路径和文件补齐:在系统路径中查找
命令行补齐功能不能补齐选型
5.2:命令替换
命令替换就是把命令中的子命令
。# echo “字符串”
先执行pwd命令,输出他的结果
“ ”双引号:弱引用 可以实现变量的替换,把变量名替换为变量值
‘ ’单引号:强引用 不能完成变量替换
pwd显示当前路径
命令行通配:globbing
*:匹配任意长度的任意字符
?:匹配任意单个字符
[] :匹配指定范围内的任意单个字符
[^] :匹配任意范围外的单个字符
[:space:]:表示空格
[:punct:]:表示所有标点符号
[:lower:]:表示所有小写字母
[:upper:]:表示所有大写字母
[:alpha:]:表示所有字母 包括大小写
[:digit:]:表示所有数字
[:alnum:]:表示所有数字和大小写字母
变量
编程
用户(1)
process(进程):用户执行应用程序的过程
不同应用程序调用相同的库:权限
权限:用户对于应用程序的执行能力
文件属主:
属性:
其他用户:
用户:多任务,多用户
Linux实现权限隔离机制(多用户,)
操作系统识别用户
用户:UID
组:GID(逻辑容器:包含用户,实现多个用户对某个文件或应用程序分配相同的权限)
用户分类:
管理员用户:root UID:0
普通用户:1000-65535
程序(系统)用户:1-999
组分类:
管理员组/普通组
基本组:Linux中,新建用户时,没有指定隶属的组,系统会为其建立一个和用户同名的组,作为基本组
附加组:方便以后为用户分配权限
解析:
/etc/passwd:存储用户基本信息
/etc/shadow/:存储用户的影子口令
/etc/group:存储用户的组信息
/etc/passwd解释:用冒号隔开
第一列:用户的登录名
第二列:加密密码(x表示密码占位符,密码保存在etc/shadow中)
第三列:UID
第四列:GID
第五列:GECOS用户的描述信息
第六列:用户宿主目录
第七列:用户登录默认使用的一些shell(/etc/sheels)
/etc/shadow解释:用冒号隔开
第一列:用户的登录名
第二列:用户加密的密码
第三列:最后一次更改密码的时间(从1970年到1月1号)
第四列:密码最少使用时间 用户无法更改密码
第五列:密码最长使用时间 用户必须更改密码的时间
第六列:密码过期前的警告时间
第七列:密码过期后的宽限时间
第八列:密码失效时间
第九列:保留
/etc/shadow密码区域解释(格式:$id$salt$encrypted):
三部分组成:用$隔开
第一部分加密算法:
1:MD5加密
5:SHA-256加密
6:SHA-512加密
第二部分:随机序列号
为了区分用同一密码和同种加密方法的两个用户
第三部分:随机序列号和密码共同加密后的字符串
加密算法:
对称加密:加密和解密使用相同的密码(效率高,但不够安全)
非对称加密:加密和解密使用不同的密钥,公钥和私钥,用一个密钥加密,同时用另一个密钥解密
单向加密,散列加密:提取数据的特征码,常用于数据完整性效验
单向加密
1:不可逆
2:定长输出
md5:128位定长输出
sha:160位 224位 256位 384位 512位
3:雪崩效应
用户管理(下)
添加用户 :useradd
/etc/default/useradd
/etc/skel:目录(用户宿主目录模板目录,只对新建用户生效)
.bash_logout:用户注销时执行的命令
.bash_profile:用户登录系统时执行的命令
.bashrc:用户的能录一个新shell时执行的命令
前面带.代表隐藏文件
更改此目录就是更改模板,新建用户时都会生效
etc/login.defs文件解释(只对新建用户生效):
用户管理命令(上)
useradd:添加新用户 更改/etc/passwd /etc
useradd 命令 user_name
-c:为用户添加描述信息
不加时如上
使用后
-d:指定用户的宿主目录目录 默认在/home目录
-D:改变默认的值(修改配置文件)/etc/default/useradd文件中的
用户管理命令( 下)
passwd:为用户设置密码/锁定解锁用户/查看状态
语法:passwd [options] user_name
root用户可以给普通用户设置密码
-l:锁定用户(暂时无法登录操作系统)
-u:解锁用户
-S:查看用户状态
/etc/shadow中的内容
-d:删除用户密码,允许普通用户以空密码登录(不建议使用)
-e:设置密码过期,用户再次登陆时,需要修改密码
-n:设置密码时设置最小使用期限/etc/shadow第四列,
-x:设置用户密码最大使用期限/etc/shadow第五列
-w:设置密码过期前的警告时间,修改第六列
-i:修改过期后的宽限时间,修改第七列
普通用户设置密码时,必须先验证当前密码,符合密码策略
root用户则不需要
userlde:删除用户 修改 /etc/shadow /etc/group /etc/passwd
语法:userlde [options] user_name
-r:删除用户时连同宿主目录一同删除
usermod:修改用户属性 修改/etc/passwd
语法同上
-c:更改用户的描述信息
-d:更改用户的宿主目录目录 默认在/home目录
-e:更改用户的过期时间,格式参考之前
-f:修改/etc/shadow第七列内容
-g:修改基本组
-G:修改附加组
//前提是组要存在
-l:修改用户的登录名
-s:修改用户的shell(系统支持的shell)
-L:锁定
-U:解锁
chsh:修改用户的shell
语法:
相当于usermod -s
-s:后面跟shell,更改用户的shell
-l:显示当前系统支持的shell
finger:显示用户的基本信息
finger+user _name
chfn: 修改用户的基本信息
语法 :
-o:修改办公室
-p:修改办公室电话号码
-f:修改用户名
id:显示用户和组的ID
语法:
-a:忽略其他版本区别
-Z:显示安全上下文内容
-g:显示有效组的ID
-G:显示所有组的ID
-u:显示用户ID
-n:不显示组号,显示名字
chagel:修改用户密码的时间信息 /etc/shadow
语法:chage o。。。 u。。。
-l:列出用户详细的密码参数
-d:修改shadow第三列
-E:修改第八列
-I大写的I:更改第七列,跟天数后面
-m:四
-M:五
-W:六 跟天数
Linux组管理
组管理:groupadd,groupdel,groupmod,newgrp,groupmems,gpasswd 。
组分类:
管理员组:root
普通用户组:
系统用户组:
按照用户分类:
管理员组:root
基本组:初始化的组
附加组:有效组
组:逻辑容器,存放用户,实现集中授权
/etc/group:
第一列:组的名字
第二列:组的密码区域
第三列:组的ID号( GID)
第四列:组中的成员
groupadd:
-g:创建组时指定组的ID
-r:添加一个系统组
groupdel:删除一个组
后面直接加组名
可以把他的基本组转到别人名下,比如tom,就可以完全删除
转组在下面写
默认情况下我们不能删除一个用户的基本组,通过修改用户基本组来删除
可以删除用户的同时,系统会删除同名基本组(该组是一个用户的基本组是才能删除)
groupmod:修改组的属性
-g:修改组的GID号
-n:为组重命名
gpasswd:为组设置密码,摄制组的管理员,设置组成员
-A:为组设置管理员
-M:批量添加用户,用逗号隔开
-r:为组移除密码
-R:让组的密码失效
-a:为组添加成员( 组的管理员操作命令)
-d:删除组成员( 组的管理员操作命令)
newgrp:为用户修改有效组(只在当前shell有效)
exit:退出newgrp
groupmems:为组添加成员,显示组成员列表
Linux权限1
权限:是用户对于系统资源及数据等操作的能力
三类用户权限
属主:owner
属组:group
其他:other
chown
改变文件属主或数组,不加-R时只改变指定位置
-R
能递归更改目录的属主或属组
要想同时更改属组和属主
chmod
修改文件或目录权限
可以同事基于一个文件行使多种操作