shell、shell命令、shell脚本
1、shell
作用:负责用户和内核之间的交互
shell命令、shell、shell脚本的本质区别
shell命令:用户向系统内核发出的控制请求
shell:将用户命令解析为操作系统能识别的指令,实现用户与操作系统之间的交互
shell脚本:一堆命令的集合
2、shell命令
命令 [选项] [参数]
注意:[]表示可以省略
选项:功能
参数:要操作的对象
注意:
- 一条命令的三要素之间要用空格隔开
- 若将多个命令书写在一行,用;将命令隔开
如果一条命令不能在一行写完,用反斜杠(\)表明该命令未结束
3、用户系统相关命令
3.1 用户切换命令
su - 用户名
注意:用户的工作路径以及环境变量都会发生改变
注意:
(1)工作路径及其环境变量都未发生改变
(2)一般情况下不要切换成root用户,要使用root用户在最前面添加sudo
3.2 系统管理命令
ps:显示当前系统中该用户运行的进程列表
ps -ef:查看所有进程及其(PID)进程号
ps -aux:除了-ef显示的内容外,还会显示cpu的内存占用率、进程状态
top:动态显示系统中运行的程序
kill:发送信号给指定的进程
kill -l:列出所有可用的信号名称
也可以kill -n n为数字编号
3.3 磁盘相关命令
free:查看当前系统内存的使用情况
df:查看文件系统的磁盘占用情况
du:统计目录或文件所占磁盘空间的大小
fdisk -l:列出文件系统的分区情况
注意:必须使用root权限
3.4 文件、目录相关命令
Linux下有7中文件类型:
-:普通文件
d:目录文件
b:块设备文件
c:字符设备文件
p:管道文件
l:链接文件
s:套接字文件(socket文件)
3.4.1 chmod
作用:改变文件的访问权限
-rw-rw-r-- 1 linux linux 399 12月 1 18:24 fun_p.c
注意:第一个字母:表示文件类型
rw- rw- r--
文件拥有者 用户所在组 其他人
修改文件权限的方式:
方式1:
u:文件拥有者
g:所属的用户组
o:其他人
a:所有人
+:表示增加权限
-:删除权限
=:设置权限
方法2:
注意:有权限用1表示,-表示没有权限,用0表示
rw- rw- r--
文件拥有者 用户所在组 其他人
110 110 100
6 6 4
3.4.2 chown
作用:修改文件所有者和组别
注意:必须使用root权限
修改文件所属用户:
修改文件所属组:
同时修改用户和组
3.4.3 chgrp
作用:修改文件所属组
3.4.4 grep
作用:在指定的文件中搜索特定的内容
grep 字符串 文件
-n :显示行号
3.4.5 查看文档
cat :适合看比较短的文档
more:适合看比较长的文档(按回车向下翻一行,空格向下翻一页,q退出)
less:加强版的more(回车向下翻一行,空格向下翻一页,支持上下箭头,q退出)
3.4.6 find
作用:在指定目录中搜索文件(若省略路径,默认为当前目录)
find -name 文件名
3.4.7 alias
作用:起别名(一次性的),想要永久生效的话添加到.bashrc文件中
给ls -l 起别名yyds
3.5 特殊符号
` `:当作命令来处理
|:管道(一般不单独使用),将前一个命令的输出作为后一个命令的输入
通配符:
*:匹配任意长度的字符串(任意个字符)
?:匹配一个长度的字符(任意一个字符)
[…]:匹配其中指定的一个字符
[-]:匹配指定一个字符范围
[^…]除了其中指定的字符,均可匹配
> :输出重定向,如果文件不存在则新建,如果文件存在覆盖文件中内容
>>:追加重定向,如果文件不存在则新建,如果文件存在则追加在文件的末尾
wc -c :统计有多少个字符
wc -l :统计有多少行
< file:输入重定向,将file文件重定向为输入源
2>或&> :将产生的错误信息输出到文件中
3.6 软硬连接
硬链接:利用Linux中为每个文件分配的物理编号,建立链接
创建硬链接:
软链接(符号链接):利用文件的路径名来建立链接
创建软链接:
区别:
硬链接会在用户选定的位置上生成一个和源文件大小相同的文件
软链接会在用户选定的位置上生成一个镜像文件,不会重复占用磁盘空间(平时使用最多的就是软链接)
相同点:
ln命令会保持每一处链接文件的同步性,不论改动了哪一处,其它的文件也会发生相同的变化
4、用户管理命令
相关配置文件
- /etc/passwd 系统能够识别的用户清单
- /etc/shadow 加密的用户清单
- /etc/group 组的名称和组中的成员列表
4.1 创建用户
sudo adduser 用户名
4.2 删除用户
sudo deluser --remove-home 用户名
注意:删除的时候连同用户的主目录一起删除
4.3 修改用户密码
sudo passwd 用户名
4.4 创建组
sudo groupadd 组名
4.5 修改用户所属组
sudo usermod -g 目标组 要修改的用户
4.6 删除组
sudo groupdel 组名
5、shell脚本
5.1 创建shell脚本
1、新建一个文件(后缀为.sh)
2、编辑该文件
vim 1.sh
3、运行的时候没有可执行权限,需要人为去添加
chmod 777 1.sh
4、运行
./1.sh
5.2 用户自定义变量
shell允许用户建立 变量存储类型
注意:任何赋给变量的值都被shell解释为一串字符
命名规范:
- 由数字、字母、下划线组成
- 首字母不能为数字
- shell中的变量一般用大写表示
注意:
- 要取用一个变量的值时,在变量名前加$
- 在赋值时,等号的左右两侧不能有空格
5.3 位置参数
注意:变量名很容易与文字混淆,因此使用时加上括号
5.4 预定义变量
$#:包含命令行参数的个数
$@:包含所有命令行参数
$*:包含所有命令行参数
$?:包含前一个命令的退出状态,正常退出返回0,反之为非0(shell中0为真,非0为假)
$$:包含正在执行的进程的ID号
5.5 shell程序和语句
5.5.1 说明性语句
注释:#
5.5.2 功能性语句
1.输出
echo “hello shell”
echo -n “hello shell” //不换行
2.输入
方式1:
方式2:
想要换行
输入字符串
若想实现hello shell和22111
5.5.3 算数运算
expr主要用于进行简单的整数的算术运算、+、-、\*、/、%
6、test
6.1 字符测试
s1 = s2 测试两个字符串的内容是否完全一样
s1 != s2 测试两个字符串的内容是否有差异
-z s1 测试s1字符串的长度是否为0
-n s1 测试s1字符串的长度是否不为0
注意:“[”的右边,以及”]“的左边以及等号的左右两侧必须有空格
6.2 整数测试
a -eq b 测试a与b是否相等
a -ne b 测试a与b是否不相等
a -gt b 测试a是否大于b
a -ge b 测试a是都大于等于b
a -lt b 测试a是否小于b
a -le b 测试a是否小于等于b
6.3 文件测试
-d name 测试name是否为一个目录
-f name 测试name是否为普通文件
-L name 测试name是否为链接文件
-c name 测试name是都为字符设备文件
-r name 测试name文件是否存在且为可读
-w name 测试name文件是否存在且可写
-x name 测试name文件是否存在且可执行
-s name 测试name文件是都存在且长度不为0
f1 -nt f2 测试f1是否比f2更新
f1 -ot f2 测试f1是否比f2更旧
7、选择语句
7.1 单分支语句
7.2 双分支语句
7.3 多分支语句
7.4 case语句
7.5 循环语句
for
while
break :跳出循环
注意:break n:跳出n层循环
continue:结束本次循环开始下一次循环
shell、shell命令、shell脚本相关推荐
- linux shell 变量命令,shell - 如何在Bash中将变量设置为命令的输出?
我用来从命令设置变量的一些bash技巧 第二次编辑2018-02-12:添加一种特殊的方式,请看这个底部! 2018-01-25编辑:添加示例函数(用于填充有关磁盘使用情况的变量) 第一个简单的旧和兼 ...
- linux shell tr命令,shell脚本中的tr用法
tr 用来从标准输入中通过替换或删除操作进行字符转换. tr 主要用于删除文件中控制字符或进行字符转换. 使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换. tr刚执行时,字符串 ...
- linux shell let命令,shell编程中的let与(())
let与(()) 在shell编程中是可以互换的:它们在循环语句中控制变量变化非常有用: 使用let语句或者(())我们可以像C语言那样写程序~ 对于变量赋值,判断什么的不用繁琐的$VAR, -eq等 ...
- shell 常用命令
shell 常用命令 Shell基本命令 几个基本的shell命令,用ssh管理主机必备. 1.ls 列出目录下的文件,不同类型的文件颜色不同,例如蓝色是文件夹,白色是文件 [root@restor ...
- Shell——test 命令
Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 数值测试 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt ...
- 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️
全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的集群搭建以及shell启动命令脚本编写 一.搭建 ...
- Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)...
第一种:普通做法 首先,编号写WordCount.scala程序. 然后,打成jar包,命名为WC.jar.比如,我这里,是导出到windows桌面. 其次,上传到linux的桌面,再移动到hdf ...
- 7月11日任务 shell介绍、shell结构和执行 、date命令用法、shell脚本中的变量
2019独角兽企业重金招聘Python工程师标准>>> 20.1 Shell脚本介绍 • shell是一种脚本语言 aming_linux blog.lishiming.net ...
- Linux Shell脚本入门教程系列之(八)Shell printf命令详解
本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对She ...
- linux循环处理脚本命令,后端开发必须掌握的Linux命令[Shell脚本篇]
Shell脚本相关命令 介绍 一句话说明shell脚本是个啥 shell脚本就是将多个shell指令汇集到一起去完成一个复杂的功能 类似windows下的批处理文件 一般以sh为文件后缀 语法 程序结 ...
最新文章
- sklearn MLP(多层感知机、Multi-layer Perceptron)模型使用RandomSearchCV获取最优参数及可视化
- 暴雪停止与Kespa合作 星际联赛或被迫停赛
- Android 编译系统模块 3
- 【PP生产订单】入门介绍(六)
- Python:向函数传递任意数量的实参
- 不能导入android项目备注
- 07-CoreData清除所有数据
- c语言取奇数位构成新数,2、给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中.高位...
- “约见”面试官系列之常见面试题之第六十五篇之ajax如何解析jsonp(建议收藏)
- 云数据仓库的未来趋势:计算存储分离
- python输入圆的半径公式_[图文]铁路曲线正矢的计算公式
- java vector_Java Vector lastElement()方法与示例
- 因非法扣押物资 华为向伟创力发律师函索赔数亿元
- python 运维管理架构_企业运维监控平台架构设计与实现(ganglia篇)
- Dreamweaver插入Flash参数
- 18 安装zlib报错_scalapack win安装及mingw64环境配置
- SilverLight幻灯片
- 欧冠之王!曼联3球大逆转,球王C罗再度绝杀救主!
- jquery省份城市联动选择下拉框
- 2022年考个中级会计有多难?多地财政局紧急官宣取消延考