您的位置:首页 > 运维架构 > Linux

linux shell

2015-06-20 10:13 411 查看

shell小技巧

什么是shell?
命令解析器,帮助人机交互的翻译官!
windows的桌面也是shell的一种!
Linux的shell有哪些
/etc/shells 记录该Linux安装了哪些shell。
B类 sh bash
C类 tcsh
shell不同,命令提示符不同
几乎所有linux缺省都是bash (Bourne-again Shell) ,非常适合于一些管理操作
一些比较老的unix,缺省都是sh

bash提供常用功能如下:

一、命令补全

使用Tab键
命令补全、文件名补全
如果不是唯一的,按两下Tab,全列出来

二、快捷操作

CTRL+C终止命令
CTRL+A光标到行首
CTRL+E光标到行尾
CTRL+U剪切光标前内容
CTRL+K剪切光标后内容
CTRL+Y粘贴剪切的内容
CTRL+L清理屏幕
CTRL+D注销登陆相当于exit和logout或者保存
CTRL+Z将进程在后台挂起 bg fg

三、命令历史

history 列出所有的命令(默认最多保存条数1000)
!序号 执行历史中第几个命令
!命令 执行最近的这条命令
按向上(或向下)箭头,翻出历史记录

四、命令别名

什么是别名?(类似快捷命令)
命令:alias (显示当前可用别名命令)
ls为什么可以显示颜色?因为是ls--color=tty的别名
可以看到 ll 是ls -l --color=tty的别名
添加一个别名(临时):
alias copy=cp 就可以用copy来复制文件了
如果有参数:
alias drm="rm -rf"
删除别名:
unalias copy

别名永久生效:在用户宿主目录 ~/.bashrc 文件中添加别名信息如:aliasvi=vim。
重启生效或者source ~/.bashrc及时生效

五、输入输出重定向

Shell对于每个进程预先定义了3个文件描述字
0标准输入 STDIN 键盘
1标准输出 STDOUT 显示器
2标准错误输出 STDERR
重定向,就是改变这个标准设备,不用键盘输入,不用显示器输出

输出重定向

> 或 >> 例:echo hello 直接显示到显示器 echo hello>test.txt 将输出重定向到test.txt ls -l /tmp>files.txt 将输出重定向到files.txt more files.txt 查看文件内容 把/website下大于100M的文件列表find /website -size +204800>/backup/100M+.file.list 追加,用 >>

输入重定向 (不从键盘输入内容了)
例:wall < /test/msg 从一个文件读取内容发广播 这样,就可以用计划任务,把一年的节日祝福语写上,到时自动发送

错误输出重定向

2> 或 2>> #描述字和符号间不许有空格 例:自动备份通常用计划任务在凌晨自动执行 cp -R /usr /backup/use2>>/bak.error 将错误信息,定向到一个文件中

实例:
ls/aaaaaa 2>ls.err 如果/aaaaa这个目录不存在,则将错误信息保存到ls.err中

这里面的2,就是前面讲的 Shell对于每个进程预先定义了3个文件描述字
0和1都可以省略,2不能省略了
ls -l >> outputfile 2>&1

六、管道连接符

将一个命令的输出,传送给另一个命令,作为另一个命令的输入,可以连接多个命令
用法:
命令1|命令2|命令3...

例:
ls-l /etc | more 文件太多,一次看不完,用more来查看 下一页:空格或f 下一行:回车 退出:q 或Q
ls-l /etc | grep init 只显示init相关的行
ls-l /etc | grep init | wc -l 查看init相关的有多少行,也就是包含init的文件有多少个

who| grep root 只显示root的登录信息

wc -l 统计文件有多少行 who | grep root| wc -l 查看root 用户登录了几次

七、命令连接符

; 不管执行是否成功,多个命令依次执行
例: pwd ; ls ; date

&& 前面执行成功,才执行后面的命令,如果第一个失败,则不执行第二个
write user1 < /home/jack/love.txt&& rm /home/jack/love.txt 情书发成功,就删除
ls && pwd 第一个成功后,将执行pwd命令

|| 前面执行失败,才执行后面的命令
write mary < /home/jack/love.txt ||mail mary< /home/jack/love.txt 情书发失败,则发邮件

`` 命令替换符

将一个命令的输出作为另一个命令的参数 命令1 `命令2`,命令1的参数,是命令2的执行结果 ls -l `whichtouch` 找到touch命令的路径,然后用ls查看属性 看起来有点类似管道,不过顺序相反,会先执行后面的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell 基础