linux命令
压缩与解压缩文件
1.tar -cvf 压缩名.tar.gz 要压缩的文件名
2.tar -xvf 压缩包名 -C 路径 //解压文件到指定文件夹
3.zip -q -r 压缩包名.zip 要压缩的文件名
4.unzip 压缩包名
用户
用户的分类
1.管理员用户:root,UID和GID均为0
UID:用户id,和身份证一样用来唯一标识用户
GID:组id
2.普通用户
由root创建,只能在home文件夹下创建,删除,修改文件。UID从1000-65535
3.系统用户
用户UID从1-999
用户的配置文件
(一)
/etc/password:存储用户信息,一行表示一个用户信息
root:x:0:0:root:/root:/bin/bash
1.用户名:2.密码:3.用户表示号UID:4.组标识号GID:5.个人资料:6.主目录:7.命令解释器
(二)
/etc/shadow:存储用户密码信息文件
agan:!!:17949:0:99999:7:::
1.用户名:2.密码:3.最近改动密码的日期:4.密码不可更改的天数:5.密码需要重新变更的天数:6.密码需要变更期限前的警告期限:7.密码过期的怒限时间:8.账号失效日期:9.保留
(三)
/etc/skel:此目录用来存放新用户需要的所有基础环境变量文件的目录
创建用户
useradd 【选项】【用户名】
选项的值:
-n:不创建以用户名为名的组
-c:创建用户时,添加个人信息
-u:用户id值,这个值唯一
-s:用户登录后使用的shell
-g:指定用户对应的组,对应的组必须在系统中存在
创建用户时会自动创建与该用户同名的组,可以用-n参数不执行此操作
修改用户信息
usermod 【选项】【用户名】
选项的值:
-l :修改用户的名称
剩余参数和创建用户一样
删除用户
userdel 【选项】【用户名】
-f :强制删除用户
-r:删除用户的用户的同时,删除用户的家目录
修改用户密码
passwd 【选项】【用户名】
选项的值
–dtdin:从标准输入读取密码字符串
echo ”123456“ | passwd --stdin u1:将用户u1的密码修改为echo
查看用户信息
id 用户名
linux用户身份切换
su 用户名称:只切换用户身份
用户组
组时具有相同特征的用户的集合
组与用户的关系:一个用户可以加入到多个组中
组的配置文件
(一)
/etc/group:存储组相关信息的文件
agan:x:500:college
1.组名:2.组密码:3.组id(GID):4.组成员
(二)
/etc/gshadow:存储组密码信息
agan:!: :
1.组名:2.组密码:3.组管理员 4.用户组成员
添加用户组命令
groupadd 【选项】【用户组】
-g gid :指定用户组的GID,GID唯一不能为负数
-f:新增一个组,强制覆盖一个已存在的组,GID,组成员不会改变
将已存在的用户加入到组中的命令
gpasswd 【选项】【用户名】【组名】
-a:添加一个用户到组
-M:添加多个用户到组,覆盖之前的组成员
-d:从组删除用户
修改组信息的命令
groupmod 【选项】【组名】
-n 修改组名:groupmod -n 新名 旧名
-g 修改GID:groupmod -g 888 组名
删除组的命令
groupdel 【组名】
给用户或组对文件赋予权限
linux系统的常见的权限为 :r(读),w(写),x(可执行)
赋予权限的命令:chmod
查看UGO权限的命令:ll
格式:chmod 【u|g|o|a】+【r|w|x】 文件名
实例:
chmod a=- 文件名 :所有人都没有权限
chmod ug=rw,o=r 文件名 //属主和属组具有读写权限,其他人只读
chmod 664 文件名 //使用数值法赋予权限
指定文件和目录只能是一个组或一个用户访问
chown 用户名 文件名或目录名 //修改文件或目录所属用户
chown :组名 文件名或目录名 //修改文件或目录的所属组
chown 用户名:组名 文件名或目录名 //修改文件或目录的所属用户和所属组
1.UGO权限
U指的是user,普通用户
G指的是group,组
O指的是other,指的是其他人
a表示所有人
2.特殊权限
t权限:别的用户拥有最高权限也不能删除我的文件,只有所属的主人可以删除我的文件,t权限仅能给目录赋予
s权限:通过修改二进制文件,更改普通用户的权限。s权限只能赋予系统内的二进制文件
让普通用户默认不能修改自己的密码:
chmod u-s /usr/bin/passwd
chmod a+t agan:对文件夹agan给所有人赋予t权限
3.ACL权限
ACL权限的作用,给多个用户或多个组赋予权限
1)设置ACL权限
setfacl -m u:用户名:权限值 文件名 :增加用户的权限
setfacl -m g:组名:权限值 文件名 :增加组的权限
setfacl -m o::- 文件名 :其他人没有权限 ,::表示特指其他人
2)查看ACL权限
ll 文件名
getfacl 文件名
3)删除ACL权限
setfacl -x u:用户名 文件名 :对该文件删除用户的ACL权限
setfacl -x g:组名 文件名 :删除组的acl权限
setfacl -b 文件名 :删除所有acl权限
setfacl -b -R 文件名 :删除该目录以及该目录下面的所有ACL权限
4)临时降级用户或组的权限
setfacl -m m::rx ftp //权限被降为rx权限
setfacl -m d:u:agan:rwx ftp //在ftp目录在新建文件时,文件的权限默认被继承下去
有关目录的命令
1.从当前目录切换到指定的目录cd
cd ~:回到当前用户的根目录
cd / :回到根目录
cd …:回到上一级目录
cd ./a:进入当前的目录下的a目录中
2.列出目录的内容及内容属性信息
ls 选项 文件或目录
选项的值:
-l //使用长格式列出文件及目录信息
-a //显示目录下所有文件,包括隐藏文件
-i //显示inode节点信息
–full-time // 以完整的时间格式输出
备注:ls -l =ll
3.创建目录
mkdir 目录名字
4.创建文件或改变已有文件的时间戳属性
touch 选项 文件名
-t //设置文件的时间属性
5.查看目录结构与所在路径
tree 选项 目录
选项的值
-d 只显示目录
-F 标记文件类型
-L level 遍历目录的最大层数,level为大于0的正整数
pwd 查看文件当前所处路径
6.删除一个或多个文件或目录rm
rm 选项 文件或目录
-r 递归删除目录及内容
-f 强制删除
-i 在删除前需要确认
强制删除文件或目录 rm -rf 文件名或目录名
7.复制文件或目录cp
cp 选项 源文件 目标文件
选项的值:
-r :复制目录下的所有层级的子目录及文件
8.移动或重命名文件mv
mv 选项 源文件 目标文件
当源文件和目标文件处于同一个目录下,mv的作用是改名字
选项的值
-f 若目标文件已存在,不会询问而直接覆盖
-i 若目标文件已存在,就会询问是否覆盖
-n 不覆盖已存在的文件
查看命令帮助信息
命令 --help
info 命令
有关文件的命令
1.查看文件内容
1)cat 选项 文件名
选项的值:
-n :从1开始对所有输出的内容按行编号,不忽略空白行
-b:忽略显示空白行,只显示有内容的行
实例
cat >text1.txt <<EOF
可以输入值,直到遇见EOF停止
cat text1 text2 text3 > new123
//合并三个文件为new123
cat /dev/null > text1.txt //清空文件的内容
2、tail date.log 输出文件末尾的内容,默认10行
tail -20 date.log 输出最后20行的内容
tail -n -20 date.log 输出文件最后面往前的20行的内容
tail -n +20 date.log 输出第20行以后所有内容
tail -f date.log 实时监控文件内容增加,默认10行。
3、head date.log 输出文件开头的内容,默认10行
head -15 date.log 输出15行之前的的内容(包括第15行)
head -n +15 date.log 输出开头到第15行的内容
head -n -15 date.log 输出开头到倒数第15行的内容
4、sed -n “开始行,结束行p” 文件名
sed -n ‘70,75p’ date.log 输出第70行到第75行的内容
sed -n '6p;260,400p; ’ 文件名 输出第6行 和 260到400行
sed -n 5p 文件名 输出第5行
过滤文件
1.grep 选项 匹配模式(也就是匹配的条件) 查找的文件名字
选项的值
-v :显示匹配的行
-n:显示匹配行及行号
-c:只统计匹配的行数
-i:不区分大小写
-E:使用扩展的egrep命令
一般与ls,cat等查询语句合起来使用
2.find 文件路径 -type 要查找文件还是目录 -name “名字”
实例 find / -type f -name “名字”
-iname:表示不区分大小写
-size:表示文件大小 ,+5M表示大于5M,5M表示等于5M,-5M表示小于5M
-mtime:表示修改时间,+5表示大于5天,5表示等于5天,-5,表示五天以内的
-usre 用户名字:按属主找
-group 组名字:按属组找
常用的文件类型
f:普通文件
l:符号连接
d:目录
c:字符设备
b:块设备
s:套接字
进程
1.ps -aux //查看所有进程
-u:显示进程的详细信息,包括CPU和内存的使用率
-a:显示终端上的所有进程,包括其他用户的进程
-x:显示没有控制终端的进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CJ0U03s9-1636966069261)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1634196321461.png)]
2.pgrep
pgrep -u root sshd //查看指定用户指定进程sshd的PID号
3.进程控制
ctrl + z #可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
fg #将后台任务切换到前台执行
bg #将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出
jobs #查看后台运行的状态,jobs -l选项可显示所有任务的PID
ps -ef | grep command 或者 ps aux | grep command #查看进程
kill -9 进程id #杀掉对应的进程,
kill -1 //列出所有支持的信号
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJgBduDa-1636966069263)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1634196945696.png)]
任务
一.atd服务
1.at命令(单一计划任务)
相关配置文件
/etc/at.allow(被允许使用计划任务的用户的配置文件)
/etc/at.deny(被拒绝使用计划任务的用户的配置文件)
当allow文件存在时,以allow文件配置为主,而当allow文件不存在时,所有不在deny的用户都可以使用计划任务,如果都不在,只能root用户使用,一个空的deny配置文件表示所有用户都可以使用
格式:at 选项 可执行文件 时间
参数:
-f :表示从指定文件中读入任务而不是从控制台输入读入,如果不加这个参数,那么就需要从控制台输入了
-v:显示任务将被执行的时间
时间格式:
now +1 minutes 表示从当前时间算的下一分钟
now +n minutes(分钟) |hours(小时)|days(天)|weeks(星期)
hh:mm(小时:时间):如果时间已经过去,那么就放在第二天执行
2.atq :列出当前的任务
3.删除计划任务
1)使用atrm命令删除任务,使用格式是atrm 任务号,任务号就是由atq查询出来的第一列的数据
2)去/var/sqool/at使用ls查看计划任务队列
然后执行rm -rf 计划任务队列号就可以删除了