简介
Linux–自由开源的类Unix的OS,作为服务类OS,具有稳定性(最突出)、强壮性、安全性、高性能等特性。Linux Shell是用户和Linux内核之间的接口程序,是一个用户程序。
一、Shell的种类?
常用种类:Bourne Shell(sh)、C shell、Korn Shell。
Bourne-Again Shell(bash)是Linux系统中最常用的Shell,C Shell(csh)更适用于编程、Korn Shell(ksh)集合csh、sh优点,支持任务控制。此外,还存在如ash、zsh的其他Shell类型。
二、Linux Shell
1.用户分类
linux将用户分为:
1、超级用户(root,uid=0):用#作提示符
2、普通用户(uid 500-60000):用$作提示符
3、伪(系统)用户:不是系统服务的真实使用者,如bin、shutdown等就是伪用户。
2.常用Shell(Bash)命令
tips:
*是通配符(查找文件时常用);
.代表当前目录;
~代表家目录:普通用户家目录是/home/username,
root用户家目录是/root;
权限分类:rwx (4-2-1);
用户组:在/etc/group 中的每条记录分四个字段,group_name:passwd:GID:user_list
2.1查看文件和目录
1、ls -alh 列出文件名和目录
-a: (all)显示全部文件, 包括隐藏文件;
-l : (list)以列表形式显示;
-h: (human readable)人性化形式显示文件大小
tips:什么是隐藏文件?
如 :
上图中包含“.”和“…”的文件
2、cat [option] [finename] -n/-b 连接显示文件内容
-n:显示行号
-b:只标识非空行行号
3、head -n/c 显示文件头部
-n:打印前n行,-cd打印前n个字节
4、tail -n/f 显示文件尾部
-n:打印最后n行,
-f:实时打印文件中新写入的行–常用于监控日志文件
5、find 查找文件或目录
可根据权限、用户、用户组、文件类型、文件名、日期、大小以及其他可能的条件进行查找。
例:
a、查找当前目录下,名为 lsab的文件:
find . -name lsab
-name:区分大小写,iname:不区分大小写
b、查找当前目录下,目录名时ljq的目录:
find . -type d -name ljq
-type:标识类型,d:是目录,f:是文件
c、 查找当前目录文件权限不是777的所有文件:
find . -type f ! -perm 777
!:表示非(否定),perm:表示权限
d、查找用户主目录下的所有可执行文件:
find ~ -type f -perm /a+x
其他参数:
// -group 用户组,-exec action 执行什么操作 ,
-mtime时间(按天计数),-size文件大小
2.2操作文件和目录
1、touch -a/c/m/r/t 创建文件
2、mkdir -p创建目录
-p:会自动创建还不存在的父目录
3、cp -p/r source dest [源,目标]复制文件或目录
-p:保留源文件的所有者、用户组、权限、修改时间等信息,
-r递归复制
4、mv oldname newname重命名文件或目录
5、rm -rf 删除文件或目录
-f:强制删除,删除前不提示用户确认
2.3管理文件和目录权限
1、chmod [option] [ugoa] [[±=][rwxug]][,…] file修改权限
u:所有者,g:用户组成员,o:不在用户组中的其他用户,a:所有用户,
+:添加权限,-:撤销权限,=:只拥有对应权限
例:
只给文件的所有者写权限
chmod u=w xxx.sh
ps:对应服务部署时,给人员修改、执行配置文件的权限
2、chown [-cfhvR] [–help] [–version] user[:group] file… 设置文件所有者和文件关联组的命令
例:
a、把 /var/run/qw.pid 的所有者设置 root:
chown root /var/run/qw.pid
拥有 root 用户的权限才能执行该命令
3、chgrp [-cfhRv][–help][–version][所属群组][文件或目录…] 或 chgrp [-cfhRv][–help][–reference=<参考文件或目录>][–version][文件或目录…] 变更文件或目录的所属群组
例:
a、说明: 将log2020.log文件由root群组改为bin群组
chgrp -v bin log2020.log