`
陌上凌薇
  • 浏览: 9847 次
  • 性别: Icon_minigender_2
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

linux的九个Shell技巧[转]

 
阅读更多
linux的九个Shell技巧

一、用mkdir创建目录树:

mkdir不加参数使用时,只能建立一层目录,如果要建立多层目录,需要使用-p选项:

mkdir -p a/b/c

如果要建立一个复杂的目录,可以用加上{}的方法。例如想建立./a/a1 ./b/b1 ./b/b2 三个目录树:

mkdir -p {a/a1,b/{b1,b2}}

二、带条件执行的组合Shell:

在linux中,Shell可以连续输入,并且用“;”隔开,但是这样只是简单的依次执行,如果前后Shell有依赖,就会很尴尬。这个时候我们就可以引入有条件执行:

cd a/b/c && ls

/*

*&&表示如果前一Shell执行成功,则执行下一条Shell。这里表示:如果能进入指定目录,则列出目录里的内容。

*/

cd a/b/c || mkdir -p a/b/c

/*

*||表示如果迁移Shell执行失败,则执行下一条Shell。这里表示:如果指定目录不存在,这建立这个目录。

*/

三、在Shell中使用变量:

linux的Shell是可以使用变量的:

VAR=”./a/*.pdf”                                   //“var”是变量名,命名规则应该和C/C++的命名规则差不多,不过羽毛建议大家只用全大写且简单的字串。

//注意等号两边不能有空格,否则不能正确理解。

echo $VAR                                              //这个变量的使用,类似于C/C++中的宏定义,所以这条命令等价于:echo ./a/*.pdf。

echo “$VAR”                                           //这里等价于:echo “./a/*.pdf”。

如果变量名需要和其他字符组合使用,注意用{}隔开:

echo “${VAR}x”                                    //等价于输入:echo “./a/*.pdfx”。

四、在Shell中使用SubShell:

在Shell中,如果将Shell用()括起来,将使得Shell执行在SubShell中:

(cd ./a) && ls                                          //执行以后,会发现显示的内容还是原来路径中的,而不是./a中的。

五、Shell中grep的两个技巧:

1、假设有一个文本,如果我们只是需要知道字串“and”出现的行数,则更好的命令是:

grep -c and ./a/test

并且上面这个方法将优于:grep -o and ./a/test | wc -l

2、使用正则表达式(正则表达式表可以参见这里)。这里我们简单演示一个表达式:

grep ‘[^a-zA-Z0-9]‘ ./a/test

六、Shell中awk的简单介绍:

1、查找具体的字段。例如我们需要将目录中2010/10/10创建的文件列出来,可以使用:

ll ./a/ | awk ‘$6 = “2010-10-10″‘                     //$7是表示匹配第六个字段。每一个字段都以空格为界限。注意awk后面总体被单引号括起来的。

2、在awk中可以使用length()函数返回每行文本的长度;index()函数返回首次发现匹配字串的位置;split()函数将字串按需拆分。这几个函数的用法和C/C++里的用法是基本相同的:

awk ‘{i = length($0); print i}’ ./a/test

awk ‘{i = index($0,”a”); print i}’ ./a/test

3、在上面的指令中,我们引用了$0,这个是表示使用输入的第零个参数——也就是输入的内容,在下面,我们还可以做一些高级的处理:

例如我们在文件./a/text2中数据为:

a,1,2

b,3,4

c,5,6

则:

awk -F,  ’{printf $1,$2+$3}’ ./a/text2         //其中-F选项后面紧跟的逗号是指文中内容按逗号划分。

//若将文中逗号改为空格,则:

awk -F’ ‘ ‘{print $1,$2+$3}’ ./a/text2

将返回:

a 3

b 7

c 11

七、使用pushd和popd管理目录:

有时候我们会在几个不同而且很深的目录中来回切换,这个时候使用pushd和popd将非常方便:

加入我们现在在目录“~”中,

dirs                              //将返回显示:~

pushd ./a/a1/         //目录会切入到指定目录

pushd ~/b/b1/

pushd ../b2/

dirs                               //将返回显示:~/b/b2 ~/b/b1 ~/a/a1 ~

popd                             //路径会改变,且~/b/b2将出栈

dirs                               //将返回显示: ~/b/b1 ~/a/a1 ~

pushd +                      //路径变为~/a/a1

dirs                               //将返回显示: ~/a/a1 ~ ~/b/b1

pushd -

八、重用上一次参数:

1、!$:返回上一次使用的路径名(或文件名)。

2、!:1 !:2 …:依次返回上一次使用的第一、二……个参数。

九、其他:

1、echo $0 和 ps -p $$ 都可以返回当前所用的Shell。

2、df 会显示你当硬盘信息。

3、cat > file 可以将接下来输入的信息存入到file文件中,可以用Ctrl+D(即^D)来结束。

4、whoami 会显示当前用户名
分享到:
评论

相关推荐

    Linux Shell常用技巧

    ### Linux Shell 常用技巧详解 在 Linux 系统中,Shell 是用户与操作系统交互的主要方式之一。本文将深入探讨几个常用的 Shell 技巧及其应用场景。 #### 1. 使用 `/dev/null` 和 `/dev/tty` 在 Linux 系统中,`/...

    维护常用linux命令\shell技巧

    以下是一些关于“维护常用Linux命令\Shell技巧”的详细知识点: 1. **基本命令操作**: - `ls`:列出目录内容。 - `cd`:切换目录。 - `pwd`:显示当前工作目录。 - `mkdir`:创建新目录。 - `rm`:删除文件或...

    Linux 命令与Shell 脚本编程pdf书籍

    Shell脚本是Linux系统中的一种自动化工具,可以编写一系列命令并将其打包成一个可执行文件,极大地提高了工作效率。书中详细讲解了Bash Shell的基础知识,包括变量、条件语句(如`if-else`)、循环结构(如`for`和`...

    Linux Shell高级技巧实战总结

    Linux Shell高级技巧实战总结 一、将输入信息转换为大写字符后再进行条件判断 二、为调试信息设置输出级别 三、判断参数是否为数字 四、判断整数变量的奇偶性 五、将Shell命令赋值给指定变量,以保证脚本的移植性 六...

    linux_shell实例精解

    Linux Shell是Linux操作系统中的一种命令解释器,它提供了一个用户与操作系统内核交互的界面,使得用户可以通过文本命令行执行各种操作。Shell脚本则是一种编程语言,它允许用户编写包含一系列命令的程序,实现自动...

    LINUX与UNIX SHELL编程指南

    呵呵,这真的是一本好书《LINUX与UNIX SHELL编程指南》 --------------------------------------------- 经典《Linux与UNIX Shell编程指南》 shell是一种完整的编程语言,易学易用;shell脚本可以使烦人的手工作业...

    最实用的Linux 命令行和shell脚本编程宝典

    最实用的Linux 命令行和shell脚本编程宝典,是最常用的参考手册。

    绝版经典《Linux与UNIX Shell编程指南》中文文字PDF版

    《Linux与UNIX Shell编程指南》是一本深受欢迎的IT技术书籍,主要涵盖了Linux和UNIX操作系统中的Shell编程技术。这本书在IT领域中具有很高的价值,尤其是对于那些致力于提升系统管理技能和自动化任务处理能力的读者...

    LINUX与UNIX SHELL编程指南(很全)

    第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号...

    运维常用linux命令\shell技巧

    ### 运维常用Linux命令与Shell技巧 #### 文件管理 - **创建空白文件**:`touch`命令可以用来创建一个空白文件或者更新已存在文件的时间戳。例如:`touch filename`。 - **删除非空目录**:使用`rm -rf`命令时需...

    Linux与Unix shell编程指南(完整高清版)

    ### Linux与Unix Shell编程指南知识点概述 #### 一、文件安全与权限 **知识点1:文件权限** - 文件权限用于管理文件的访问控制,确保只有授权用户能够读取、写入或执行文件。 - 权限分为三组:文件属主、同组用户...

    《linux与unix shell编程指南》

    Shell是Linux和Unix系统中的一个命令解释器,它允许用户通过命令行接口执行系统操作,编写自动化脚本,以及进行系统管理任务。本指南详细讲解了Shell的基础知识、高级特性以及实用技巧。 在本书中,读者将学习到...

    linux shell学习资料

    这本书可能会包含大量的实例,覆盖了系统管理、文件操作、网络通信等多个领域,使你在实践中学习和掌握Shell脚本编写技巧。 《Linux Shell从入门到精通》则是一本适合初学者的基础教程,它会从最基础的Shell概念讲...

    LINUX与UNIX SHELL编程指南(PDF)

    在Linux和Unix系统中,Shell不仅仅是一个命令解释器,更是一个强大的编程语言,它提供了丰富的控制结构,如循环、条件判断、函数等,使得用户能够编写出高效且灵活的脚本。这本书可能涵盖了以下重要知识点: 1. **...

    LINUX与UNIX SHELL编程指南.rar

    《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统中Shell编程的教程。Shell编程是操作系统用户与内核之间的桥梁,它提供了一种编写自动化脚本的方式,使得用户可以高效地管理和操控系统。这本书涵盖了从...

    LINUX与UNIX SHELL编程指南.zip

    《LINUX与UNIX SHELL编程指南》是一本深入探讨UNIX和LINUX环境下SHELL编程的专著,旨在帮助读者掌握SHELL脚本的编写技巧,理解UNIX系统的命令语法,并了解一些基本的系统管理知识。书中的内容丰富详实,不仅适合初学...

    linuxB-shell

    在Linux系统中,Bash(Bourne-Again SHell)是默认的命令解释器,是用户与操作系统交互的重要工具。Bash shell脚本是一种强大的编程语言,它允许用户编写自动化任务,执行日常管理任务,或者创建复杂的系统服务。...

    linux实验七 shell编程

    - **目标**:编写一个交互式的Shell脚本程序,模拟Linux下的菜单系统。 - **思路分析**: - 使用`clear`命令清空屏幕。 - 列出菜单选项并让用户选择。 - 根据用户输入执行相应的命令。 - **脚本实现**示例代码: ...

    Linux与UNIX Shell编程指南.rar

    本文将深入探讨Linux与UNIX Shell编程的基础知识,包括Shell的类型、基本命令、变量、流程控制、函数以及一些实用技巧。 首先,我们需要了解Shell的种类。在Linux和UNIX世界中,常见的Shell有Bash(Bourne Again ...

Global site tag (gtag.js) - Google Analytics