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

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

shell命令的随记

问题一:shell命令中echo是什么意思,echo就类似于java命令的system.out.print命令,我在centos中输入了如下的命令,以及得到的结果。其中的\是转义的标志。

echo " it is a big sb "

" it is a big sb "
echo -e “OK! \c” # -e 开启转义 \c 不换行

问题二:shell命令中的cd命令,这个命令就类似于windows环境下切换路径的cd.

问题三:shell命令中的$命令,类似于java命令中的赋值操作,在centos操作结果如下。

echo “vrs1=$vrs”

vrs1=123

问题四:shell命令中#,这个命令表示#后面的语句不会被执行,启到注视的作用。

问题五:shell命令中的反引号``,以及其和pwd结合使用。在centos操作结果如下所示。从结果中我们可以得出反引号就是执行日期的命令。具有执行命令的作用。

fdv=date +%F

echo today is $fdv
today is 2019-05-08

问题六:shell命令中pwd是什么意思,pwd表示获取当前目录的意思。在centos操作了一波的结果。当前脚本执行左右的目录。

echo pwd

/home/w260311/桌面

问题七: shell 命中的dot(点符号)。一个点代表当前目录,两个点代表上层目录。在centos中进行一波操作。进入当前目录下的桌面文件夹。

[root@w26-260311 w260311]# cd ./桌面

[root@w26-260311 桌面]#

问题八:shell命令中的冒号:的使用方式,这是一个内建指令:”什么事都不干”,但返回状态值 0。

问题九:shell命令中的|符号,管道命令:| 管道 (pipeline) pipeline 是 UNIX 系统,基础且重要的观念。连结上个指令的标准输出,做为下个指令的标准输入。

问题10:shell命令中的ps,ps简介:

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps

(1) ps :是显示瞬间进程的状态,并不动态连续;
(2) top:如果想对进程运行时间监控,应该用 top 命令;

ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。

命令行格式:

名称:ps
使用权限:所有使用者
使用方式:ps [options] [–help]
说明:显示瞬间行程 (process) 的动态
参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

ps命令常用用法:

(方便查看系统进程)

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。

2)ps -A 显示所有进程。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u  以用户为主的格式来显示程序状况。
13)ps x  显示所有程序,不以终端机来区分。
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

问题11:shell命令中grep命令:

用‘grep’搜索文本文件

如果您要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。举个例子:假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:

$ grep magic /usr/src/linux/Documentation/*

sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件‘sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。

默认情况下,‘grep’只搜索当前目录。如果此目录下有许多子目录,‘grep’会以如下形式列出:

grep: sound: Is a directory
这可能会使‘grep’的输出难于阅读。这里有两种解决的办法:
明确要求搜索子目录:grep -r
忽略子目录:grep -d skip

当然,如果预料到有许多输出,您可以通过 管道

将其转到‘less’上阅读:
$ grep magic /usr/src/Linux/Documentation/* | less
这样,您就可以更方便地阅读。
有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用*)。如果您忘了,‘grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按ctrl+c,然后再试。(important!!)

下面是一些有意思的命令行参数:

grep -i pattern files:不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files:只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files:匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配pattern2 的行。

这里还有些用于搜索的特殊符号:

< 和 > 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
grep ‘<man’ * 匹配‘manic’和‘man’,但不是‘Batman’,
grep ‘<man>’ 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

‘^’:指匹配的字符串在行首,

‘$’:指匹配的字符串在行尾,
如果您不习惯命令行参数,可以试试图形界面的‘grep’,如 reXgrep 。这个软件提供 AND、OR、NOT 等语法,还有漂亮的按钮 ? 。如果您只是需要更清楚的输出,不妨试试 fungrep 。

Grep的常用命令语法1. 双引号引用和单引号引用

在g r e p命令中输入字符串参数时,最好将其用双引号括起来。例如:”m y s t r i n g”。这样做有两个原因,一是以防被误解为 s h e l l命令,二是可以用来查找多个单词组成的字符串,例如:”jet plane”,如果不用双引号将其括起来,那么单词 p l a n e将被误认为是一个文件,查询结果将返回”文件不存在”的错误信息。
在调用变量时,也应该使用双引号,诸如: g r e p”$ M Y VA R”文件名,如果不这样,将
没有返回结果。
在调用模式匹配时,应使用单引号.[root@mypc ]# echo grep 123 111.txt (#注意是反单引号)

  1. 常用的g r e p选项有:

    -c 只输出匹配行的计数。
    -i 不区分大小写(只适用于单字符)。
    -h 查询多文件时不显示文件名。
    -l 查询多文件时只输出包含匹配字符的文件名。
    -n 显示匹配行及行号。
    -s 不显示不存在或无匹配文本的错误信息。
    -v 显示不包含匹配文本的所有行。

  2. 特殊的–在多个文件中进行查询

    $ grep “sort”*.doc ( #在当前目录下所有. d o c文件中查找字符串”s o r t”)

$ grep “sort it” * (#或在所有文件中查询单词”sort it”)

接下来的所有示例是指在单个文件中进行查询
4. 行匹配
$ grep -c “48″ data.f
$ 4 (#g r e p返回数字4,意义是有4行包含字符串”4 8″。)
$ grep “48″ data.f (#显示包含”4 8″字符串的4行文本)

  1. 显示满足匹配模式的所有行行数:

    [root@mypc oid2000]# grep -n 1234 111.txt
    1:1234
    3:1234ab

  2. 精确匹配

    [root@mypc oid2000]# grep “1234>” 111.txt
    1234

  3. 查询空行,查询以某个条件开头或者结尾的行。

    结合使用^和KaTeX parse error: Expected 'EOF', got '#' at position 40: …t@mypc oid2000]#̲ grep -n “^” 111.txt (返回结果 2: #说明第二行是空行)
    [root@mypc oid2000]# grep -n “^abc” 111.txt (#查询以abc开头的行)
    [root@mypc oid2000]# grep -n “abc$” 111.txt (#查询以abc结尾的行)

  4. 匹配特殊字符,查询有特殊含义的字符,诸如$ . ‘ ” * [] ^ | \ + ? ,必须在特定字符前加\。

    [root@mypc oid2000]# grep “.” 111.txt (#在111.txt中查询包含”.”的所有行)
    [root@mypc oid2000]# grep “my.conf” 111.txt (#查询有文件名my. c o n f的行)

  5. 目录的查询

    [root@mypc oid2000]# ls -l |grep “^d” (#如果要查询目录列表中的目录)
    [root@mypc oid2000]# ls -l |grep “^d[d]“ (#在一个目录中查询不包含目录的所有文件)
    [root@mypc]# ls -l |grpe “^d……x…x” (#查询其他用户和用户组成员有可执行权限的目录集合)

问题12 shell命令中的awk:具体使用如下面的链接

[]

问题13 shell命令中的if[]:具体使用如下面的链接所示

[]

最后附上,字符意义的链接

[]

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

你可能感兴趣的文章
Linux网络运维-SSH
查看>>
Linux网络运维 -- 配置DHCP服务器
查看>>
Android开发问题记录
查看>>
Verilog编程网站学习——门电路、组合电路、时序电路
查看>>
android——学生信息显示和添加
查看>>
Android——ImageSwitcher轮流显示动画
查看>>
Android——利用手机端的文件存储和SQLite实现一个拍照图片管理系统
查看>>
图像调优1:清晰度相关参数MTF,SFR,MTF50,MTF50P 以及TVL的概念以及换算说明
查看>>
图像调优3: CCM参数的标定
查看>>
ctags在verilog代码浏览中的应用
查看>>
NeoVintageous 在sublime中的使用
查看>>
用ncverilog跑仿真时,如何去除对特定路径的timing检查
查看>>
在ncverilog仿真条件设置中+nospecify ,+notimingcheck 和 +delay_mode_zero之间有什么区别
查看>>
linux下nerdtree安装方法
查看>>
最长回文子串(Go,LeetCode)
查看>>
windows下TortoiseGit安装和使用的图文教程
查看>>
基于Jquery的(可视区域,向上滚动向下滚动两种)图片懒加载
查看>>
原生JS的(可视区域,向上滚动向下滚动两种)图片懒加载
查看>>
使用VMware搭建Hadoop集群虚拟网络配置
查看>>
解决vmware下拷贝主机后不识别eth0网卡
查看>>