Linux Shell学习-第一讲(基础篇)


简介

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

总结

以上就是本周Linux shell常用命令的学习记录,主要记录了工作中常用到的命令(如:tail -f logs/all.log、ls -alh、cd、cat),如有错误欢迎指出。文章中未提到的命令因为不在以上模块(如 ps -ef |grep java)则没有记录,今后学到对应模块会及时更新。

猜你喜欢

转载自blog.csdn.net/weixin_44158441/article/details/108494545