Linux简单介绍(基本涵盖日常使用到的各种shell知识点)

news2024/11/18 11:31:06

在这里插入图片描述

文章目录

  • shell基础认知
    • 1. shell语言
    • 2. 脚本执行方式
    • 3. 快捷键
    • 4. 通配符
    • 5. 命令后跟的选项
    • 6. 逻辑运算 && ||
    • 7. 算术运算(equal,great,less)
    • 8. 目录或文件意义
    • 9. 规则
    • 10. vim
  • shell脚本常规内容解释
    • 1. set -ex
    • 2. set -o pipefail
    • 3. basepath = $(cd \`dirname $0\`; pwd) 打印脚本所在目录
    • 4. grep -v grep 去掉grep本身的进程行
    • 5. tail -100f haha.log | grep "error" -3
    • 6. 登录服务器:ssh root@ip
    • 7. 从远程ip拷贝到本地:scp -r root@ip:/opt/* /opt/haha/
    • 8. haha.sh restart/stop/start
  • shell常用命令
    • 1. 连接测试telnet ping curl
    • 2. netstat -nap | grep pid 根据进程查端口
    • 3. netstat -tunlp | grep port 根据端口查进程
    • 4. 查看磁盘空间情况
    • 5. 查找文件
    • 6. 抓包tcpdump(必须是root用户,且是http请求,因为https是密文,抓包没有意义)
    • 7. type ls 查看命令类型(是否为内置命令)
    • 8. echo \$PATH(\$MAIL, \$HOEM, \$PWD) 打印系统变量
    • 9. set 设置变量 unset 取消变量
    • 10. bash 进入子shell
    • 11. exit 退出程序
    • 12. export 将变量设置为环境变量,但仅本次登录有效
    • 13. env 各种环境
    • 14. locale 语系变量
    • 15. iconv -f big5 -t utf8 filename 转换编码
    • 16. cat /etc/shells 查看可使用的shell
    • 17. systemctl start haveged 启动haveged(随机数生成器)
    • 18. zip -q -r haha.zip * 将本文件夹下的所有文件和子目录一并压缩为haha.zip文件
    • 19. tar -xzvf a.tar.gz 解压
    • 20. tar -czvf abc.tar.gz a.tet b.txt c.txt 一并压缩
    • 21. awk 文本分析工具,主要用于单行数据分成数个字段来处理的场景
    • 22. sed (stream editor, 流编辑器)
    • 23. cp -r a b 将a目录下的文件和子目录copy到b目录中
    • 24. df -h 查看各个挂载点的磁盘空间使用情况
    • 25. du -h 查看目录的磁盘空间使用情况
    • 26. stat 文件/目录 显示文件/目录的inode节点保存的信息(元信息)
    • 27. df -i/h inode信息,h代表human可读性
    • 28. ldd /opt/xinliushijian/java 列出java的动态链接依赖
    • 29. nl 显示文件的同时列出行号
    • 30. nl wang.sh | sed '2,4d' 删除文件的2-5行
    • 31. hostname 主机名
    • 32. /sbin/ifconfig 网卡指令,查看ip地址,inet位置
    • 33. sed -i '$a #haha' wang.sh
    • 34. grep -E 等价于eprep,表示使用扩展正则表达式
    • 35. typeset -i a=8 设置变量为整数
    • 36. info 命令的详细介绍
    • 37. more less head tail cat tac 展示命令
    • 38. chown -R root:root haha.sh 改变文件的属主、属组归属
    • 39. chmod 700 haha.sh 改变文件权限
    • 40. chattr lsattr 文件隐藏属性
    • 41. ls -l | grep "^-" | wc -l 查看当前目录下的文件数量
    • 42. ll --block -size=m 以mb打印
    • 43 crontab -l 展示定时任务 crontab -e 编辑定时任务
    • 44. awk '{print $2}' $filename 一行一行得读取指定的文件,以空格为分隔符,打印第二个字段
    • 45. xargs kill -9 把参数杀死 9代表9号信息SIGKILL,杀死进程信号
    • 46. unask 文件默认权限
    • 47. SUID SGID SBIT

shell基础认知

1. shell语言

shell是一种脚本语言,编写完源码后不用编译,直接运行源码即可

2. 脚本执行方式

  1. ./test.sh 或者 sh test.sh ,这种执行方式都会重新打开一个子shell执行,脚本里面的变量不能立即生效,需要重新登录才可以
  2. source test.sh 这种执行方式是在原shell执行,变量会立即生效(source也可以简写为.)

3. 快捷键

Ctrl + a : 光标移动到最前面
Ctrl + e : 光标移动到最前面
Ctrl + u : 删除光标前面的命令
Ctrl + k : 删除光标后面的命令

4. 通配符

$? 最后运行命令的结束代码(返回值),0表示没有错误,其他任何值都表示有错误
$# 传给脚本的参数个数
$0 脚本本身的名字
$1 传给shell脚本的第一个参数
$2 传给shell脚本的第二个参数
$@ 传给shell脚本的所有参数列表

5. 命令后跟的选项

在这里插入图片描述
-e 存在
-d 目录
-f 文件
-L 符号链接
-r -w -x 可读可写可执行
-s 文件长度不为零
->, -h 软连接,相当于快捷方式

6. 逻辑运算 && ||

7. 算术运算(equal,great,less)

-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-lt 小于等于

8. 目录或文件意义

/etc/passwd 各个用户用的shell
~/.bash_history 登录用户命令历史
~/.bashrc bash的配置文件,可以在这里设置工作目录和命令别名,仅对当前登录用户有效
/etc/profile 变量永久有效

9. 规则

  1. 显示变量a: echo $a 或 echo ${a}
  2. echo `echo KaTeX parse error: Expected group as argument to '\`' at position 7: MAIL\` ̲反单引号用来包含命令,也可以使…()
  3. “” 双引号内的变量保持原有特性,而’'单引号内的变量仅是纯文本

10. vim

  1. vim分为三种模式:一般模式,编辑模式,命令行模式;
    一般模式键入a、i、o可以进入编辑模式,按Esc回到一般模式;
    一般模式键入:可以进入命令行模式,按Esc回到一般模式;
    编辑模式和命令行模式不互通。
  2. 一般操作:
    vim haha.sh 或者vi haha.sh
    按i进入编辑模式编辑文件,按Esc进入一般模式,
    按:进入命令行模式键入wq保存文件内容并退出vim。
  3. 命令
    ! 强制
    w 写入
    :set nu 设置行号
    / 搜索文本内容

shell脚本常规内容解释

1. set -ex

-e 脚本中的命令一旦运行失败就终止脚本的执行
-x 用于显示命令及其执行结果

2. set -o pipefail

设置这个选项之后,包含管道命令的语句的返回值,会变成最后一个返回非零的管道命令的返回值,
即返回语句中最后一个非零返回值(错误值)

3. basepath = $(cd `dirname $0`; pwd) 打印脚本所在目录

dirname 若后面跟文件则显示文件所在目录,后面跟目录则显示父目录
$0 文件名

4. grep -v grep 去掉grep本身的进程行

5. tail -100f haha.log | grep “error” -3

-3 表示上下各多两行

6. 登录服务器:ssh root@ip

7. 从远程ip拷贝到本地:scp -r root@ip:/opt/* /opt/haha/

-r 表示递归拷贝,也就是子目录下的内容也会copy

8. haha.sh restart/stop/start

shell常用命令

1. 连接测试telnet ping curl

telnet ip port  查看程序是否启动正常
ping ip 通则有公网权限
curl 127.0.0.1:8080/ShowMonitor 查看slb中各节点的状态
curl --request GET 'http://10.38.239.252:8888/hehe/index.html'
curl -k https://ip:port/ 发送请求(-k是https请求要求的选项)

2. netstat -nap | grep pid 根据进程查端口

3. netstat -tunlp | grep port 根据端口查进程

4. 查看磁盘空间情况

du -h --max-depth=10 /opt/xinliushijian/ awk '{if($1 ~ /M1){split($1,arr,"M")};if(($1~/G/) || ($1 ~ /M/ && arr[1] > 200)){printf "%-10s %s\n", $1, $2}}' | sort -n -r
find / -size +500M -exec du -h {} \;

5. 查找文件

find /home/xinliushijian/logs/ -type f -iname "*haha*"
# 一周以外的都会删除,rm前不能使用管道符,{}存放find的参数,exec要以";"结尾,\是转义
find /home/xinliushijian/logs/ -type f -mtime +7 -exec rm -f {} \;

6. 抓包tcpdump(必须是root用户,且是http请求,因为https是密文,抓包没有意义)

yum install tcpdump
tcpdump -i any port 8282 -S0 -w aaa.cap 
strings aaa.cap > aaa.txt

7. type ls 查看命令类型(是否为内置命令)

8. echo $PATH($MAIL, $HOEM, $PWD) 打印系统变量

9. set 设置变量 unset 取消变量

10. bash 进入子shell

11. exit 退出程序

12. export 将变量设置为环境变量,但仅本次登录有效

13. env 各种环境

14. locale 语系变量

15. iconv -f big5 -t utf8 filename 转换编码

16. cat /etc/shells 查看可使用的shell

17. systemctl start haveged 启动haveged(随机数生成器)

systemctl status haveged 查看服务状态
systemctl list-unit-files 列出所有服务

18. zip -q -r haha.zip * 将本文件夹下的所有文件和子目录一并压缩为haha.zip文件

-q (quiet) 不显示执行过程
-r 递归文件、子目录一并处理

19. tar -xzvf a.tar.gz 解压

20. tar -czvf abc.tar.gz a.tet b.txt c.txt 一并压缩

21. awk 文本分析工具,主要用于单行数据分成数个字段来处理的场景

22. sed (stream editor, 流编辑器)

默认对源文件不会改变(当然也可以改变)仅对模式空间中的数据做处理,常对文件以行为单位进行处理

23. cp -r a b 将a目录下的文件和子目录copy到b目录中

24. df -h 查看各个挂载点的磁盘空间使用情况

25. du -h 查看目录的磁盘空间使用情况

26. stat 文件/目录 显示文件/目录的inode节点保存的信息(元信息)

27. df -i/h inode信息,h代表human可读性

28. ldd /opt/xinliushijian/java 列出java的动态链接依赖

29. nl 显示文件的同时列出行号

30. nl wang.sh | sed ‘2,4d’ 删除文件的2-5行

31. hostname 主机名

32. /sbin/ifconfig 网卡指令,查看ip地址,inet位置

33. sed -i ‘$a #haha’ wang.sh

直接修改文件内容,在最后一行加上#haha,如果不加-i,则只是在屏幕输出,而不会改变文件内容

34. grep -E 等价于eprep,表示使用扩展正则表达式

35. typeset -i a=8 设置变量为整数

36. info 命令的详细介绍

37. more less head tail cat tac 展示命令

38. chown -R root:root haha.sh 改变文件的属主、属组归属

39. chmod 700 haha.sh 改变文件权限

40. chattr lsattr 文件隐藏属性

chattr +i 作用于目录,目录下的文件不能新增、删除文件,只能修改文件(内容可以修改),作用于文件,文件内容不能删除、新增和修改
chattr +a 作用于目录,目录下的文件不能删除、修改文件,只能新增文件,作用于文件,文件内容不能删除、修改,只能新增
chattr -i -a 减去权限
mv用于移动或重命名文件,rename也可以重命名,touch 用于创建文件,vi 也可以生成不存在的文件,chmod是修改属主、数组、其他人员对文件的权限,而chattr更加底层地控制文件的增删改属性。

41. ls -l | grep “^-” | wc -l 查看当前目录下的文件数量

42. ll --block -size=m 以mb打印

43 crontab -l 展示定时任务 crontab -e 编辑定时任务

0 0 6 * * ?* 每天6点执行 (秒 分 时 日 月 周 年)
*/1 * * * * source ~/.profile && /opt/xinliushijian/haha.sh > /dev/null 2>&1

44. awk ‘{print $2}’ $filename 一行一行得读取指定的文件,以空格为分隔符,打印第二个字段

45. xargs kill -9 把参数杀死 9代表9号信息SIGKILL,杀死进程信号

46. unask 文件默认权限

默认权限 = 7777 - umask

47. SUID SGID SBIT

chmod 4744 filename 是不是对第一个4感到奇怪
rwsr-xr-x 是不是对s感到奇怪
其实它们指得就是SUID=4 SGID=2 SBIT=1

  • SUID
    • 仅对二进制程序有效
    • 执行者对该程序具有x的可执行权限
    • 该权限只发生在执行过程中
    • 执行者拥有属主owner的权限
  • SGID
    • 仅对二进制程序有效
    • 执行者对该程序具有x的可执行权限
    • 执行者拥有属组的权限
  • SBIT
    • 仅对目录有效
    • 执行者对目录有wx的权限
    • 在该目录下新增的文件和目录,只有自己和root可以删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/371765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Google Brain新提出的优化器“Lion”,效果要比Adam(W)更好

Google Brain新提出的优化器“Lion”,效果要比Adam(W)更好 论文地址:https://arxiv.org/abs/2302.06675代码地址:https://github.com/google/automl/blob/master/lion/lion_pytorch.py 1 简单、内存高效、运行速度更快 与 AdamW 和各种自适…

量子计算对网络安全的影响

量子计算的快速发展,例如 IBM 的 Quantum Condor 处理器具有 1000 个量子比特的容量,促使专家们宣称第四次工业革命即将实现“量子飞跃”。 量子计算机的指数处理能力已经受到政府和企业的欢迎。 由于从学术和物理原理到商业可用解决方案的不断转变&am…

Spark Explain:查看执行计划

Spark SQL explain 方法有 simple、extended、codegen、cost、formatted 参数,具体如下 目录一、基本语法二、执行计划处理流程三、具体案例一、基本语法 从 3.0 开始,explain 方法有一个新的 mode 参数,指定执行计划展示格式 只展示物理执…

都2023年了,竟然还有人问网络安全怎么入门?

工作一直忙碌,偶然翻了一下知乎,都2022年了,相关网课这么多了,还有人不知道怎么学习网络安全,不了解也就算了,竟然还有一批神仙也真敢回答,对这个行业了解各一知半解就当做这些萌新的启蒙老师了…

UDP与TCP协议

目录 UDP协议 协议报头 UDP协议特点: 应用场景: TCP TCP协议报头 确认应答机制 理解可靠性 超时重传机制 连接管理机制 三次握手: 四次挥手: 滑动窗口 如何理解缓冲区和滑动窗口? 倘若出现丢包&#xf…

05 DC-AC逆变器(DCAC Converter / Inverter)简介

文章目录0、概述逆变原理方波变换阶梯波变换斩控调制方式逆变器分类逆变器波形指标1、方波变换器A 单相单相全桥对称单脉冲调制移相单脉冲调制单相半桥2、方波变换器B 三相180度导通120度导通(线、相的关系与180度相反)3、阶梯波逆变器独立直流源二极管钳…

Esxi NAT网络搭建

前言 本文主要讲述如何在Esxi上只有一个公网IP情况下,实现内部虚拟机上网,以及外部对内部服务的访问,以及外网通过vpn访问内网; 环境 Esxi 6.7iKuai8 3.6.13OpenVPN 2.6一、创建虚拟路由 1.1 目的 虚拟路由,也就是常说的软路由;只有一个外网IP情况下,其他虚拟机需要上…

LeetCode刷题系列 -- 429. N 叉树的层序遍历

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。示例 1:输入:root [1,null,3,2…

【每日阅读】JS知识(三)

var声明提升 js是一个解释性语言类型,预解析就是在执行代码之前对代码进行通读 var关键字是,在内存中声明一个变量名 js在代码执行之前 会经历两个环节 解释代码 和执行代码 声明式函数 内存中 先声明一个变量名是函数 这个名代表的是函数 乘法表 // for…

IP、ICMP、TCP和UDP校验和计算

一. 前言 计算网络数据包的校验和是机器自动完成,不需要手动计算。但是正因为如此,我们往往不会去深究校验和到底是怎么计算的,留下这一块盲区。虽然书上有大致介绍计算的方法,但是,“纸上得来终觉浅,绝知此…

二叉树——验证二叉搜索树

验证二叉搜索树 链接 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 …

【Proteus仿真】【51单片机】粮仓温湿度控制系统设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用声光报警模块、LCD1602显示模块、DHT11温湿度模块、继电器模块、加热加湿除湿风扇等。 主要功能: 系统运行后,LCD1602显示传…

LeetCode 144. 二叉树的前序遍历

144. 二叉树的前序遍历 难度:easy\color{Green}{easy}easy 题目描述 给你二叉树的根节点 rootrootroot ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入&#…

Web前端学习:三 - 练习

三六&#xff1a;风筝效果 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style type"text/css">*{margin: 0;padding: 0;}.d1{width: 200px;height: 200px;background: yellow;position…

链表的排序:插入排序和归并排序

文章目录链表的排序&#xff1a;插入排序和归并排序147. 对链表进行插入排序148. 排序链表链表的排序&#xff1a;插入排序和归并排序 两道例题进行记录。 147. 对链表进行插入排序 题目链接&#xff1a;https://leetcode.cn/problems/insertion-sort-list/ 题目大意&#x…

计算机网络笔记 | 第一章:计算机网络概述(1.1-1.4小节知识点整理)

从专栏将讲述有关于计算机网络相关知识点&#xff0c;如果有想学习Java的小伙伴可以点击下方连接查看专栏&#xff0c;还有JavaEE部分 本专栏地址&#xff08;持续更新中&#xff09;&#xff1a;&#x1f525;计算机网络 MyBatis&#xff1a;✍️MyBatis Java入门篇&#xff1…

nginx安装部署实战手册

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、虚拟机安装nginx1.下载安装包2.安装编译工具和库文件3.编译安装4.启动nginx5.访问首页6.开机自启结尾一、虚拟机安装nginx 1.下载安装包 官网下载地址&#xf…

zabbix4.0-自定义脚本告警

目录 1、在zabbix-server端下载mailx 2、配置mailx配置文件 3、查看zabbix-server设置的 AlertScriptsPath变量 4、在对应路径下面编写邮件脚本 5、创建一个媒介类型 6、为用户指定媒介类型 7、更改触发器表达式进行测试 1、在zabbix-server端下载mailx [rootzabbix-serve…

FastASR+FFmpeg(音视频开发+语音识别)

想要更好的做一件事情&#xff0c;不仅仅需要知道如何使用&#xff0c;还应该知道一些基础的概念。 一、音视频处理基本梳理 1.多媒体文件的理解 1.1 结构分析 多媒体文件本质上可以理解为一个容器 容器里有很多流 每种流是由不同编码器编码的 在众多包中包含着多个帧(帧在音视…

投票链接制作可以制作投票的软件不记名投票模板视频投票平台

手机互联网给所有人都带来不同程度的便利&#xff0c;而微信已经成为国民的系统级别的应用。现在很多人都会在微信群或朋友圈里转发投票&#xff0c;对于运营及推广来说找一个合适的投票小程序能够提高工作效率&#xff0c;提高活动的影响力。那么微信做投票的小程序哪个比较好…