Shell命令行操作

            </div>
        
                </div>
                                                
                                    <div id="content_views" class="markdown_views prism-atom-one-dark">
                <!-- flowchart &#31661;&#22836;&#22270;&#26631; &#21247;&#21024; -->
                <svg xmlns="http://www.w3.org/2000/svg">
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block"></path>
                </svg>
                                        <h1 id="shell提示符"><a name="t0"></a><a></a>shell提示符</h1>

[me@linuxbox ~]$

如果最后一个字符是"#",表示当前终端会话有超级用户权限。使用root用户登录或者使用能提供超级用户权限的终端能获得该权限。

提示符由名为PS1(prompt string 1)的环境变量定义。

自动补齐

自动补齐可以应用于路径名、变量(以$开头的单词)、用户名(以~开头)、命令(单词时命令行第一个单词)、主机名(单词以@开头,只对/etc/hosts下的主机名有效)

命令作用
Alt-$显示所有可能项。等价于按两次Tab
Alt-*插入所有可能匹配项

命令行历史

history命令直接输出历史记录,默认500个。

历史记录命令

命令作用
Ctrl-P移动到前一条历史记录,等于上箭头
Ctrl-N移动到后一条历史记录,等于下箭头
Alt-<移动到历史记录开始处
Alt->移动到历史记录末尾处,即当前命令行
Alt-P非递增搜索。输入搜索串后键入Enter才开始搜索
Alt-N向前非递增搜索
Ctrl-O执行历史记录项,执行完后跳到下一项。用于执行一系列历史记录
Ctrl-R逆向递增搜索历史记录;搜索时查找下一个匹配项
Ctrl-J把搜索内容复制到当前命令行(按左右方向键也能复制,若按Enter会立即执行命令)
Ctrl-G或C退出搜索
!!重复最后一个命令,等价于上箭头+Enter
!number执行历史记录第number行的命令
! string执行最近的以string开头的历史记录
!?string执行最近的包含string的历史记录

复制粘贴

*不能用Ctrl-c 和Ctrl-v

复制粘贴
鼠标左键选择文本(或双击选择单词)鼠标中键
Ctrl-Shift-cCtrl-Shift-v
Ctrl-InsertShift-Insert

虚拟终端

命令作用
Ctrl-Alt-F1 ~ F6由图形桌面系统切换到1~6号虚拟终端
Alt-F1 ~ F6在1~6号虚拟终端之间切换
Alt-F7由虚拟终端回到图形桌面系统

通配符

称为wildcards或globbing,用于匹配一组文件名。可与任意一个使用文件名做参数的命令一起使用。
注意:谨慎使用字符范围表示法[A-Z][a-z]

通配符匹配项
*匹配任意多个字符(包含0个)
?匹配任意一个字符(不包含0个)
[characters]匹配任意一个字符集内字符
[!characters]匹配任意一个不属于字符集内字符
[[:class:]]匹配任意一个字符类内字符
字符类说明
[:alnum:]字母集或数字集
[:alpha:]字母集
[:digit:]数字集
[:lower:]小写字母集
[:upper:]大写字母集

重定向

linux提供标准输入”0”,标准输出”1”,标准错误”2”。
“>”:将标准输出重定向到文件中,会先清空原文件内容
  使用 “> filename”会删除文件的内容
“<”:将文件内容作为标准输入读入命令
“>>”:将标准输出重定向到文件中,使用追加模式
“|”:管道,将上一个命令的标准输出作为下一个命令的标准输入

同时重定向标准输出和标准错误:
  command > file 2>&1
  或新版bash支持的 command &> file
  标准错误的重定向发生在标准输出重定向之后,所以command 2>&1 >file是错误的。
忽略输出:将输出或标准错误重定向到文件/dev/null。
  忽略所有输出:command > /dev/null 2>&1
  忽略错误:command 2> /dev/null

命令行扩展

每次shell命令执行前都会进行扩展(expansion)。通过echo可以简单验证扩展后的结果。这些扩展包括:

  • 路径名扩展(使用通配符)
  • 波浪线扩展(~或~user,扩展为用户的主目录)
  • 算术扩展,$((expression)),注意都是整数运算,支持四则和取余”%”,取幂”**”,忽略空格
  • 花括号扩展
      $ echo {1..5}   输出 1 2 3 4 5
      $ echo {G..A}  输出  G F E D C B A
      $ echo {A{1, 2}, B{3, 4}}  输出  A1 A2 B3 B4
  • 参数扩展,如$PATH等参数
  • 命令替换,如$(ls)或`ls`

引用

引用可以避免Shell扩展。引用包含双引号的弱引用和单引号的强引用。

  • 弱引用:部分特殊字符失去特殊含义,保留美元符号”$”,反斜线”\”,反引号”`”。因此,单词分隔、路径名扩展、波浪线扩展和花括号扩展失效。参数扩展、算术扩展、命令替换依然有效。
  • 强引用:抑制所有扩展。

转义字符”\”:在弱引用中输出”$”、”\”、”`”或输出转义字符”\n”等。在命令行中消除shell特殊字符的含义,如”$”、”!”、”&”、空格

shell快捷键

光标移动

组合键作用
Ctrl-A光标到行首
Ctrl-E光标到行尾
Ctrl-F前移一个字符,等价于右箭头
Ctrl-B后移一个字符,等价于左箭头
Alt-F前移一个字,定位到字后
Alt-B后移一个字,定位到字首字母
Ctrl-L清屏并移动光标到行首,等价于clear

修改文本

组合键作用
Ctrl-D删除光标处字符
Ctrl-T光标处字符和前面字符对调
Alt-T光标处字和前面的字对调
Alt-L从光标到字尾变小写
Alt-U从光标到字尾变大写

剪切(killing)和粘贴(yanking)

被剪切内容存在成为kill-ring的缓冲区

组合键作用
Ctrl-K剪切从光标到行尾
Ctrl-U剪切从光标到行首
Alt-D剪切从光标到当前词尾
Alt-Backspace剪切从光标到词头,若已在开头,剪切前一个单次
Ctrl-Y粘贴
                                </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值