一些linux命令学习(一)

写在前面

版本发完,正好有点空闲时间,所以整理一下linux常用命令,结果打开Linux命令大全,惊呆了,居然有这么多。记这么多命令,肯定记不住的也没必要,所以这篇就整理一下,一些工作中常用的命令。

sed命令

教程中对sed命令解释如下:

Linux sed命令是利用script来处理文本文件。
sed可依照script的指令,来处理、编辑文本文件。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

动作说明:
  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!

实践操作了一下,大致如下:
原文件内容


一些linux命令学习(一)_第1张图片
sed.png
sed  '1d'  111.txt  ---删除第一行
sed  '$d'  111.txt  ---删除最后一行
sed  '1,3d'  111.txt ---删除第一行到第三行
sed  '/ddff/d'  111.txt  ---删除包含ddff的行

sed  -n '1p'  111.txt  ---显示第一行(其他显示多行方法同删除)
sed  -n '/dd/p'  111.txt  ---列出所有包括关键字 dd 所在的行

sed  '1a  abcde'  111.txt ---第一行后增加  abcde  ,即第二行为 abcde
sed '1,3a  abcde' 111.txt  ---一到三行每一行后面增加一行 abcde)

sed '2i  first'  111.txt  ---在第二行上增加first,即新的第二行为first,原来的第二行变为第三行

sed  '1c  abd'  111.txt ---第一行替换为  abc
sed  '1,3c  abd'  111.txt ---第一行到第三行替换为  abc,这时候三行变为了一行

sed -i 's/aaa/bbb/g'  111.txt  ---将file中的 aaa 替换为 bbb
sed -i '2s/aaa/bbb/g'  111.txt  ---将file中第二行的aaa替换为bbb,如果第二行没有aaa也不会报错
sed -i '2,5s/aaa/bbb/g'  111.txt  ---将file中第二行到第五行的aaa替换为bbb

查看文件相关命令

  • cat 相关命令
cat  333.txt  ---打印文件内容
cat  -n  333.txt  ---打印文件内容并加上行号 (-b  则对空白行不编号),但是我试了没差,不知道是不是我文件的问题
cat -n 111.txt > 333.txt  ---将111.txt文件加上行号,复制到333.txt中
cat /dev/null >  333.txt  ---将333.txt文件清空
  • nl命令
    该命令较简单,基本同cat命令
nl  333.txt  ------打印文件内容并加上行号,同cat  -n  333.txt
  • more 和 less 命令
more file  ----一行一行翻动   点击space 下一页  b上一页  Enter 下一行 q 退出
less file  ----一行一行翻动   可以向上翻动, ctrl + F - 向前移动一屏,ctrl + B - 向后移动一屏,ctrl + D - 向前移动半屏,ctrl + U - 向后移动半屏
  • head和tail 命令
head file ----取出文件前几行    head -n20  代表取出几行
tail  file  ----取出文件后几行  -n20  取出20行  -f  持续输出

find命令

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

find / -name login.jsp   列出所有login.jsp的全目录(-iname会忽略大小写)
find . -name login.jsp   列出当前目录及子目录下login.jsp的文件全目录

对比一下结果,如下差异


一些linux命令学习(一)_第2张图片
find.png
find . -type f  列出当前目录及其子目录中所有一般文件
find . -ctime -2  列出当前目录及其子目录中所有2天内更新过的文件(如果2天以前,则改为 +2)
find . -mtime +2  列出当前目录及其子目录中所有更改时间在 2天之前的文件

反向删除文件

删除文件的命令很简单,rm -rf file就可以搞定,那么反删除怎么搞呢?

  • 方法一
shopt  -s  extglob  ---打开extglob模式
rm  -rf  !(file1|file2)---多个文件,删除除了file1和file2之外的所有文件
rm  -rf  !(file1)
一些linux命令学习(一)_第3张图片
extglob.png
  • 方法二
ls | grep -v 'file' ----列出文件名包含 file 的文件
rm  `ls | grep -v 'file'`  ----- 注意 ` 为 1左边的符号
一些linux命令学习(一)_第4张图片
rm.png
  • 方法三
ls |grep -v ‘file' |xargs  rm  -rf 
一些linux命令学习(一)_第5张图片
image.png

wc命令

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

个人在工作中这个命令用的比较少,上次见一个朋友提起过,顺便学习一下。

wc  file ----查看行数 单词数 字数
wc  -c  file---统计字节数   -l  统计行数                   
cat file |wc -l  ---只统计行数,不打印文件名
ls -l |wc -l   ----统计当前目录下的文件数

du命令

这个命令我平时也用的相对而言不是很多,一般磁盘空间不足的时候才会用到。

du命令用于显示目录或文件的大小。
du会显示指定的目录或文件所占用的磁盘空间。

磁盘空间了满了,我一般的检查方案如下:

1.du -sh /*   
先查看一下  哪个目录下的东西最多,若user文件夹较大
2.du -sh /usr/*
进入user文件夹查看
3.du -sh /usr/local/*
一层一层查看

一般是日志较多,删掉日志之后:
lsof |grep delete
重启数值较大的tomcat

性能相关的一些命令

个人对这一块相关的命令,理解的比较浅,所以不班门弄斧,就随便列几个

  • uptime
uptime  ---主要是一些当前时间、运行时间、用户数

load average是队列平均长度,在队列中等待执行的进程数量
该值越低,说明进程更有可能立即被CPU处理,相反越高,说明进程更有可能阻塞


uptime.png
  • top
    主要用来统计CPU实际使用情况
    第一行的信息和uptime出来的一样
    第二行是进程信息,总进程数、正在运行的进程数、睡眠的进程数、停止的进程数、僵尸进程(我也不太懂这个什么意思)
    第三行CPU信息
    第四行内存信息
    第五行交换区信息
    下面就是一些进程的信息,有进程号、父进程号、用户名等信息


    一些linux命令学习(一)_第6张图片
    top.png
  • free
    主要显示内存信息,和top出来的差不多


    free.png

结束

linux命令实在太多太多,死记硬背没有意义,一般的mv cp mkdir...等命令,这边没有介绍,还有很多没有涉及的高级的命令,后续在工作中用到了在进一步学习

你可能感兴趣的:(一些linux命令学习(一))