写于:2014-06-08	更新于:2015-08-05

快速备份一个文件 $ cp filename{,.bak} 快速重命名目录中的文件。 $ ls | xargs -I {} mv {} {}.bak -I 选项告诉 xargs 把管道符前的命令输出结果赋值给谁,即赋值给 {} bash提示符下命令快捷键 重复执行上一条命令: !! 重复执行第 n 条命令: !n 重复执行倒数第 n 条命令: !-n 最近一条以str开头的命令:!str 执行最近一条包含str的命令:!?str 逆向搜索包含输入字符串的命令: Ctrl+r ,继续按 Ctrl+r,继续搜索,可使用 Ctrl+c 中断命令 调用上一条命令的的第一个参数: !^ 调用上一条命令中的最后一个参数: !$ 调用上一条命令的所有参数: !* 调用上一条命令的第 n 个参数: !:n 调用上一条命令的命令名称,不带参数: !:0 或者 !# 在终端中的光标处调用历史命令中的最后一个参数,按一次就往上一条命令调用一次:"Alt+."或者"Esc+." 将上一条命令中第一次出现的 a 替换成 b 并执行:!:gs/a/b 将上一条命令中所有的 a 替换成 b 并执行,包括命令名称中的a和参数中的a:^a^b 执行一个命令,但不保存在命令历史记录里,即命令前加空格:"space"command 清屏: Ctrl+l 重新初始化终端:reset 剪切光标所在处之前的所有字符 (不包括自身): Ctrl + u ,常用于删除当前光标前的所有字符 剪切光标所在处之后的所有字符 (包括自身) : Ctrl + k ,常用于删除当前光标后的所有字符 剪切光标所在处之前的一个词 (以空格、标点等为分隔符): Ctrl+w 粘贴: Ctrl+y 将光标所在处的单词转为大写 (从光标处到词的结尾): Alt+u 将光标所在处的单词转为小写 (从光标处到词的结尾): Alt+l 光标移动到开头: Ctrl+a 光标移动到结尾: Ctrl+e 光标向右移动一个单词(以空格、标点等为分隔符): Alt+f 光标向左移动一个单词(以空格、标点等为分隔符): Alt+b 进入其他目录运行一个命令后自动返回当前工作目录,只需将命令放到一个圆括号里 [sman@diagmap:~]$ (cd /Develop/ && ls -1) Slackware/ MariaDB/ android/ apache-tomcat-6.0.43/ apache-tomcat-7.0.59/ apache-tomcat-8.0.20/ eclipse/ jdk1.7.0_51/ jdk1.8.0_40/ workspace/ [sman@diagmap:~]$ xfce桌面环境中最大化一个窗口或者还原窗口的快捷键是:Alt + F10 网络诊断实用命令mtr结合了traceroute+Ping:mtr www.mnxnm.com 以更加清晰的方式显示当前系统挂载的文件系统:mount | column -t 获取你的外部IP地址:curl ifconfig.me 在以普通用户打开的vim当中保存一个root用户文件 :w !sudo tee % 常常忘记了sudo就直接用vim编辑/etc内的文件,等编辑好了保存时才发现权限不够, 一般方法是先保存个临时文件,提权后再cp过去。实际上在vim里面可以用上面这条命令搞定。 vim的命令:w!{cmd}会让vim执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin传入。 tee是一个把stdin保存到文件的小工具, 而%,是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。 执行这条命令,就相当于从vim外部保存了这个文件 如果您不知道某个特殊任务所需的命令, 您可以用 man -k 后加一个相关主题来生成 可能 的命令 如,笔记本的触摸板在打字时很碍事,有什么好的办法解决呢,使用命令 man -k touchpad 得到 sman@diagmap:~$ man -k touchpad synaptics [] (4) - Synaptics touchpad input driver syndaemon [] (1) - a program that monitors keyboard activity and disables the touchpad when the keyboard is being used 可以看到syndaemo正好解决了我们的烦恼 字符表示: rwx r-x r-- 二进制表示: 111 101 100 八进制表示: 7 5 4 将file2的权限完全按照 file1 的权限/所有者/用户组进行更改时使用--reference参数 chmod/chgrp/chown --reference file1 file2 stat查看文件的详细信息,包括文件大小,文件占用的块数,GID ,UID,权限的八进制表示,文件被访问的时间,被修改的时间,文件状态被更改的时间a 以列表形式显示文件和目录,使用ls的 -1 选项(数字 1,不是字母 "l")。 $ ls -1 admin apex assistants 以树形结构显示文件和目录,使用命令 tree 记录当前路径下的文件信息,以便后期查看其变动 记录每个文件的文件类型信息 find . -type f -exec file {} \; > ../filetype.list 记录每个文件的sha1值 find . -type f -exec sha1sum {} \; > ../sha1.list 检查当前路径下的文件是否有改动 sha1sum -c ../sha1.list date +%F_%H:%M:%S 格式化输出时间 用命令 xxd 75441 直接查看偏移75441处的16进制数据 which -i ls -i该选项显示别名以及可执行文件,默认显示可执行文件在路径中的首次出现。如果可执行文件位于路径的多个目录中,则忽略其后的出现。可以通过 -a 选项查看可执行文件的所有出现位置。 string' 单引号 (single quote) 被单引号用括住的内容,将被视为单一字串,被视为一般符号处理,阻止通配符扩展,防止任何变量替换。也就是说,在引号内的代表变数的$符号,没有作用。 heyyou=homeecho '$heyyou' # We get $heyyou "string" 双引号 (double quote) 被双引号用括住的内容,将被视为单一字串。它阻止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。 heyyou=home echo $heyyou 得到 home `command` 倒引号 (backticks) 单引号和双引号括住的是字串,但如果该字串是一列命令列,则命令列不会执行。要让命令列执行,就用倒单引号来括住。 fdv=`date +%F` echo "Today $fdv" 在倒引号内的 date +%F 会被视为指令,执行的结果会带入 fdv 变数中。 $(command) 表示取出括号中命令运行的结果 ,效果与`command`一样