Shell 应用技巧

Shell是一个命令解释器,是在内核之上和内核交互的一个层面。

Shell有很多种,我们所使用的的带提示符的那种属于/bin/bash,几乎所有的linux系统缺省就是这种shell,很方便做一些管理,通常使用这种shell。

bash应用技巧

命令补齐

命令补齐允许用户输入文件名或命令名起始的若干个字母后,按<Tab>键补齐文件名,命令名,若以此开头的文件名或命令名不唯一,则按一下tab键没反应,按第二下列出所有。若唯一则直接补全。

命令历史

命令历史允许用户浏览先前输入的命令并重新调用他们,用history命令可以显示命令列表,!+命令数字可执行,按方向键 ↑和↓可以找到以前执行过的命令

Clear清屏 ctrl+l(快捷键)

Ctrl+u  删除光标前所有字符

命令别名

命令别名定义:

范例:alias  copy=cp

alias  xrm=“rm  -r”

命令直接写,有选项参数的带双引号

查看别名信息:alias

删除别名信息:unalias copy

可以使操作更简单容易

alias直接列出别名

每个用户自己定义的别名只能自己使用。

输入/输出重定向

同标准I/O一样,shell对于每一个进程预先定义3个文件描述字(0,1,2,)。分别对应于:

0 (STDIN) 标准输入 键盘

1 (STDOUT)标准输出  显示器

2 (STDERR)标准错误输出 显示器

重定向表示输入不是从键盘,输出不是从显示器,标准错误输出不是从显示器

>或>>  输出重定向

范例:ls  -l   /temp>/tmp.msg   重定向到根目录下tmp.msg中

Date >> /tmp.msg

错误输出重定向

范例:cp -R /usr/backup/usr.bak 2>/bak.error

所谓重定向,就是把原本显示在显示器上的内容输出到文件中。

date查看系统当前时间

>会将文件内容清空,这可能不是我们想要的。

于是我们可以用>>可以追加

输入重定向是指不是从键盘输入,而是从其他地方输入

错误输出重定向

范例:cp -R /usr/backup/usr.bak 2>/bak.error

Usr(unix系统资源,十分重要,有时需要备份,此条命令执行备份,若出错将2写入bak.error,成功什么都不做)

2是什么鬼?

其实0> 0>>  1<   这是输入,输出重定向的标准写法,0,1都可省略。

2>  此时2不可省略,若省略则和输出重定向一样了

管道

管道:讲一个命令的输出传送给另一个命令,作为另一个命令的输入

使用方法:命令1|命令2|命令3.....|命令n

范例:

ls -l /etc | more  分页浏览前边命令执行的结果,空格翻页,回车翻行,q退出

ls -l /etc | grep init  提取与关键词相关的行,并将其列出来

ls -l /etc | grep init | wc -l  在目录etc下包含init的文件有多少个

管道的作用就是让几个简单的命令发挥很大的作用

wc -l 文件名  显示此文件有多少行

命令连接符

用;间隔的各命令按顺序依次执行,比如在写系统的计划任务时,让几个命令在后台依次执行。编译内核时就是敲那几个命令,几个命令间隔时间长,此时便可用;使之依次执行,再加个错误判断,将错误写到日志里。

&&

Command1 && comand2

成功         执行

失败         不执行

前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,它后面的命令才被执行

||

Command1 || command2

成功        不执行

失败         执行

前后命令的执行存在逻辑或关系,只有||前面的命令执行失败后,他后面的命令才被执行

命令替换符

命令替换:讲一个命令的输出作为另一个命令的参数

格式为:命令1  ‘命令2’(键盘数字一左边的小撇)

范例:ls -l ‘which touch’

shell应用技巧的更多相关文章

  1. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

  2. Shell 小技巧

    Shell 小技巧 ${} 的使用 截断变量 去掉左边 使用 # (最短匹配)或 ## (最长匹配)方法为 ${var#<模式>} var=DUMMY echo ${var#*M} # M ...

  3. Linux Shell常用技巧(目录)

    Linux Shell常用技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html一. 特殊文件: /dev ...

  4. Linux常用命令(第二版) --Shell应用技巧

    Shell应用技巧 小技巧: 1.命令补全功能: <Tab>键 2.清屏: Ctrl+l 3.删除光标前所有内容: Ctrl+u 4.命令历史记录: history 这时:  !histo ...

  5. Shell 常用技巧

    Shell 常用技巧 echo $RANDOM | cksum | cut -c - openssl rand -base64 | cksum | cut -c - date +%N | cut -c ...

  6. 6条shell小技巧,让脚本显得不再业余【转】

    如何能让自己的shell显得不那么业余?下面6点实践一定有用. 画外音:本篇文章源自Google的一篇实践,抽取了部分1分钟能读完的内容,加入了一些分析. 一.以下面的语句开场 set -o noun ...

  7. Linux_CentOS常用命令和shell命令技巧

    Linux_CentOS常用命令 关机 init 重启 init 列出当前目录的下的文件 ls //列出当前目录下的文件 ll //列出当前目录下的文件信息 等同ls -l 命令 切换目录 cd 目录 ...

  8. [转帖]Linux Shell常用技巧(五)

    Linux Shell常用技巧(五) https://zhuanlan.zhihu.com/p/73451771 1. 变量:在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可 ...

  9. [转帖]拿小本本记下的Linux Shell常用技巧(一)

    拿小本本记下的Linux Shell常用技巧(一) https://zhuanlan.zhihu.com/p/73361101 一. 特殊文件: /dev/null和/dev/tty Linux系统提 ...

随机推荐

  1. LeetCode 19 Remove Nth Node From End of List (移除距离尾节点为n的节点)

    题目链接 https://leetcode.com/problems/remove-nth-node-from-end-of-list/?tab=Description   Problem: 移除距离 ...

  2. Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGBitmapinfo' (aka) 'enum CGBitmapInfo')

    The constants for specifying the alpha channel information are declared with the CGImageAlphaInfo ty ...

  3. MySQL的btree索引和hash索引的区别 (转)

    Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-T ...

  4. Python 基础知识(一)

    1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...

  5. tomcat使用中的积累

    一.清理tomcat缓存 项目运行出错,如:找不到某个类或方法,可能是没有部署好,而不是项目本身的问题.这个时候要重新部署.tomcat有缓存,所以有时候需要清理tomcat缓存再重新部署. 常用的几 ...

  6. java 多线程研究:锁的概念

    java多线程:锁 java的多线程中的锁是干嘛的呢?在网上找了很多博客,大都是很专业的语言,让我一时间摸不着头脑.下面分三个部分来总结多线程中的锁的概念. 一,基础概念: 多线程在运行的时候可能会遇 ...

  7. 微信都在用的移动敏捷测试方法和工具|视频+PPT

    本文是腾讯优测总监雷彬在MPD2016 北京站上的演讲视频.他详细讲述了腾讯多年来在实践敏捷研发过程中测试的优化之路,为测试角色(包括测试工程师和开发自测)提供敏捷作业的思路.点击此处观看视频.时长5 ...

  8. 线程池和进程池的通用写法 ProcessPoolExecutor 和 ThreadPoolExecutor

    import time from comcurrent.futures import ThreadPoolExecutor,ProcessPoolExccoutor#这个方法可以用进程池或者线程池 d ...

  9. Linux crontab下关于使用date命令和sudo命令的坑

    想要在root 的crontab里面加一些任务计划,希望以www用户运行命令,并且将输出重定向到某处以当时时间命名的日志文件,大致如下 /usr/bin/sudo -u www /usr/local/ ...

  10. inaccessible

    $w = (object)array('key0'=>'a','key1'=>'b',0,1,2,0=>'0w',1=>'1w','11'=>'11str'); var_ ...