Linux 常用命令 初学者随笔

  由于个人长期在linux从事LOG分析工作,因此除了必要的代码书写以外,有时还会使用一些常用的shell命令,今天在这里书写一些常用的命令,方便以后自己查阅的同时,希望对同为初学者朋友们有些许帮助!

一、关键字

  显示:[ls、ll、cat]

  查找:[find、grep]

  常用功能:

    删除:rm

    拷贝:cp

    移动:mv

    创建文件夹:mkdir

    创建文件:touch

    打开编辑:vim

    路径显示:pwd

    计算文件的MD5:md5sum

    文件头操作:head

  逻辑操作:

    排序:sort

    去重:uniq

    大小写转换:tr

  文本处理工具:[awk、xargs]

  代码运行情况:[top、ps aux]

  注:命令块之间用管道分割 管道就是 |

二、细化解释

  • 显示
    • ls、ll: 最常用的查看文件夹中文件的命令ls横版展开,ll竖版展开  常用组合命令: ls [path] |wc -l 查看文件夹中文件个数(包括文件夹) [path] 为空即:ls |wc -l 查看当前文件夹文件个数(包括文件夹)
    • cat  : cat [file] 可以查看文件中的内容,有的内容很少,不需要vim打开查看时,用这个命令还是很方便的。当然cat更多的是配和其他命令进行文件操作。
  • 查找
    • find : 常用在通过文件名查找文件,命令为:find [path] -name [str],这里面-name可以不区分大小写,只需要写成-iname,[str]也可以批量查找,比如我们找文件加下的所有.c文件,可以用"*.c"
    • grep : 常用在文件内容方面的查找,命令为:grep [str] -rn [path|file],-r的作用可以显示所在文件的行数,方便我们去定位。
  • 常用功能
    • rm : 用在文件或者文件夹的删除:
      • 文件的删除  :rm [file]
      • 文件夹的删除 :rm [path] -r
    • cp : 用在文件或者文件夹的拷贝:
      • 文件的拷贝  :cp [file] [path]     例如
      • 文件夹拷贝  :cp [path] [path] -r   例如:cp /home/dir1 /home -r
    • mv : 用在文件或者文件夹的移动:
      • 文件的移动  :mv [file] [path]     例如:mv /home/dir1/file.log /home
      • 文件夹的移动 :mv [path] [path]     例如:mv /home/dir1 /home
    • mkdir:用在文件夹的创建:
      • 创建一个文件夹 :mkdir [dir_name]              例如:mkdir dir1
      • 创建一组文件夹 :mkdir -p [dir_name]/[dir_name]/...  例如:mkdir -p dir1/dir2
    • touch:用于文件的创建:
      • 创建一个文件 :touch [file_name] 例如:touch file1.log
    • vim:用于打开并编辑一个文件:
      • 打开文件:vim [file_name] 例如: vim file1.log
      • 打开文件后的操作:
        • i:vim进入文件后按i可以进入插入模式
        • w:文件写完后点击Esc退出插入模式,与此同时按冒号(:)在按w最后回车确定,就可以将我们插入的内容保存下来,在阻止我们保存的情况下我们可以在后面加个!再回车,可以强行保存
        • q:退出vim打开的文件,用法与w类似,加!可以强行退出.[注:wq可以一起使用,作用是保存并退出]
        • y:拷贝 非模式下双击Y可以拷贝一行
        • p:粘贴 
        • d:删除 非模式下双击D可以删除一样
        • vvim进入文件后按v可以进入视图模式
          • 试图模式下的常用操作:
            • Shift+G 进入文件最底部
            • gg 双击两下G 返回文件顶部
            • Shift+8 可以对相同变量向下追踪
            • Shift+3 可以对相同变量向上追踪
            • Shift+v 可以选中一行,
            • Ctrl+v 可以选中行开头,一般和Shift+i联合使用,将Ctrl+v选中的行都进行相同操作,更多用于在vim下代码格式的调节。[注:Shift+i操作一行后,点击Esc 下面的所有行将会和第一行做相同的相应]
            • 常用组合操作:
              • Shift+V->Shift+G|gg->d|s 大面积删除时候使用。[注:最后使用s可以直接进入插入模式]
              • Ctrl+v->上下选中要操作的行->Shift+i->操作(如:space)->Esc 整理代码格式使用.
    • pwd:显示当前所在的全路径
    • md5sum:计算文件的MD5  例如:md5sum file1.log
    • head:文件头部操作:
      • 常用在获取文件开头多少行: head -n [num] [file_name] 例如 :head -n 10 file1.log  ,也可以 head file1.log  默认显示10行
  • 逻辑操作
    • sort:常用于排序:
      • 常用命令按数值的大小进行排序:sort -n 例如:cat aa.log|sort -n
    • uniq:  常用于去重:
      • 常用命令显示重复个数:uniq -c 例如:cat aa.log|sort|uniq -c
    • tr: 常用于大小写转换:
      • 常用命令大写转小写:tr ‘[A-Z]‘ ‘[a-z]‘  例如:cat aa.log | tr ‘[A-Z]‘ ‘[a-z]‘ 
  • 文本处理工具:
    • awk:我常用于字符串分割,类似py里面的split
      • 常用命令:awk -F "标志" ‘{print $num}‘ 例如:cat aa.log|awk -F "," ‘{print $1}‘ 解释:将aa.log中的内容以逗号分隔 并打印出第一列的东西,还可以和grap配合,例如:grep -rn "," aa.log | awk -F "," ‘{print $1}‘ 解释:查找aa.log中所有带逗号的行并以逗号进行分割,打印第一列的内容
    • xargs:我常用于对文件的每一行进行操作,类似与for循环读取文件中的每一行
      • 常用命令:xargs -i  "命令" {}:例如:假设aa.log里面存放的是文件路径 cat aa.log|xargs -i mv {} ../ 解释将文件都移动到上一级目录,如果是MD5 cat aa.log |xargs -i  cp ./sample/{} ../ 解释 将sample目录下的所有MD5移动到上级目录
  • 代码运行情况:
    • top:查看当前linux系统资源占用情况
    • ps aux:可以查看当前linux系统都运行了那些进程

 

下面我列出一些常用命令组合:

查询文件内关键字的个数:
cat aa.log | grep "JS" | wc -l

字符串替换:
sed -i ‘s/原字符串/新字符串/g‘ ab.txt

找指定大小文件并拷贝到指定目录:
find -size -190k | xargs -i cp {} ../

挪指定文件到指定位置aa.log 中空格分割的第二列是路径
cat aa.log | grep "XML" | awk -F " " ‘{print $2}‘ | xargs -i mv {} ../

大小写转换
cat aa.log | tr ‘[A-Z]‘ ‘[a-z]‘ > bb.log

拆分文件
find ./sample -name ‘*‘ -type f | head -n 496 | xargs -i mv {} ./sample_1/

文本行去重并排序
sort bb.log | uniq -c | sort -rn > cc.log

文件循环查找关键字并追加到指定文件(-w 忽略大小写 -i全词匹配)
for line in $(cat yes_url.log);do cat top_url.log |grep -wi "$line$"; done|sort -rn|wc -l

按列算累加和
awk ‘{sum += $1};END {print sum}‘ test

获取目录下(包括子目录)所有文件的大小
find ./ -type f | xargs -i ls -lh {} | awk ‘{print $5}‘ > ../

获取两个文件不同的行:
cat aaa.txt bbb.txt | sort -r |uniq -u

bbb中存在,aaa中不存在
grep -wvf aaa.txt bbb.txt

 

Linux 常用命令 初学者随笔

上一篇:linux命令之set x详解


下一篇:关系数据库元数据处理类(一) 创建MSSQL元数据具体处理类