1、shell

作用:负责用户和内核之间的交互

shell命令、shell、shell脚本的本质区别

shell命令:用户向系统内核发出的控制请求

shell:将用户命令解析为操作系统能识别的指令,实现用户与操作系统之间的交互

shell脚本:一堆命令的集合

2、shell命令

命令 [选项] [参数]

注意:[]表示可以省略

选项:功能

参数:要操作的对象

注意:

  1. 一条命令的三要素之间要用空格隔开
  2. 若将多个命令书写在一行,用;将命令隔开
  3. 如果一条命令不能在一行写完,用反斜杠(\)表明该命令未结束

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、用户管理命令

相关配置文件

  1. /etc/passwd 系统能够识别的用户清单
  2. /etc/shadow 加密的用户清单
  3. /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解释为一串字符

命名规范:

  1. 由数字、字母、下划线组成
  2. 首字母不能为数字
  3. shell中的变量一般用大写表示

注意:

  1. 要取用一个变量的值时,在变量名前加$
  2. 在赋值时,等号的左右两侧不能有空格

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脚本相关推荐

  1. linux shell 变量命令,shell - 如何在Bash中将变量设置为命令的输出?

    我用来从命令设置变量的一些bash技巧 第二次编辑2018-02-12:添加一种特殊的方式,请看这个底部! 2018-01-25编辑:添加示例函数(用于填充有关磁盘使用情况的变量) 第一个简单的旧和兼 ...

  2. linux shell tr命令,shell脚本中的tr用法

    tr 用来从标准输入中通过替换或删除操作进行字符转换. tr 主要用于删除文件中控制字符或进行字符转换. 使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换. tr刚执行时,字符串 ...

  3. linux shell let命令,shell编程中的let与(())

    let与(()) 在shell编程中是可以互换的:它们在循环语句中控制变量变化非常有用: 使用let语句或者(())我们可以像C语言那样写程序~ 对于变量赋值,判断什么的不用繁琐的$VAR, -eq等 ...

  4. shell 常用命令

    shell 常用命令 Shell基本命令 几个基本的shell命令,用ssh管理主机必备. 1.ls  列出目录下的文件,不同类型的文件颜色不同,例如蓝色是文件夹,白色是文件 [root@restor ...

  5. Shell——test 命令

    Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 数值测试 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt ...

  6. 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的集群搭建以及shell启动命令脚本编写 一.搭建 ...

  7. Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)...

    第一种:普通做法 首先,编号写WordCount.scala程序.  然后,打成jar包,命名为WC.jar.比如,我这里,是导出到windows桌面.  其次,上传到linux的桌面,再移动到hdf ...

  8. 7月11日任务 shell介绍、shell结构和执行 、date命令用法、shell脚本中的变量

    2019独角兽企业重金招聘Python工程师标准>>> 20.1 Shell脚本介绍 • shell是一种脚本语言  aming_linux  blog.lishiming.net ...

  9. Linux Shell脚本入门教程系列之(八)Shell printf命令详解

    本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对She ...

  10. linux循环处理脚本命令,后端开发必须掌握的Linux命令[Shell脚本篇]

    Shell脚本相关命令 介绍 一句话说明shell脚本是个啥 shell脚本就是将多个shell指令汇集到一起去完成一个复杂的功能 类似windows下的批处理文件 一般以sh为文件后缀 语法 程序结 ...

最新文章

  1. sklearn MLP(多层感知机、Multi-layer Perceptron)模型使用RandomSearchCV获取最优参数及可视化
  2. 暴雪停止与Kespa合作 星际联赛或被迫停赛
  3. Android 编译系统模块 3
  4. 【PP生产订单】入门介绍(六)
  5. Python:向函数传递任意数量的实参
  6. 不能导入android项目备注
  7. 07-CoreData清除所有数据
  8. c语言取奇数位构成新数,2、给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中.高位...
  9. “约见”面试官系列之常见面试题之第六十五篇之ajax如何解析jsonp(建议收藏)
  10. 云数据仓库的未来趋势:计算存储分离
  11. python输入圆的半径公式_[图文]铁路曲线正矢的计算公式
  12. java vector_Java Vector lastElement()方法与示例
  13. 因非法扣押物资 华为向伟创力发律师函索赔数亿元
  14. python 运维管理架构_企业运维监控平台架构设计与实现(ganglia篇)
  15. Dreamweaver插入Flash参数
  16. 18 安装zlib报错_scalapack win安装及mingw64环境配置
  17. SilverLight幻灯片
  18. 欧冠之王!曼联3球大逆转,球王C罗再度绝杀救主!
  19. jquery省份城市联动选择下拉框
  20. 2022年考个中级会计有多难?多地财政局紧急官宣取消延考

热门文章

  1. 比较实用的几种端口入侵
  2. php memcache 数组,PHP Memcache
  3. 【注意】加密与解密工具新年大礼包2007光盘提供下载
  4. coco数据集大小分类_COCO数据集的标注格式
  5. 网站推荐及个性化桌面软件推荐
  6. 容器技术之容器引擎与江湖门派
  7. 2-STM32+ESP8266连接onenet并上传数据(HTTP)
  8. 信管/资管/博易大师软件源码+通达信配资/外汇模拟
  9. 【MQTT基础篇(二)】MQTT基础
  10. UG NX 12 NX 创意塑形