文件和用户管理
Linux目录结构##
cd / //改变文件夹
pwd // 打印当前文件夹
list //打印出当前文件夹下的文件(简写ls)
注意:系统管理员:root(根)
系统目录(文件夹):/(根)
两者虽然都为根,但是意义和表现方式不同。
系统常见目录
/:根
一级目录:
bin: 二进制,普通用户使用的命令(内部包含执行命令文件)
boot:计算机启动目录
dev:驱动设备文件
etc:配置文件(控制台文件)
home:存储普通用户的家目录
root:root用户的HOME, 除了root账号(超级管理员)外其他用户不能进入
run:运行文件(会被及时清理)
sbin:管理员能使用的特权命令
tmp:临时目录
usr:应用程序
var:包含有日志文件
Linux文件管理
1.文件类型(理解)
常见类型:
1)普通文件(文本文件,二进制文件,压缩文件,电影,图片等)
2)目录文件(命令行中显示为蓝色)
非常见类型:
1)设备文件(块设备)存储设备硬盘,U盘/dev/sda,/dev/sdal
2)设备文件(字符设备)打印机,终端等
3)链接文件(淡蓝色)
4)套接字文件
5)管道文件
文件管理命令
1)改变目录
cd //change directory改变绝对路径或相对路径
cd /home/alice //绝对路径
cd. ... //绝对路径
2)创建文件
touch 路径和名称
eg: touch /var1
3)创建目录
mkdir 路径和目录名
目录 mkdir -v详细 -p递归
---------------------------------
mkdir dir1
mkdir/home/dir2 /home/dir3
mkdir -p /home/aaa/bbb/ccc //当创建目录没有上一级时,自动创建
mkdir /home(dir4,dir5)
mkdir -v/home(dir6,dir7)
mkdir -pv/home/dir8/111/222
mkdir -pv/home/(yang/{dir1,111),zhiwei}
4)复制
cp /home/a/b/c/d /home/a/ //把前面文件夹中的文件复制到后面的文件夹内
cp -r /home/a/b/c/d /home/a/ //把前面文件夹中的文件复制到后面的文件夹内(确认)
5)移动
mv 源文件路径 目标文件路径
-------------------------------------
mv /home/a/b/c/d /home/a/b/ //把d文件移动到b文件夹下
mv /home/a/b/c/d /home/ddd //把d文件移动到home中并改名为ddd
6)删除
rm -rf 文件或目录的路径
-------------------------------------
rm -rf /home/a/b //删除a下的b文件
rm -rf /home/a/* //删除掉a下的所有文件,*是通配符
rm -rf /home/a/*1 //删除掉a下的形式如*1的文件
rm -rf /home/a/b1 /home/a/c2 //删除a下名称为b1,c2的文件
7)查看文件内容
cat 文件路径 //查看文件全部内容
head -3 文件路径 //只看该文件的前三行
tail -2 文件路径 //只看文件后两行
more 文件路径 //与cat功能一样(小文件时),当是大文件时,可以不翻页,从第一页开始
看,而用cat时,会直接跳到最后。
grep 关键字 文件路径 //过滤出文件下含有关键字的数据
8)修改文件内容
ls a > list.txt //重定量(前面文件内容存到后面)
gedit 文件路径 //文件编译器(图形文件编辑器)
vim 文件路径 //文件编译器2(执行命令后,按i进行文件中内容的插入,先按esc再输入:wq退出文本编译器,在文本编译器中,在光标停止的地方连续按两次y,代表复制的意思,然后在光标停止位置按p代表粘贴,连续按两次d代表删除整行,如果想复制多行,例如一次复制3行,则执行3yy代表从光标位置开始复制三行数据,dd语法与yy相同)
set nu //设置行号,给每一行标行号。
v //可视化选取
i //从当前位置插入
o //另起一行开始插入
: //进入末行模式
Esc //返回命令模式
u //undo撤销
hjkl //光标定位(上下左右)
0 $ //光标定位(行首行尾)
gg G //光标定位(gg页首G页尾)
3G //光标定位(进入第三行)
/string(n N可以循环) //查找字符,按n键选下一个
:w //保存
:q //退出
:wq //保存并退出
*在最后加!号代表强制操作
:1,5 s/22222/66666/g //在第一行到第五行内,把22222全换成66666,g代表全局。
:w/tmp/aaa.txt //另存为/tmp/aaa.txt
注:修改文件意外退出时,会将文件后缀名加上.swp,且无法进入文件进行查看与修改。后面是解决办法:如修改1.txt文件时意外退出,则系统写一个备用文件名为1.txt.swp,此时若使用ls是不能找到备用文件,应该使用ls -a 文件路径(如 ls -a /)来查看隐藏文件。再用rm -rf 文件路径将备用文件删除即可。
9)绝对路径和相对路径
绝对路径:从根目录开始
用处:定位文件,能找到所有的文件
缺点:当创建多个文件时,绝对路径路径名太长
解决办法:cd进入操作目录下再进行操作
/home/abc/1.txt
相对路径:.代表当前路径,…代表上一级目录
优点:省去冗余路径名
cd 文件路径 //改路径
./文件路径 或者 直接文件路径名(省略打法)
-----------------------------
./file1.txt 或者 file1.txt //在当前路径下创建file1.txt
../../ 文件路径 //上两级创造文件
../ 文件路径 //在上一级创造文件
Linux用户管理
用户/组基本概念
1)用户信息文件
/etc/passwd(冒号分割为七列字段)
root:x:0:0:root:/root:/bin/bash
用户名:x:uid:gid:描述:HOME:shell
用户名:登陆系统的名字
x:密码占位符
uid:用户身份证号码 (系统约定:0:特权用户;1-499系统用户(计算机本身System);1000+:普通用户,500-1000在centos第七代后也为系统用户)
gid:组号。
描述:用户功能
HOME:登陆系统时所在的目录
shell:命令解释器(定义,接受,执行命令 )
补充:
IDC:internet database center (互联网数据中心)
每台服务器都有双电(市电,UPS)
2)用户密码信息文件
加密的意义:1.私密性2.完整性3.不可否认性
/etc/shadow
root:$1$MYG2N:15636:0:99999:7: : : :
1.登录名:是与/etc/passwd文件中的登录名一致的用户名
2.口令:字段存放的是加密后的用户口令字,如果为空,则对应用户,则对应用户没有口令,登陆时不需口令;星号代表账号被锁定;双叹号表示这个密码已经过期;$6$开头表明是用SHA—512加密的;$1$b表明是用MD5加密的;$2$表明是用Blowfish加密的;$3$是用SHA-256加密的。
3.最后一次修改时间:如18302代表从1970年1月1日到最后一次修改所经历的天数
4.最小间隔:两次密码修改之间时间最小间隔。
5.最大时间间隔(密码有效期):修改密码的最大时间间隔,即至少多少天必须更改一次密码。
6.警告时间:字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7.不活动时间:表示的是用户没有登录活动但账号仍能保持有效的最大天数。(软限制,到期后多少天就不能用账号了)
8.失效时间:字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出对应账号的生存周期,期满后,该账号就不再是一个合法的账号,也就不能用来登录了(硬限制)
9.保留
3)组信息文件
/etc/group
root:x:0:
组名:组密码:组ID:组成员(默认为空)
用户/组管理
1)用户(不能是纯数字)
useradd 用户名 //添加用户
grep 用户名 /etc/passwd //查看用户信息
id 用户名 //能够查看该用户名是否存在
passwd 用户名 //修改密码,默认隐藏输入
whoami //查询当前用户是谁
useradd 用户名 -u uid账号 //添加用户和用户uid
-d 文件路径 //更改路径
useradd --help //帮助
userdel 用户名 //删除用户
usermod -s /sbin/nologin 用户名 //修改用户属性(禁止登录)
2)用户组(不能是纯数字)
groupadd 组名 -g uid账号 //添加组(添加成功后会有邮件提示)
grep 组名 //查看组信息
groupdel 组名 //删除组
-g 组的uid //制定用户的基本组
-G 组的uid //制定用户的附加组
3)组的类型
基本组:随用户创建的组,组名同用户名
附加组:一个用户组中除了基本组以外的组
4)提权
Switching users with su //永久提权
su - root //输入此命令以后输入超管密码转换为超管模式
exit //退出超管,再输入exit退出shell
sudo 权力 //能够使用部分特权指令(输入什么即可以使用什么权限),同样需要输入超管密码