hello! linux!

这两天,接触到了久违的linux,然后就被嫌弃了一波

因为之前很少操作liunx系统,分配的任务又是在linux上操作snmp采集,瞬间感觉自己和傻子一样,啥也不懂啥也不会。

在此记录下常用的liunx命令

cd命令

它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径

1
2
3
cd /root/home #进入home文件夹
cd ./tomcat #切换到当前目录下的tomcat目录
cd ../path #切换到上一级目录下的path文件夹

ls命令

查看文件与目录的命令,list之意

1
2
3
4
-l: 列数长数据串,包含文件的属性与权限数据等 ls -l也可以用ll代替
-a: 列出全部文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-h: 将文件容量以较易读的方式(GB,kB等)列出来
-R: 连同子目录的内容一起列出来(递归列出),等于该目录下的所有文件都会显示出来

grep命令

该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等
命令格式:grep [选项] ”模式“ [文件]

常用选项

1
2
3
4
5
6
7
8
9
10
11
-E:开启扩展(Extend)的正则表达式
-i:忽略大小写(ignore case
-v:只打印没有匹配的(invert),匹配的不打印
-n:显示行号
-w:匹配的文本只能是单词,而不能是单词的一部分。例如文本中由liker,而我搜的是like,就可以用-w,避免搜到liker
-c:显示有多少行被匹配到了,而不是显示被匹配到的内容,同时使用-cv显示有多少行没有被匹配到
-o:只显示被模式匹配的字符串
--color:将匹配的内容以颜色高亮显示
-A n:显示被匹配的字符串所在的行和其后的n行,after
-B n:显示被匹配的字符串所在的行和其前的n行,before
-C n:显示被匹配的字符串所在的行和其前后的n行,context

模式部分

可以直接输入要匹配的字符串

这个可以利用fgrep(fast grep)代替提高查找速度,例如查找hello.c文件中print的个数:fgerp -c “print” hello.c

使用基本表达式

  • . :任意一个字符
  • [abc] :匹配的字符,必须是abc中的一个
  • [a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。
  • [^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。
  • 对于一些常用的字符集,系统做了定义:
  • [A-Za-z] 等价于 [[:alpha:]]
  • [0-9] 等价于 [[:digit:]]
  • [A-Za-z0-9] 等价于 [[:alnum:]]
  • tab,space 等空白字符 [[:space:]]
  • [A-Z] 等价于 [[:upper:]]
  • [a-z] 等价于 [[:lower:]]

find命令

find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多
命令格式:find [PATH] [option] [action] (操作符、选项、测试表达式以及动作)

与时间有关的参数

1
2
3
4
-mtime n:搜索在n天之前的”一天内“被更改的文件
-mtime +n:列出在n天前(不含n天本身)被更改过的文件名
-mtime -n:搜索在n天之内(含n天本身)被更改过的文件名
-newer file:列出比file还要新的文件名

例如:find /root -mtime 0 :在当前目录下查找今天之内被改动过的文件

与文件权限及名称相关的参数

1
2
3
4
5
6
-name:查找文件名为name的文件
-size +/-size:找出比size还要大/小的文件,byte单位
-type type:查找文件类型为type的文件,type的类型一般由:一般文件(f)、设备文件(b、c)、 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p)
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755
-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示

例如:
find . -perm 0755 # 查找当前目录中文件权限的0755的文件
find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte

与用户或用户组名有关的参数:

-user name : 列出文件所有者为name的文件
-group name : 列出文件所属用户组为name的文件
-uid n : 列出文件所有者为用户ID为n的文件
-gid n : 列出文件所属用户组为用户组ID为n的文件
例如:
find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件

cp命令

命令格式:cp [option] [source] [dest](cp [选项] [源文件] [目标文件])
该命令用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下

1
2
3
4
5
-a:将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制

例如:
cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中

mv命令

命令格式:cp [option] [source] [dest](cp [选项] 源文件或目录 目标文件或目录)
该命令用于移动文件、目录或更名,move之意

1
2
3
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖  
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新

例如:
mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中
mv file1 file2 # 把文件file1重命名为file2

rm命令

该命令用于删除文件或目录,remove之间

1
2
3
-f :就是force的意思,忽略不存在的文件,不会出现警告消息  
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数

例如:
rm -i file # 删除文件file,在删除之前会询问是否进行该操作
rm -fr dir # 强制删除目录dir中的所有文件

tail命令(head与之相反)

命令格式:tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

1
2
3
4
5
6
-f:用于监视文件的增长
-c num:从num字节位置读取指定文件
-n:从num行位置读取文件
-m Number: 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number: 从 Number 表示的512字节块位置读取指定文件。
-k Number: 从 Number 表示的1KB块位置读取指定文件。

File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
tail可运行文件一般在/usr/bin/以下。
例如:
tali -f tomcat.log # 实时显示最新日志
tail -n 100 tomcat.log #显示最后100行数据
tail -n -100 tomcat.log #除了前99行不显示外,显示第100行到末尾行

https://blog.csdn.net/q357010621/article/details/80248611


-------------本文结束感谢您的阅读-------------
感觉文章不错,就赏个吧!
0%