博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell命令
阅读量:3638 次
发布时间:2019-05-21

本文共 2220 字,大约阅读时间需要 7 分钟。

shell命令

shell的定义:

在计算机科学中,Shell就是一个命令解释器。一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具。

脚本 是可执行命令的组合

shell 的分类

基本上shell分两大类:图形界面shell和命令行shell 

图形界面shell:图形界面shell就是我们常说的桌面  
命令行式shell
windows系统: cmd.exe 命令提示字符
linux系统: sh / csh / ksh / bash / …
我们常说的shell是命令行式的shell,在工作中常用的是linux系统下的bash。

查看当前系统的shell类型

echo $SHELL

查看当前系统环境支持的shell

[root@linux-node1 ~]# cat /etc/shells

shell 的注释

单行注释:

    除了首行的#不是注释外,其他所有行内容,只要首个字符是#,那么就表示该行是注释

多行注释:

    多行注释有两种方法::<<! … ! 和 :<<字符 … 字符(重定向到什么也不干 :表示什么也不干)

常见命令详解:

grep : (搜索)
grep -rn bash
(递归当前目录(.)(包含bash 的行)) *当日志中有错误可以用这个命令显示错误在哪个文件中

find:(文件搜索工具)

find  . -name "*hello*`

搜索文件名大概是 xxx 的文件

sed:(基于行的文件编辑工具)

sed "s#sed#SED#" sed.txt

将sed.txt 文件中每一行第一个小写的sed 替换为大写的sed 输出预览,原文件没有被修改

sed -i "s#sed#SED#" sed.txt

将sed.txt 文件中每一行第一个小写的sed 替换为大写的sed 输出预览,原文件被修改

sed "2s#sed#SED#g" sed.txt

(*2(第二行,不是所有行 ) s (替换) #sed(原内容)#SED(替换后的内容)g(所有列)))

sed -i  "3a\hello" sed.txt

(*3 (第三行) a下方 \hello (增加内容))

sed -i  "3i\hello" sed.txt

(*3 (第三行) i 当前行数 \hello (增加内容))

sed -i "4d" sed.txt

(*4(第四行) d (删除))

sed -i "1s#python#python3#1" `find class -name "*.py" ` sed -i "1s#python3#python#1" class/*/*.py python@ubuntu:~/Desktop/class$ tree.├── day1│   ├── abc.py│   ├── list_timeit.py│   ├── newabc.py│   └── tmit.py├── linklist│   ├── CycleLinkList.py│   ├── DoubleLinkList.py│   └── SingleLinkList.py└── sort    ├── bubble_sort.py    ├── insert_sort.py    ├── merge_sort.py

将class 目录下首行python 解释器换成python3

awk (基于行拆分列的文件编辑工具)

常见参数:

-F 指定行的分隔符

常见动作:

print 显示内容$0 显示当前行所有内容$n 显示当前行的第n列内容,如果存在多个$n,它们之间使用逗号(,)隔开python@ubuntu:~$ cat awk.txt awk awk  awkawk awk  awk awk awk  awk awk awk  awk awk awk  awk
awk  '{awk $1,$3}' awk.txt

读取awk.txt 的每一行,打印第一列和第三列

常见 内置变量:

FILENAME 文件名 (读取一行打印一行的文件名字)

awk '{print FILENAME}' awk.txt

NR 行号

awk '{print NR $0}' awk.txtawk 'NR==2 {print $2}' awk.txt

第一个打印所有行号和内容,第二个打印二行二列的内容

NF 列数

awk '{print NF}' awk.txt  输出每一行可分割的列数 awk  '{print $NF}' awk.txt输出最后一列的内容

OFS 输出格式的列分隔符,缺省是空格

awk 'BEGIN{OFS=":"}{print NR,$0}' awk.txt 1:awk awk  awk2:awk awk  awk 3:awk awk  awk 4:awk awk  awk 5:awk awk  awk

FS 输入文件的列分融符,缺省是连续的空格和Tab 模板文件内容

awk 'BEGIN{FS="k"} {print $2,$3}' awk.txt  (awk -F "k" '{print $2,$3}' awk.txt)这种方法简单 aw   aw aw   aw aw   aw aw   aw aw   aw

输出以k 为分割点的第二列第三列的内容

转载地址:http://cheun.baihongyu.com/

你可能感兴趣的文章
PAT乙级_1089 狼人杀-简单版 (20 分)_python
查看>>
PAT乙级_1092 最好吃的月饼 (20 分)_python
查看>>
SpringBoot整合RabbitMQ
查看>>
多线程开发
查看>>
计算机网络五层模型
查看>>
排 序 算 法
查看>>
Spring中使用了那些设计模式
查看>>
@RestController与@Controller
查看>>
什么是Spring?
查看>>
Spring AOP 和 AspectJ AOP 有什么区别?
查看>>
UDP实时图像传输
查看>>
机器学习 | 使用k-近邻算法实现手写识别系统
查看>>
Windows下如何查看一个process内有哪些thread
查看>>
机器人路径规划之动态窗口法
查看>>
多线程之线程安全(Thread Safety)
查看>>
多线程之简易注册验证程序
查看>>
多线程之基于积分法与欧拉恒等式法的圆周率计算及OMP优化
查看>>
语音信号处理 | 基于Hilbert-Huang变换的基音检测方法
查看>>
机器学习 | 使用TensorFlow搭建神经网络实现鸢尾花分类
查看>>
多线程之多核线上考试试题瞎解
查看>>