导航:首页 > 编程系统 > linuxshell特殊符号

linuxshell特殊符号

发布时间:2023-01-13 09:45:32

linux shell中 ~ 符号代表什么

shell命令中 代表用户的家目录 使用cd ~ 或者cd 可以转到这个目录
在bash shell awk命令中,~代表匹配正则表达式,例:awk ‘$0 ~ /.*/ {print}’ test.txt

⑵ Linux shell 中单引号字符串里面有单引号字符怎么办

Linux shell 中单引号字符串里面有单引号字符解决:

$echo"mocha。reporter('spec')"|sed"s/'spec'/'json'/"

mocha.reporter('json')

有单引号的情况就用双引号呗

$echo"mocha.reporter('spec')"|sed$'s/'spec'/'json'/'

mocha.reporter('json')

或者也可以这样、加个$让bash转义

控制字符

转义字符不属于控制字符;控制字符也不属于转义字符。如果控制字符的定义是非图形的字符,或者对输出设备(打印机、文本终端)有特殊意义的字符,那么针对这些设备的转义字符也是控制字符。但是程序设计用的转义字符是图形字符,因此它们不是控制字符。相反地,大多数ASCII控制字符单独都具有控制功能,因此它们不是转义字符。

⑶ linux shell中'""和`的区别

和现在的开发语言一样,语法上有些差异!

三种主要的 Shell 与其分身

在大部份的UNIX系统,三种著名且广被支持的shell 是Bourne shell(AT&T shell,在 Linux 下是BASH)、C shell(Berkeley shell,在 Linux 下是TCSH)和 Korn shell(Bourne shell的超集)。这三种 shell 在交谈(interactive)模式下的表现相当类似,但作为命令文件语言时,在语法和执行效率上就有些不同了。

Bourne shell 是标准的 UNIX shell,以前常被用来做为管理系统之用。大部份的系统管理命令文件,例如 rc start、stop 与shutdown 都是Bourne shell 的命令档,且在单一使用者模式(single user mode)下以 root 签入时它常被系统管理者使用。Bourne shell 是由 AT&T 发展的,以简洁、快速著名。 Bourne shell 提示符号的默认值是 $。

C shell 是柏克莱大学(Berkeley)所开发的,且加入了一些新特性,如命令列历程(history)、别名(alias)、内建算术、档名完成(filename completion)、和工作控制(job control)。对于常在交谈模式下执行 shell 的使用者而言,他们较喜爱使用 C shell;但对于系统管理者而言,则较偏好以 Bourne shell 来做命令档,因为 Bourne shell 命令档比 C shell 命令档来的简单及快速。C shell 提示符号的默认值是 %。

Korn shell 是Bourne shell 的超集(superset),由 AT&T 的 David Korn 所开发。它增加了一些特色,比 C shell 更为先进。Korn shell 的特色包括了可编辑的历程、别名、函式、正规表达式万用字符(regular expression wildcard)、内建算术、工作控制(job control)、共作处理(coprocessing)、和特殊的除错功能。Bourne shell 几乎和 Korn shell 完全向上兼容(upward compatible),所以在 Bourne shell 下开发的程序仍能在 Korn shell 上执行。Korn shell 提示符号的默认值也是 $。在 Linux 系统使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。

除了执行效率稍差外,Korn shell 在许多方面都比 Bourne shell 为佳;但是,若将 Korn shell 与 C shell 相比就很困难,因为二者在许多方面都各有所长,就效率和容易使用上看,Korn shell 是优于 C shell,相信许多使用者对于 C Shell 的执行效率都有负面的印象。

在shell 的语法方面,Korn shell 是比较接近一般程序语言,而且它具有子程序的功能及提供较多的资料型态。至于 Bourne shell,它所拥有的资料型态是三种 shell 中最少的,仅提供字符串变量和布尔型态。在整体考量下 Korn shell 是三者中表现最佳者,其次为 C shell,最后才是 Bourne shell,但是在实际使用中仍有其它应列入考虑的因素,如速度是最重要的选择时,很可能应该采用 Bourne shell,因它是最基本的 shell,执行的速度最快。
作者: benny_feng 发布日期: 2006-10-17
tcsh 是近几年崛起的一个软件(Linux 下的C shell 其实就是使用 tcsh)执行,它虽然不是UNIX 的标准配备,但是从许多地方您都可以下载到它。如果您是 C shell 的拥护者,笔者建议不妨试试 tcsh,因为您至少可以将它当作是 C shell 来使用。如果您愿意花点时间学习,您还可以享受许多它新增的优越功能,例如:

1. tcsh 提供了一个命令列(command line)编辑程序。

2. 提供了命令列补全功能。

3. 提供了拼字更正功能。它能够自动检测并且更正在命令列拼错的命令或是单字。

4. 危险命令侦测并提醒的功能,避免您一个不小心执行了rm* 这种杀伤力极大的命令。

5. 提供常用命令的快捷方式(shortcut)。

bash 对 Bourne shell 是向下兼容(backward compatible),并融入许多C shell 与Korn shell 的功能。这些功能其实 C shell(当然也包括了tcsh)都有,只是过去 Bourne shell 都未支持。以下笔者将介绍 bash 六点重要的改进(详细的使用说明笔者会在以后的章节介绍):

1. 工作控制(job contorl)。bash 支持了关于工作的讯号与指令,本章稍后会提及。

2. 别名功能(aliases)。alias 命令是用来为一个命令建立另一个名称,它的运作就像一个宏,展开成为它所代表的命令。别名并不会替代掉命令的名称,它只是赋予那个命令另一个名字。

3. 命令历程(command history)。BASH shell 加入了C shell 所提供的命令历程功能,它以 history 工具程序记录了最近您执行过的命令。命令是由 1 开始编号,默认值为500。history 工具程序是一种短期记忆,记录您最近所执行的命令。要看看这些命令,您可以在命令列键入 history,如此将会显示最近执行过之命令的清单,并在前方加上编号。

这些命令在技术上每个都称为一个事件。事件描述的是一个已经采取的行动(已经被执行的命令)。事件是依照执行的顺序而编号,越近的事件其编号码越大,这些事件都是以它的编号或命令的开头字符来辨认的。history 工具程序让您参照一个先前发生过的事件,将它放在命令列上并允许您执行它。最简单的方法是用上下键一次放一个历程事件在您的命令列上;您并不需要先用 history 显示清单。按一次向上键会将最后一个历程事件放在您的命令列上,再按一次会放入下一个历程事件。按向下键则会将前一个事件放在命令列上。

⑷ Linux系统shell工具打印输出

Linux系统shell工具打印输出

shell脚本都是以#!/bin/bash开头;这是固定的写法,其中/bin/bash是bash命令的路径。那么Linux系统shell工具如何打印输出呢?跟我一起来看看吧!

一般都会通过chmod授予shell脚本的可执行权限。

在shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。

在shell中如果用双引号("")作为打印输出的内容时,如果双引号中有特殊字符需要在特殊字符前加上转义字符,当然也可以使用单引号或者不使用引号直接输出,使用单引号或者不使用就不需要用到转义字符。

格式替代符

有一些常用的格式替代符会经常在打印输出中被用到,格式替代符只能用在printf输出中。

%-5s:表示5个字符宽度,其中的-表示左对齐

%-4.2f:其中的f表示浮点型,4.2代表长度为4个字符且小数点2位,如果小数点超过2会进行四舍五入,-表示左对齐。

整形:

%d:整数的参数会被转成一有符号的十进制数字

%u:整数的参数会被转成一无符号的十进制数字

%o:整数的参数会被转成一无符号的八进制数字

%x:整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示

%X:整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示

浮点型数:

%fdouble型的参数会被转成十进制数字,默认取小数点以下六位,四舍五入

%edouble型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示.

%E与%e作用相同,唯一区别是指数部分将以大写的'E来表示.

%gdouble型的参数会自动选择以%f或%e的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定.

%G与%g作用相同,唯一区别在以指数形态打印时会选择%E格式.

字符及字符串:

%c读字符串的第一个字符

%s输出指定宽度的字符内容.

%p如果是参数是"void*"型指针则使用十六进制格式显示

打印输出

在写脚本的时候更多的会使用echo作为打印输出,且习惯性的会使用双引号。

echo

[root@localhosttmp]#echo"helloword"

helloword

printf

默认printf是不换行的

[root@localhosttmp]#printf"helloword"

helloword[root@localhosttmp]#

需要换行加上 参数

[root@localhosttmp]#printf"helloword "

helloword

[root@localhosttmp]#

编写shell脚本

vimscrip.sh

#!/bin/bash

printf"%-5s%-10s%-4s "NoNameMark;

printf"%-5s%-10s%-4.2f "1aaa10.111;

printf"%-5s%-10s%-4.2f "2bbb20.146;

授予脚本执行权限:chmo+xscrip.sh

如果使用echo就不能用格式替代符

#!/bin/bash

echoNoNameMark;

echo1aaa10.111;

echo2bbb20.146;

注意事项

在echo,printf中使用-e,-n参数时,-e,-n应该出现在命令行其它字符之前。

-e:如果要在echo的双引号使用转义序列作为参数得需要使用-e参数

-n:忽略末尾的换行符

不使用-e参数

[root@localhosttmp]#echo"1 2"

1 2

使用-e参数

[root@localhosttmp]#echo-e"1 2"

转义序列:

/n:换行

/t:tab键

彩色输出

字体颜色包括:0=重置,30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=洋红,36=青色,37=白色

背景颜色包括:0=重置,40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,46=青色,47=白色

echo-e"e[1;32mhelloworde[0m"

e[1;32m:将字体颜色设为绿色,e[0m:将颜色重置

;

⑸ Linux Shell 脚本编程最佳实践

IT路边社

前言

与其它的编码规范一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。这份文档主要侧重于我们所普遍遵循的规则,对于那些不是明确强制要求的,我们尽量避免提供意见。

编码规范对于程序员而言尤为重要,有以下几个原因:

本文档中的准则致力于最大限度达到以下原则:

尽管本文档涵盖了许多基础知识,但应注意的是,没有编码规范可以为我们回答所有问题,开发人员始终需要再编写完代码后,对上述原则做出正确的判断。

:未明确指明的则默认为必须(Mandatory)

主要参考如下文档:

仅建议Shell用作相对简单的实用工具或者包装脚本。因此单个shell脚本内容不宜太过复杂。

在选择何时使用shell脚本时时应遵循以下原则:

可执行文件不建议有扩展名,库文件必须使用 .sh 作为扩展名,且应是不可执行的。

执行一个程序时,无需知道其编写语言,且shell脚本并不要求具有扩展名,所以更倾向可执行文件没有扩展名。

而库文件知道其编写语言十分重要,使用 .sh 作为特定语言后缀的扩展名,可以和其他语言编写的库文件加以区分。

文件名要求全部小写, 可以包含下划线 _ 或连字符 - , 建议可执行文件使用连字符,库文件使用下划线。

正例:

反例:

源文件编码格式为UTF-8。避免不同操作系统对文件换行处理的方式不同,一律使用 LF 。

每行最多不超过120个字符。每行代码最大长度限制的根本原因是过长的行会导致阅读障碍,使得缩进失效。

除了以下两种情况例外:

如出现长度必须超过120个字符的字符串,应尽量使用here document或者嵌入的换行符等合适的方法使其变短。

示例:

除了在行结束使用换行符,空格是源文件中唯一允许出现的空白字符。

对从来没有用到的或者被注释的方法、变量等要坚决从代码中清理出去,避免过多垃圾造成干扰。

Bash 是唯一被允许使用的可执行脚本shell。

可执行文件必须以 #!/bin/bash 开始。请使用 set 来设置shell的选项,使得用 bash echo "Process $: Done making $$$."
# 示例7:命令参数及路径不需要引号 grep -li Hugo /dev/ "$1"
# 示例8:常规变量用双引号,ccs可能为空的特殊情况可不用引号 git send-email --to "${reviewers}" ${ccs:+"--cc" "${ccs}"}
# 示例9:正则用单引号,$1可能为空的特殊情况可不用引号 grep -cP '([Ss]pecial||?characters*) ${1:+"$1"}
# 示例10:位置参数传递推荐带引号的"$@",所有参数作为单字符串传递用带引号的"$*" # content of t.sh func_t { echo num: $# echo args: 1:$1 2:$2 3:$3 }
func_t "$@" func_t "$*" # 当执行 ./t.sh a b c 时输出如下: num: 3 args: 1:a 2:b 3:c num: 1 args: 1:a b c 2: 3:

使用 $(command) 而不是反引号。

因反引号如果要嵌套则要求用反斜杠转义内部的反引号。而 $(command) 形式的嵌套无需转义,且可读性更高。

正例:

反例:

条件测试

使用 [[ ... ]] ,而不是 [ , test , 和 /usr/bin/[ 。

因为在 [[ 和 ]] 之间不会出现路径扩展或单词切分,所以使用 [[ ... ]] 能够减少犯错。且 [[ ... ]] 支持正则表达式匹配,而 [ ... ] 不支持。参考以下示例:

尽可能使用变量引用,而非字符串过滤。

Bash可以很好的处理空字符串测试,请使用空/非空字符串测试方法,而不是过滤字符,让代码具有更高的可读性。正例:

反例:

正例:

反例:

正例:

反例:

文件名扩展

当进行文件名的通配符扩展时,请指定明确的路径。

当目录中有特殊文件名如以 - 开头的文件时,使用带路径的扩展通配符 ./* 比不带路径的 * 要安全很多。

应该避免使用eval。

Eval在用于分配变量时会修改输入内容,但设置变量的同时并不能检查这些变量是什么。反例:

请使用进程替换或者for循环,而不是通过管道连接while循环。

这是因为在管道之后的while循环中,命令是在一个子shell中运行的,因此对变量的修改是不能传递给父shell的。

这种管道连接while循环中的隐式子shell使得bug定位非常困难。反例:

如果你确定输入中不包含空格或者其他特殊符号(通常不是来自用户输入),则可以用for循环代替。例如:

使用进程替换可实现重定向输出,但是请将命令放入显式子 shell,而非 while 循环创建的隐式子 shell。例如:

总是检查返回值,且提供有用的返回值。

对于非管道命令,使用 $? 或直接通过 if 语句来检查以保持其简洁。

例如:

当内建命令可以完成相同的任务时,在shell内建命令和调用外部命令之间,应尽量选择内建命令。

因内建命令相比外部命令而言会产生更少的依赖,且多数情况调用内建命令比调用外部命令可以获得更好的性能(通常外部命令会产生额外的进程开销)。

正例:

反例:

加载外部库文件不建议用使用.,建议使用source,已提升可阅读性。正例:

反例:

除非必要情况,尽量使用单个命令及其参数组合来完成一项任务,而非多个命令加上管道的不必要组合。常见的不建议的用法例如:cat和grep连用过滤字符串; cat和wc连用统计行数; grep和wc连用统计行数等。

正例:

除特殊情况外,几乎所有函数都不应该使用exit直接退出脚本,而应该使用return进行返回,以便后续逻辑中可以对错误进行处理。正例:

反例:

推荐以下工具帮助我们进行代码的规范:

原文链接:http://itxx00.github.io/blog/2020/01/03/shell-standards/

获取更多的面试题、脚本等运维资料点击: 运维知识社区 获取

脚本之---短信轰炸机

脚本之---QQ微信轰炸机

ansible---一键搭建redis5.0.5集群

elk7.9真集群docker部署文档

全球最全loki部署及配置文档

最强安全加固脚本2.0

一键设置iptbales脚本

⑹ linux shell中的比较符号与特殊符号介绍

shell字符串比较、判断是否为数字

二元比较操作符,比较变量或者比较数字。注意数字与字符串的区别。

整数比较

-eq 等于,如:if [ "$a" -eq "$b" ]

-ne 不等于,如:if [ "$a" -ne "$b" ]

-gt 大于,如:if [ "$a" -gt "$b" ]

-ge 大于等于,如:if [ "$a" -ge "$b" ]

-lt 小于,如:if [ "$a" -lt "$b" ]

-le 小于等于,如:if [ "$a" -le "$b" ]

< 小于(需要双括号),如:(("$a" < "$b"))

<= 小于等于(需要双括号),如:(("$a" <= "$b"))

> 大于(需要双括号),如:(("$a" > "$b"))

>= 大于等于(需要双括号),如:(("$a" >= "$b"))

字符串比较

= 等于,如:if [ "$a" = "$b" ]

== 等于,如:if [ "$a" == "$b" ],与=等价

注意:==的功能在[[]]和[]中的行为是不同的,如下:

1 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true

2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true

3

4 [ $a == z* ] # File globbing 和word splitting将会发生

5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true

一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是.

但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.

!= 不等于,如:if [ "$a" != "$b" ]

这个操作符将在[[]]结构中使用模式匹配.

< 小于,在ASCII字母顺序下.如:

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

注意:在[]结构中"<"需要被转义.

> 大于,在ASCII字母顺序下.如:

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

注意:在[]结构中">"需要被转义.

具体参考Example 26-11来查看这个操作符应用的例子.

-z 字符串为"null".就是长度为0.

-n 字符串不为"null"

链接:https://www.jianshu.com/p/6322715ad196

⑺ linux的shell编程中的符号`是什么

`` 符号在shell里面正式的名称叫做backquote , 一般叫做命令替换
其作用是将引用命令的输出替换到字符串或者变量
通常的 你需要在一个序列中需要用到其它命令的输出,就可以用``

⑻ 4、liunx系统基础命令及特殊符号知识考题


什么是PATH环境变量,它有什么作用?

LANG PS1 PATH

######PATH含义

存放的是命令的位置/路径

[root@oldboye01-nb ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

第二个里程牌-liunx 下面运行命令过程

####1、输入命令

####2、在PATH里面 路径进行查找

####3、找到了就运行

####4、找不到就提示 command not found

第1题

如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是第一级目录)?

mkdir /oldboy -p

cd /oldboy

mkdir ext/oldboy test xiaodong xingfujie -p

touch jeacen olaboy wodi.gz yingsui.gz

yum install tree -y

[root@oldboye01-nb oldboy]# #如何查询某个软件是否安装了?

[root@oldboye01-nb oldboy]# rpm -qa ( 查找所有安装软件 )

[root@oldboye01-nb oldboy]# rpm -qa

[root@oldboye01-nb oldboy]# rpm -qa |grep tree ( 查找具体的软件安装包 )

tree-1.5.3-3.el6.x86_64

[root@oldboye01-nb oldboy]# rpm -qa tree

tree-1.5.3-3.el6.x86_64

[root@oldboye01-nb oldboy]# rpm -qa |grep ipt

initscripts-9.03.58-1.el6.centos.x86_64

iptables-ipv6-1.4.7-16.el6.x86_64

plymouth-scripts-0.8.3-29.el6.centos.x86_64

iptables-1.4.7-16.el6.x86_64

[root@oldboye01-nb oldboy]# #查看某个软件包里面的内容

[root@oldboye01-nb oldboy]# rpm -ql tre

package tre is not installed

[root@oldboye01-nb oldboy]# rpm -ql tree ( 查看具体安装包里面的内容 )

/usr/bin/tree

/usr/share/doc/tree-1.5.3

/usr/share/doc/tree-1.5.3/LICENSE

###方法1

[root@oldboye01-nb oldboy]# tree -d /oldboy/

/oldboy/

ext

oldboy

test

xiaodong

xingfujie

5 directories

[root@oldboye01-nb oldboy]#

[root@oldboye01-nb oldboy]# tree -dL 1 /oldboy/

/oldboy/

ext

test

xiaodong

xingfujie

##方法2

[root@oldboye01-nb oldboy]# find -type d

.

./ext

./ext/oldboy

./xiaodong

./test

./xingfujie

[root@oldboye01-nb oldboy]# find -maxdepth 1 -type d ! -name "." ( 找出名字不是点 )

./ext

./xiaodong

./test

./xingfujie

###方法3

[root@oldboye01-nb oldboy]# ls -l

total 28

-rw-r--r--. 1 root root 0 Jun 9 07:06 alex.txt

-rw-r--r--. 1 root root 292 Jun 9 06:34 ett.txt

drwxr-xr-x 3 root root 4096 Jun 22 21:55 ext

-rw-r--r-- 1 root root 0 Jun 22 23:44 jeacen

-rw-r--r-- 1 root root 0 Jun 22 23:44 olaboy

-rw-r--r--. 1 root root 0 Jun 9 07:06 oldboy.txt

drwxr-xr-x. 2 root root 4096 Jun 9 07:26 test

-rw-r--r--. 1 root root 8 Jun 9 07:26 test.sh

-rw-r--r--. 1 root root 8 Jun 9 07:26 t.sh

-rw-r--r-- 1 root root 0 Jun 22 23:44 wodi.gz

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xiaodong

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xingfujie

-rw-r--r-- 1 root root 0 Jun 22 23:44 yingsui.gz

[root@oldboye01-nb oldboy]# ls -l |grep "^d" ( 找出目录为d开头的文件 )

drwxr-xr-x 3 root root 4096 Jun 22 21:55 ext

drwxr-xr-x. 2 root root 4096 Jun 9 07:26 test

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xiaodong

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xingfujie

[root@oldboye01-nb oldboy]#

#方法4

[root@oldboye01-nb oldboy]# ls -l|awk '$2>1' ( 第二列大于1 )

total 28

drwxr-xr-x 3 root root 4096 Jun 22 21:55 ext

drwxr-xr-x. 2 root root 4096 Jun 9 07:26 test

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xiaodong

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xingfujie

[root@oldboye01-nb oldboy]#

#第2题假如当前目录[root@oldboye01-nb oldboy]# pwd #==>这是打印当前目录的,最菜的命令

/oldboy

现在因为需要进入到/tmp目录下进行操作,执行的命令如下:

[ root@oldboy oldboy]# cd /tmp/

[ root@oldboy tmp]#pwd

/tmp/

操作完毕后,希望快速返回上一次进入的目录,即/oldboy目录,如何操作(不使用cd/oldboy)

[root@oldboye01-nb tmp]# #快速回到上一次的所在的位置/目录

[root@oldboye01-nb tmp]# cd -

/oldboy

[root@oldboye01-nb oldboy]# pwd

/oldboy

[root@oldboye01-nb oldboy]#

cd -

cd . =====当前目录 复制/移动 cp/etc/host.

cd.. =====进入到当前目录的上一级目录

cd~ =====进入当前用户的家目录,回老家

(root用户)~ ====/root

(普通用户)~ ====/home/

cd =====回老家 回家

cd - #快速回到上一次的所在位置/目录

[root@oldboye01-nb oldboy]##进入到/etc/sysconfig/network-scripts/目录,并查看你所在的位置

[root@oldboye01-nb oldboy]#进入到上一级目录,并查看你所在位置

[root@oldboye01-nb oldboy]##进入到/root目录下面,并显示你所在位置

[root@oldboye01-nb oldboy]#回到老家

[root@VM-8-6-centos ~]# cd /oldboy/

[root@VM-8-6-centos oldboy]# cd /etc/sysconfig/network-scripts/

[root@VM-8-6-centos network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@VM-8-6-centos network-scripts]# cd ..

[root@VM-8-6-centos sysconfig]# pwd

/etc/sysconfig

[root@VM-8-6-centos sysconfig]# cd /root/

[root@VM-8-6-centos ~]# pwd

/root

[root@VM-8-6-centos ~]# cd -

/etc/sysconfig

#第3题一个目录中有多文件(ls查看时好多屏),想最快速度查看到最近更新的文件,怎么查

ls -lrt

第5题 调试系统服务时,希望能实时查看系统日志/var/log/messages的更新,如何做?

tail -f 显示文件的实时更新

taillf ====tail -f

第4题 打印配置文件nginx.conf 内容的行号及内容,该如何做?

[root@oldboye01-nb oldboy]# echo {1..5}

1 2 3 4 5

[root@oldboye01-nb oldboy]# echo stu {01..10}

stu 01 02 03 04 05 06 07 08 09 10

[root@oldboye01-nb oldboy]# echo stu{01..10}

stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

[root@oldboye01-nb oldboy]# echo stu{01..10}xargs -n1

stu01xargs stu02xargs stu03xargs stu04xargs stu05xargs stu06xargs stu07xargs stu08xargs stu09xargs stu10xargs -n1

[root@oldboye01-nb oldboy]# echo stu{01..10}|xargs -n1

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

[root@oldboye01-nb oldboy]# echo stu{01..10}|xargs -n1 >nginx.conf

[root@oldboye01-nb oldboy]# cat nginx.conf

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

[root@oldboye01-nb oldboy]#

###方法1

[root@oldboye01-nb oldboy]# cat -n nginx.conf (-n表示行号)

1 stu01

2 stu02

3 stu03

4 stu04

5 stu05

6 stu06

7 stu07

8 stu08

9 stu09

10 stu10

###方法2 -vi/vim

:set nu #显示行号 number

:set monu #取消小时行号

###方法3 -grep -n参数

[root@oldboye01-nb oldboy]# grep -n "stu" nginx.conf

1:stu01

2:stu02

3:stu03

4:stu04

5:stu05

6:stu06

7:stu07

8:stu08

9:stu09

10:stu10

[root@oldboye01-nb oldboy]# grep -n "." nginx.conf

1:stu01

2:stu02

3:stu03

4:stu04

5:stu05

6:stu06

7:stu07

8:stu08

9:stu09

10:stu10

小结:

1.cat -n;vi/vim显示行号

2、grep -n

3、awk NR $ print

###第5题,装完系统后,希望让网络文件共享服务器NFS(iptables),仅在3级别上开机自启动,如何操作?

chkconfig iptables off

###第6题,liunx系统中查看中文,但是乱码,请问如何解决?

解决:

方法1:推荐修改xshell 字符集

方法2:修改系统字符集

1:命令行 export LANG=en_us.utf-8

2.写入配置文件

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bat

echo ‘LANG=en_us.UTF-8'>/etc/sysconfig/i18n

3、生效

source /etc/sysconfig/i18n

###第7题; /etc/目录为liunx系统默认的配置文件及服务启动命令的目录

a、请用tar 打包/etc整个目录(打包及压缩)

b、请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)

c、请用tar打包/etc整个目录(打包及压缩,但需要排除/etc/services文件)。

tar 创建查看解压压缩包

[root@oldboye01-nb oldboy]# tar zcvf /tmp/etc.tar.gz /etc/

创建压缩包 压缩包存放的位置 压缩能够目录

zcvf 注释:

z----通过gzip工具进行压缩 ,

c-----表示create创建 压缩包 ,

v---表示verbose显示执行过程

f-----显示file 接上压缩包的名字

[root@oldboye01-nb oldboy]# ls -l /tmp/ (查看文件)

total 9508

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

查看压缩包的内容

[root@oldboye01-nb oldboy]# tar ztf /tmp/etc.tar.gz

ztf注释: t----表示list 显示压缩包的内容

解压

[root@oldboye01-nb oldboy]# cd /tmp/

[root@oldboye01-nb tmp]# tar zxf etc.tar.gz (解压)

创建

tar zcf

查看

tar tf

解压

tar xf

[root@oldboye01-nb tmp]# tar zxf etc.tar.gz

[root@oldboye01-nb tmp]# tar zcf /tmp/sysconfig.tar.gz /etc/sysconfig/

tar: Removing leading /' from member names tar: Removing leading /' from hard link targets

[root@oldboye01-nb tmp]# tar tf /tmp/sysconfig.tar.gz

[root@oldboye01-nb tmp]# ls -l

total 9568

drwxr-xr-x 78 root root 4096 Jun 23 03:39 etc

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# rm -fr etc

do not use rm -fr etc

[root@oldboye01-nb tmp]# ll

total 9568

drwxr-xr-x 78 root root 4096 Jun 23 03:39 etc

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# rm -fr etc

[root@oldboye01-nb tmp]# ll

total 9564

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# tar xf sysconfig.tar.gz

[root@oldboye01-nb tmp]# ll

total 9568

drwxr-xr-x 3 root root 4096 Jun 23 06:02 etc

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# ls etc

sysconfig

[root@oldboye01-nb tmp]# ls etc

sysconfig

[root@oldboye01-nb tmp]# ls etc/sysconfig/

acpid i18n kernel quota_nld sshd

atd init keyboard raid-check sysstat

auditd ip6tables moles readahead sysstat.ioconf

authconfig ip6tables-config netconsole readonly-root system-config-firewall

cbq ip6tables.old network rngd system-config-firewall.old

clock iptables networking rsyslog udev

console iptables-config network-scripts sandbox

cpuspeed iptables.old ntpd saslauthd

crond irqbalance ntpdate selinux

grub kmp prelink smartmontools

请把A点命令的压缩包,解压到/tmp指定目录下(最好用tar命令实现)

[root@oldboye01-nb tmp]# tar xf etc.tar.gz -C /opt/ (指定目录)

[root@oldboye01-nb tmp]# ls -l /opt/ (查看解压后的目录情况)

请用tar打包/etc整个目录(打包及压缩,但需要排除/etc/services文件)

[root@oldboye01-nb tmp]# tar zcf /tmp/etc.tar.gz /etc/

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

[root@oldboye01-nb tmp]#

[root@oldboye01-nb tmp]# tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=/etc/services

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

[root@oldboye01-nb tmp]# tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=/etc/services

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

[root@oldboye01-nb tmp]# tar tf /tmp/etc.tar.gz |grep services

etc/init/readahead-disable-services.conf

etc/services

[root@oldboye01-nb tmp]# tar tf /tmp/etc-paichu.tar.gz|grep services

etc/init/readahead-disable-services.conf

[root@oldboye01-nb tmp]#

cd /

tar zcf /tmp/etc.tar.gz etc/

小结:

1、tar 打包压缩

2、创建压缩包 查看压缩包, 解压

3、解压到指定的文件夹

4、创建压缩包排除

#第8题如何查看etc/services文件的有多少行?

[root@oldboye01-nb ~]# cd /oldboy/

[root@oldboye01-nb oldboy]# wc -l /etc/services

10774 /etc/services、

屌丝去洗浴中心之路

3、

(1) 查看22端口是否开启telnet

(2) sshd远程连接进程是否在运行

ps -ef

[root@oldboye01-nb oldboy]# ps -ef |grep "sshd" (过滤进程sshd)

root 1436 1 0 Jun22 ? 00:00:00 /usr/sbin/sshd

root 2461 1436 0 05:11 ? 00:00:00 sshd: root@pts/0

root 2588 1436 0 06:45 ? 00:00:00 sshd: root@pts/1

root 2656 1436 0 07:30 ? 00:00:00 sshd: root@pts/2

root 2701 2658 0 08:01 pts/2 00:00:00 grep sshd

[root@oldboye01-nb oldboy]# ps -ef |grep "/sshd"

root 1436 1 0 Jun22 ? 00:00:00 /usr/sbin/sshd

root 2705 2658 0 08:03 pts/2 00:00:00 grep /sshd

[root@oldboye01-nb oldboy]# ps -ef |grep "/sshd"|wc -l (显示进程出现几个;次数)

2

第9题:过滤出/etc/services 文件包含3306和1521两数字所在行号的内容

[root@oldboye01-nb oldboy]# grep "3306" /etc/services

mysql 3306/tcp # MySQL

mysql 3306/udp # MySQL

[root@oldboye01-nb oldboy]# egrep "3306|1521" /etc/services

mysql 3306/tcp # MySQL

mysql 3306/udp # MySQL

ncube-lm 1521/tcp # nCube License Manager

ncube-lm 1521/udp # nCube License Manager

[root@oldboye01-nb oldboy]# #egrep ==grep -E支持高级正则(公鸡里的战斗机)

[root@oldboye01-nb oldboy]#

第10题命令行及shell中不加引号、加单引号和加双引号的区别小结

单引号 所见即所得 吃啥吐啥

双引号 里面的特殊符号会被解析

[root@VM-8-6-centos oldboy]# echo 'hello lls $LANG $(hostname) 'pwd''

hello lls $LANG $(hostname) pwd

⑼ liunx 下的shell语句 if [ ! -d /$1/$2/$3/ ]是什么意思

liunx 下的shell语句 if [ ! -d /$1/$2/$3/ ]这是判断某文件夹是否存在,$1, $2, $3都是变量,操作方法如下:

1、判断文件的基本格式。[ 操作符 文件或目录 ]。

⑽ shell脚本中的美元符号什么意思

linux shell脚本中的美元符号$,是作为shell中特殊变量使用的,具体含义:

$0 shell的命令本身(包括完专整路径)
$1到$9 数字表属示shell 的第几个参数
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同。
$- 显示shell使用的当前选项。
$? 显示最后命令的执行状况。0表示没有错误。

阅读全文

与linuxshell特殊符号相关的资料

热点内容
荣耀畅玩手环同步qq 浏览:475
怎么向sql中添加数据库 浏览:596
录歌失败重启app什么意思 浏览:522
压缩文件包怎么在微信发送 浏览:432
mysql数据库怎么插入时间值 浏览:191
微信视频不能转发朋友圈 浏览:596
影视后期的app有哪些 浏览:956
电子保单数据出错什么意思 浏览:368
如何以文件下载音乐 浏览:438
计算机网络章节练习 浏览:999
单片机的外部中断程序 浏览:48
表格批量更名找不到指定文件 浏览:869
js的elseif 浏览:584
3dmaxvray视频教程 浏览:905
imgtool工具中文版 浏览:539
java帮助文件在哪里 浏览:965
win10切换输入语言 浏览:696
haier电视网络用不了怎么办 浏览:361
苹果6手机id怎么更改 浏览:179
米家扫地机器人下载什么app 浏览:82

友情链接