Linux Shell拾遗1

2023-10-29

1、echo添加 -e使用转义,env命令查看环境变量。

2、变量赋值不要加空格,加$打印变量内容,export声明全局环境变量,export PATH=$PATH:/xxx/yyy新增环境变量,众所周知的环境变量HOME、PWD、USER、UID、SHELL。

3、识别当前shell,echo $SHELL或echo $0。root用户的UID为0。

4、$?上一个命令的执行结果,标准输入0 标准输出1 标准出错2,打印出来同时重定向到文本用tee,tee把输出的一个副本送到标准输出,另一个副本拷贝到相应文件。以EOF结尾输入文件   cat << EOF > log.txt

5、可以使用数组,alias创建别名

6、获取终端信息 tput cols,tput lines,tput longname,获取时间 date ,date + %s

7、调试脚本 bash -x yy.sh,set + x

8、支持函数  IFS  if then else  fi   条件判断[ x -eq y ],gt lt ge le,文件系统相关测试: -f x d e c ....

9、注释是#号,单引号和双引号中的#不解释为注释开始。分号可用来分割多个命令,.命令等价于source命令。

10、:和true相同,> test.sh和 cat /dev/null > test.sh  作用一样,都是清空文件。/dev/null为比特池无底洞。

11、$变量替换

12、touch创建文件,chmod ugoa +- rwx,  chmod  -r /*  更改子目录权限。目录权限会覆盖目录内文件权限。目录的rwx代表可列出文件、可创建文件和可搜索访问文件。

13、suid,guid,运行时有权限,运行完后回归普通用户,s位占据x位。chown owner file改变属主,chgrp改变属组。id命令查询自己所属用户组。

14、umask,创建文件的缺省模式,目录最大可设为7,文件最大为6,umask是拿走权限,022对文件的默认权限是644,对目录的默认权限是755.

15、符号链接ln [-s] source_path target_path

16、find pathname -options [-print -exec -ok]              -name,-perm,-user,-mtime,-type,-prune忽略某个目录

xargs和find结合,xargs后面是命令

17、定时任务,cron、at、&

command > out.file 2>&1 

18、*匹配任何字符串   ?单个字符  [ ]范围    -

19、read variable,读取输入

20、command  > filename重定向到文件,command filename 2>&1标准输出和标准出错重定向到一个文件,command < filename,以文件作为输入,command << delimiter从标准输入中读入直到遇到分界符。

21、连接两个命令:&& ||,在一个shell中执行一组命令 (command1;command2;...),在子shell中执行一组命令 {command1;command2;...}。

22、正则表达式基本元字符集: ^  $  *   []   \  .   pattern\{n\}  pattern\{n,\}  pattern \{n,m\}  扩展字符集:? + () |

bash本身不支持正则表达式,使用正则表达式的是shell命令和工具如grep、sed和awk

23、grep [选项] 基本正则表达式  文件

-c 输出匹配行    -i  不区分大小写    -n 显示匹配行及行号  -v 显示不包含匹配的所有行  -E 使用扩展 包括|

24、sort -cmu -o -t: output_file  input_file

unique   join ct   paste split

25、变量赋值  =,+(覆盖) unset 清除变量值,位置变量$n

26、用户角色通过UID唯一识别,linux用户分为root用户、虚拟用户(daemon、ftp)、普通真实用户

27、cp -r 实现目录复制, mv src dst,若dst为文件时,将把源文件或目录重命名。mkdir -m 设置权限,-p 设置路径 

cd - 返回上次访问目录。

28、vi编辑器,/word向下查找,?word向是哪个查找

29、sed,流编辑器,从一个文本行或标准输入中读取数据复制到缓冲区然后读取命令进行编辑,只是对缓冲区原始文件副本进行编辑,并不编辑原始文件。

sed  [选项]   'sed命令'    输入文件

-n 不打印所有行到标准输出   -e 将下一个字符串解析为sed命令(多个编辑命令时用,与分号作用等同) , -f 调用sed脚本文件

sed命令由定位文本行和编辑行命令两部分组成,定位文本行有两种方法:使用行号和使用正则表达式。

x   x,y       /pattern/         /pattern/pattern/            /pattern/,x  x,/pattern/  x,y!

编辑命令:

p 打印匹配行   = 打印文件行号   a\行后追加信息     i\行前插入信息    d 删除    c \用新文本替换定位文本

{在定位文本行执行的命令组}

替换文本: [address] s /旧字符串/新字符串/[选项 n g p w文件名]    如果界定符有\,用!做界定符 。新字符串中&保存被替换的字符串。

序列变换:  sed  'y/被变序列/变换序列/'  输入文件

30、awk [-F 域分隔符] 'awk程序段' 输入文件

程序段由BEGIN   处理   END组成。awk语句由模式和动作组成。模式用于测试输入行是否需要执行动作的规则。awk认为输入文件是结构化的,记录、域、分隔符。域操作符$,$0所有的域,$1第1个域,匹配正则表达式符号~。

awk有if/else条件语句,关系运算符,逻辑运算符,算术运算符

awk使用printf控制输出格式,printf{格式控制符,参数}

awk提供内置字符串函数,实现文本替换、查找及分割功能。可以向awk脚本传递参数,awk条件语句、循环语句、数组与C完全一样,无需定义数组类型和大小,直接赋值后使用。

31、tar -x 解压缩文件 -z  gzip工具创建安    -r 为包添加新内容   -t 列出包文件

32、字符串变量有一个默认的整型值0,declare 用于定义和限制变量的属性。

33、$#  传递到脚本的参数数量

$*和$@ 传递到脚本的所有参数,在双引号中有差异

$$ 脚本运行的进程号

$? 命令的退出状态

34、单引号  引用所有字符(使用原意)

双引号  引用除$'\之外的所有字符

反引号   解释为系统命令

35、命令替换:反引号和$(),后者可以嵌套。

36、测试 [ expression ],  -d -f -L -r -s -w-u-x,使用逻辑操作符 -a -o !,字符串测试 = != -z -n,测试数值  -eq  -ne -gt -lt ,expr一般用于整数值。

37、if then else fi            case 值 in 模式1) ...;        ;  ease  模式可为变量或常量,变量部分可用模式匹配

for 变量名 in 列表             do ...done     列表可以是枚举、ls结果,省去in表示$@、$*中取值。

until  do ...done    while  do ...done    break  n跳出n层循环        continue

38、函数定义   [function]  函数名 {}       return               函数内用_xxx变量接收传进来的参数$n,shift解除传递9个参数的限制,将参数位置偏移,shift n偏移n。第10个以后的参数还可以通过${n}获得。

getops option_string variable

39、type查看內建命令   who -r查看运行级别

basedname  从路径中分离文件名

40、cat、pg、head、tail、more

41、kill -9 pro_id,wall广播命令

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux Shell拾遗1 的相关文章

  • 关于微信小程序获取头像和昵称

    不知道为什么微信一直对开发者获取 微信头像 微信昵称 一直抱以限制态度 关于接口调用方法 也是一直在修改 open type getUserInfo 在2021年4月13日停用 wx getUserInfo 在2021年4月28日停用 wx
  • 矢量网络分析仪(矢网)组成和原理简介

    一 概述 矢量网络分析仪是一种常见的射频测量仪器 主要用来测量高频器件 电路及系统的性能参数 如线性参数 非线性参数 变频参数等 1 1 分类 矢量网络分析仪一般以频率来划分 截止频率越高 价格也越贵 根据测试端口的数量可分为 双端口 3
  • oracle重新编译package,这个package为什么编译不了?该怎么解决

    SQL codecreate or replace package pack sunyard test is type refcur is ref cursor 函数名称 func sunyard test 作者 sunyard zheng
  • 阶段性学习总结

    前 言 从开学到现在 时间已过去两个月之久 这段时间 一直断断续续做js学习研究 有时候浪费了不少时间 还疑惑不断 下面就这段时间学习状况 以及相关的生活习惯做关联总结 javascripty以下简称 javascript 总体 在总结之前
  • 后台登陆万能密码总结

    1 Asp Aspx万能密码 or or or 1 1 or 1 1 or a a or a a or a a or a a or 1 1 a or 1 1 or a a or 1 or 1 1 1 1 or 1 1 or 1 1 OR 1
  • MPI并行编程——多进程程序设计

    MPI Massage Passing Interface 它不是一种语言 而是一种库描述 是消息传递函数库的标准规范 MPI标准定义了一组具有可移植性的编程接口 在Fortran和C C 中可以直接对相应的函数进行调用 MPI有很多种实现
  • 基于python的在线考试系统的设计与实现

    源码获取 点击下载 基于python的在线考试系统的设计与实现 本系统实现了在线考试网的主要功能 以无纸化的管理不但可以提高工作效率 减少监考人员数量 增强公平性等 而且可以实现学校或企业的低成本投入 高效率办公的宗旨 在线考试网 它包括有
  • Windows日志浅析

    从这篇文章开始本人开始结合Windows产品日志分析大神 RANDY FRANKLINSMITH 的电子书 以及自己的实验对Windows操作系统的日志开始分析 也是对自己的一种激励 至少希望自己能坚持下去这个分析 并且希望自己可以通过这个
  • 网易月薪25K的Linux运维面试真题曝光,值得一试!

    首先我们来看下网易Linux运维工程师招聘岗位要求 岗位定义 高级系统工程师 应用运维 岗位薪资 15K 25K 职位描述 1 负责公司运维体系的建设 组织在线移动APP和业务系统以及自建私有云的监控 维护 推进自动化运维 2 建立和完善公

随机推荐

  • Flink CDC 详解

    目录 一 CDC 简介 二 Flink CDC 案例实操 三 Flink CDC 2 0 四 核心原理分析 一 CDC 简介 什么是 CDC CDC 是 Change Data Capture 变更数据获取 的简称 核心思想是 监测并捕获数
  • 埋点是什么?有什么作用?前端如何埋点?

    一 什么是埋点 埋点 tracking 是指在应用程序中插入代码或工具来记录某些事件的行为和属性 例如用户在应用中的点击 浏览 购买 注册等操作行为 这些数据可以被用来分析用户行为 优化产品功能 改进用户体验等 通过埋点 开发人员可以采集用
  • SQL类型操作集合

    字符串使用汇总 将字符串中从某个字符开始截取一段字符 然后将另外一个字符串插入此处 select stuff hello world 4 4 返回值hel orld 返回从指定位置开始指定长度的字符串 select substring He
  • IP协议详解之IPv6头部结构简介

    IPv6协议是网络层技术发展的必然趋势 因为它不仅解决了IPv4地址不够用的情况 还做了很大的改进 比如 增加了多播和流的功能 为网络上多媒体内容的质量提供精细的控制 引入自动配置功能 使得局域网管理更加方便 增加了专门的网络安全功能 IP
  • 计算机网络----数据封装过程,TCP/IP 模型与OSI模型的比较,IP包头格式

    数据封装过程 应用层 上层数据 传输层 数据段segement TCP头部 上层数据 网络层 数据包package IP头部 TCP头部 上层数据 数据链路层 数据帧frame MAC头部 IP头部 TCP头部 上层数据 物理层 比特流bi
  • Python 21.opencv 霍夫直线变换

    import cv2 import numpy as np img cv2 imread lane jpg img cv2 imread pic2 PNG gray cv2 cvtColor img cv2 COLOR BGR2GRAY e
  • 一位博士的返乡笔记,深刻入骨!

    王磊光 正和岛 2023 01 24 17 15 发表于甘肃 这是一位博士 春节回家的观察和总结 从乡村到城市 是一个长久被书写的主题 其中的个人体验 其实就是城镇化历史的一部分 本文发表于2015年春节 当时人民网也转发了此文 距今已8年
  • LeetCode-1305. All Elements in Two Binary Search Trees

    Given two binary search trees root1 and root2 Return a list containing all the integers from both trees sorted in ascend
  • PyTorch no longer supports this GPU because it is too old.

    今天在linux系统 gtx 960显卡 cuda 9 1版本上用pytorch操作显卡 报出了如下warning PyTorch no longer supports this GPU because it is too old 且程序出
  • 【转】Qt多线程操作界面---在QThread更新QProgressBar

    include
  • 多目标粒子群算法论文【matlab代码】

    一 算法思路 多目标优化问题存在于生活当中的方方面面 在机器学习中的数据预处理特征选择阶段 所选取的特征子集大小与降低其分类错误率就是两个冲突的目标 要在尽量选取较少特征子集的同时降低分类的错误率 许多学者尝试利用基于变异 拥挤和支配策略的
  • 观察者模式与发布-订阅模式

    相关设计模式 设计模式 design pattern 是针对软件设计中普遍存在的各种问题所提出的解决方案 观察者模式 发布 订阅模式 观察者模式 观察者模式 Observer pattern 指的是在对象间定义一个一对多 被观察者与多个观察
  • Linux RS232/485/GPS 驱动实验

    一 Linux 下 UART 驱动框架 本实验驱动厂商已写好 只需看原理图改设备树就行 1 uart driver 注册与注销 uart driver 结构体表示 UART 驱动 uart driver 定义在 include linux
  • QT学习笔记(一)之本地播放器

    先从百度百科上摘取一段QT定义 Qt是 一个1991年由奇趣科技开发的跨平台 C 图形用户界面 应用程序开发框架 它既可以开发 GUI 程序 也可用于开发非GUI程序 比如控制台工具和服务器 Qt是面向对象的框架 使用特殊的代码生成扩展 称
  • unity基础开发----在Unity3D里面实现自动开门和关门

    当角色或者摄像机靠近门的时候 门自动打开 离开门自动关上 步骤一 制作铰链和门 首先在你的场景中建立一个立方体 然后缩小放到门的左面 命名为 Door Hinge 再建立一个立方体 命名为 Door 现在 在你的 Hierarchy 中就能
  • TVP走进泸州老窖:数字化时代下,共话加速转型之道

    引言 数字化技术的发展 为传统行业转型提供了重要契机 与早先的基础数字化不同 随着数字化转型在各行业逐渐迈入深水区 如何将数字技术与应用有机融入传统行业 推动企业实现高质量发展 实现数字技术与企业体系的深度融合 已成为各行业转型的关键所在
  • abp流程引擎

    参考大神的博客 https www cnblogs com spritekuang asp net core Identity Server权限替代方案 https www keycloak org documentation
  • UDP 协议头部格式

    以下定义是在kernel4 14中 1 结构 struct udphdr be16 source be16 dest be16 len sum16 check 2 含义 source 16位源端口 这个字段占据 UDP 报文头的前 16 位
  • mysql卸载后重装失败_mysql卸载后重装,php无法调用。

    2011 11 26 回答 最近mysql要卸载后重装 但是到最后一步后启动服务一直不行 总的来说 卸载重装出现问题有3个原因 1 services msc 里已经有同名的服务 2 mysql 的my ini 配置与安装时的设置有出入 多次
  • Linux Shell拾遗1

    1 echo添加 e使用转义 env命令查看环境变量 2 变量赋值不要加空格 加 打印变量内容 export声明全局环境变量 export PATH PATH xxx yyy新增环境变量 众所周知的环境变量HOME PWD USER UID