命令技巧
-
排序并去重
cat crms-jstack.txt |grep yinker |sort |uniq
-
grep查找字符串——只打印包含字符串的文件名
grep -l xxxx *
-
目录快速跳转
返回上一个目录:cd -
返回家目录:cd
或者cd ~
-
ls命令
列出所有的目录:ls -l | grep "^d"
统计文件个数:ls -l | grep "^-" | wc -l
-
cp命令
将a.txt复制到/haha目录下,并重命名为b.txt:$cp a.txt /haha/b.txt
cp带权限复制(即b.txt的权限同a.txt是一样的):$cp -a a.txt /haha/b.txt
-
用file命令查看文件的详细信息
如上图所示,可以看出doc文件其实就是一个zip文件。可以使用unzip命令将其解压(自己实验)
Bourne-Again shell script text executable:即Bash脚本文件(Bash是Bourne-Again shell的简写)
-
` df -Th |colunt -T ’
-
pgrep
&&pkill
命令可以直接将程序的进程号打印出来或者直接杀死相关进程,但是更推荐使用ps
+grep
+awk
+xargs
的组合命令 -
使用
mkdir
快速创建多个目录(写shell时将非常有用!)
mkdir -p test/{1,2,3,4,5,6,7}/{a,b,c,d,e,f,g}
mkdir -p /home/USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
-
使程序后台运行:
nuhup ... &
会将执行过程中的输出放在当前目录下的nohup.out文件中,如果文件不存在将自动创建。
例如:后台访问百度网址。nohup wget www.baidu.com &.
-
使用
-h
、-H
参数 来显示人们能直接看懂的文件大小(h是human的缩写,意思是人性化)。例如:
ls -lh
df -h
其中,-h表示以1024为单位来进位;-H表示以1000为单位来进位
可以写到环境变量里的技巧
- 让cd对大小写不敏感
bind "set completion-ignore-case on"
- 让history命令更加人性化
export HISTTIMEFORMAT="%d/%m/%y %T "
命令行下的快捷方式
ctrl+a
:移动光标到命令开头ctrl+e
:移动光标到命令结尾- 【注意】:上边的两个命令相当于
home
键和end
键,但是在linux的字符环境中,这两个键是不起作用的。 ctrl+u
:剪切光标之前的内容(删除内容,并放入linux的剪贴版)该命令在nslookup中也可以使用ctrl+k
:剪切光标之后的内容(删除内容,并放入linux的剪贴版)ctrl+w
:清除光标所在处之前的一个词(以空格、标点等为分隔符)ctrl+y
:粘贴linux剪贴板的内容- 【注意】:以上三个命令用到的剪贴板都是linux的剪贴板,就算用secureCRT连接上去,用的仍然是linux的剪贴板。
ctrl+r
:查找历史ctrl+c
:终止命令ctrl+l
:清屏,相当于clear命令ctrl+d
:退出登录,相当于logout命令或exit命令ctrl+s
:挂起当前shell(停止向屏幕输出,但是此时输入的命令仍然可以执行,只不过屏幕显示不出来而已)。ctrl+q
:启用挂起的shell(重新激活向屏幕输出)。ctrl+z
:转入后台运行(一般用nohup … & ,尽量不用Ctrl+z)- 【注意】:
ctrl+z
转入后台,当用户退出之后就会终止,所以这个命令不如nohup...&
好用。因为nohup...&
命令的作用就是用户退出之后进程仍然就绪运行。 ctrl+t
:交换光标前两个字符
!!
:执行上一条命令!-n
:倒数第N条历史命令!num
:执行命令历史列表的第num条命令!?string?
:执行含有string字符串的最新命令!-n:gs/str1/str2/
:将倒数第N条命令的str1替换为str2,并执行(若不加g,则仅替换第一个)
!!:p
:打印上一条命令!-n:p
:打印倒数第N条历史命令!num:p
:打印命令历史列表的第num条命令!?string?:p
:打印含有string字符串的最新命令
图形化界面中的快捷方式
ctrl+alt+backspace
:杀死图形化桌面,返回到登录屏幕ctrl+alt+delete
:强制重启 Red Hat Linux,只有在正常关机步骤不起作用时才使用这种方法ctrl+alt+fn
:切换屏幕。F1~F6 是 shell 提示屏幕,F7是图形化屏幕clt+tab
:在图形化桌面环境中切换任务(同Windows系统)
其他技巧
- linux下如何处理包含空格和特殊字符的文件名
- 不需要特殊对待,当作普通文件随意处理:问号 (?)、等号 (=)、方括号 [ ]、花括号 {}、冒号 (😃、下划线 (_)、起始符(^)、小老鼠 (@)、百分号 (%)、加号 (+)、逗号 (,)、波浪号 (~)
- 用单引号括起来或使用反斜杠转义:星号 (*)、叹号 (!)、与符号(&)、括号 ()、尖括号 <>、美元符 ($)、反斜杠 ()、空格、井号(#)
- 破折号(-):使用绝对路径或着“–”
touch -- -abc.txt
或者touch ./-abc.txt
- 引号(单引号和双引号):反斜杠转移或交替规则(如果你需要在文件名里使用单引号,那就用双引号把文件名括起来。而如果你需要在文件名里使用双引号,那就用单引号把文件名括起来)
- 点(.):无需特殊处理,只是查看时需要用ls -a 才能看到
- 通配符的使用,一般用于ls命令
例如:ll -h *stu?[0-9][!1-9]
注意:ls是可以使用通配符的。但是需要注意,如果使用的是ll,则不要忘记考虑文件属性所占的字符,因此,最前面加*
通配符具体含义:
*:匹配文件名中的任何字符串,包括空字符串
?:匹配文件名中的任何单个字符
[]:匹配[]内的任何字符
[!]:匹配[]内感叹号后边字符之外的字符 - 上传下载(已经不是最好的办法了,最好的办法是直接使用securecrt自带的sftp工具)
软件包:lrzsz-0.12.20.tar.gz
sz:将选定的文件发送(send)到本地机器。
rz:从本地选择文件上传到服务器(receive)
默认下载到本地secureCRT安装目录下的download目录下。可以通过设置更改下载目录。
修改下载文件保存位置:选项->会话选项->X/Y/Zmodem,可设置上传下载目录 - 管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入
使用方法:命令1 | 命令2 | 命令3 | ... | 命令n
管道与grep命令配合使用,可以大大提高效率。
使用举例
ls -Rl /etc | more
/etc目录下文件太多,这个命令实现了分页显示;先将/etc下所有文件名查出来,然后让more来执行。
cat /etc/passwd | wc
统计/etc/passwd的字数;先查询出passwd文件的内容,然后让wc来执行
cat /etc/passwd | grep kxsh
查找用户kxsh的信息
man bash | col -b >bash.txt
- 重复执行一个命令,知道它运行成功
在下面这个示例中,>/dev/null 2>&1 会让程序的输出重定向到 /dev/ null。标准错误和标准输出都会被包含进去。