Linux使用命令记录

本文

主要对日常linux系统使用使用的命令进行记录,方便后续自己查找以及分享给需要的朋友。

版本 说明
0.1 初版发布

背景

  • 主机: Thinkpad S2
  • 系统: Deepin GNU/Linux 15.11
  • 内核: Debian 6.3.0-18+deb9u1

查看系统信息

  • 查看系统版本: “cat /etc/issue”
  • 查看内核版本(具体可以查看etc目录下关于系统和内核的文件内容):
    • RedHat内核: “cat /etc/redhat-release”
    • Debian内核: “cat /etc/debian_version”

查看命令是否存在

  • which perl
  • alias print_declare

head和tail

  • 读取前10行: head -n 10 file
  • 读取后10行: tail -n 10 file
  • 读取前200字符: head -c 200 file
  • 读取前200x512字符: head -c 200b file(200k=200x1024)
  • 读取动态文件末尾,适合动态输出的log文件:tail -f file.log
  • 读取中间内容,如读取101行到150行内容: cat file | head -n 150 | tail -n 50

批量重命名rename

  • 替换单个字符(小写变大写): rename ‘y/a-z/A-Z/’ * (替换表达式中y代表替换字符一一对应,即a替换为A,b替换为B… 最后*代表当前目录下所有文件,也可以*.v,代表所有带.v后缀的文件)
  • 替换特定字符串: rename ‘s/abc/123/’ * (替换表达式中s代表特定字符串替换,即abc替换为123,最后*代表当前目录下所有文件,也可以*.v,代表所有带.v后缀的文件)

常用命令之grep

grep命令功能是搜索文本中包含的字符串,常用方法如下:

  • grep “字符串” * 搜索当前目录下的所有文件,也可以使用 *.v 只搜索带.v后缀的文件(不包含子目录下的文件)
  • grep -r “字符串” * -r或-R可以递归搜索,也就是搜索包含子目录以及子子目录等中的所有文件
  • grep -i “字符串” * 忽略字符串中的大小写
  • grep -n “字符串” * 列出字符串所在文件的行号
  • grep实际使用中,由于某些特殊字符带有特殊含义,而在使用其本意时,需要结合转义字符\,比如字符串“**“,就需要加转义”\*\*“,不然会匹配成任意。

终极使用:我会将此命令定义别名为gg(将下面代码赋值到.bashrc即可),这样终端命令行使用gg来达到“搜索当前目录以及子目录下所有文件,显示行号,搜索字符高亮显示”功能,这对熟悉他人文档环境时很有用,能够快速定位到自己想要搜索的内容,更快的熟悉文档环境。

1
alias gg='grep --color=auto -rn'

常用命令之find

find是查找文件的命令,常用就是查找文件名为xx的文件,使用方法如下,这里就是在(.)当前目录及其子目录下查找带.c后缀的文件:

1
find . -name "*.c"

也可以搭配管道命令(可以理解为同时执行),如下命令指在 find . 结果中使用 grep搜索特定字符串:

1
find . | grep "文件名"

还可以使用参数-maxdepth来指定层级深度,我的终极使用,我会将此命令定义别名为ff(将下面代码赋值到.bashrc即可),这样终端命令行使用ff来达到“查找当前目录并设定搜索深度,比如1代表仅当前目录,带特定字符串的文件名”,使用方法如:ff 3 “*.c”

1
alias ff='ff() { find . -maxdepth $1 -name $2;}; ff'

文章原创,可能存在部分错误,欢迎指正,联系邮箱 cao_arvin@163.com。