linux总结-常用命令(2)

ls命令

ls命令为list的缩写。通过ls命令可以查看Linux文件夹中包含的文件及其文件权限(包括目录、文件夹、文件权限)、目录信息等等。

ls [选项] [目录/文件]

选项:

  • -a :列出目录所有文件,包含以.开始的隐藏文件
  • -A :列出除.及..的其它文件
  • -r  :反序排列
  • -t  :以文件修改时间排序
  • -S :以文件大小排序
  • -h :以易读大小显示
  • -l  :除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

本章后继提及的命令均可以通过下列几个通用选项参数查看命令相关信息。

--help 查看该命令的帮助文档

--version 显示版本信息。

实例:

按大小反序显示文件详细信息

ls -lrS

列出当前目录中所有以"s"开头的目录的详细内容

ls -l t*

 ls -l命令也可以直接使用 ll 命令查看,效果相同。

cd命令

cd命令用于实现目录跳转。

cd [目录名]

实例:

1:进入根目录

cd /

2:入 "home" 目录

cd ~

3:把上个命令的参数作为cd参数使用

cd !$

4:进入上一次工作路径

cd -

5:返回上一级目录

cd ..

 除了上述命令外也可使用绝对路径相对路径访问对应的目录文件。

linux总结-常用命令(2)_第1张图片

 

pwd命令

pwd命令用于查看当前工作目录路径。

实例:

1:查看当前路径

pwd

2:查看当前目录的绝对路径 (注意大写P

pwd -P

linux总结-常用命令(2)_第2张图片

mkdir命令

mkdir命令用于创建文件夹。

mkdir [选项] [参数]

选项:

  • -m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
  • -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

实例:

1:当前工作目录下创建名为 csc 的文件夹。

mkdir csc

2:在 tmp 目录下创建路径为 user/csc 的目录,若不存在,则创建。

mkdir -p /tmp/user/csc

3: 当前工作目录下创建名为 w3cschool 的文件夹,并设置只有文件主拥有读、写和执行权限,其他人无权访问。

mkdir -m 700 w3cschool

rm命令

删除一个目录中的一个或多个文件或目录。

如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

rm [选项] [文件]

选项:

  • -d: 删除可能仍有数据的目录 (只限超级用户)
  • -f : 略过不存在的文件,不显示任何信息
  • -r : 同时删除该目录下的所有目录层
  • -v :详细显示进行的步骤
  • -i : 进行任何删除操作前必须先确认,同时删除多个文件时每个文件都会提醒确认操作。
  • -I : 同时删除多个文件(大于3个)时,只提醒一次。

实例:

1:删除任何.log格式的文件,-i 删除前逐一提醒确认操作。

rm -i *.log

linux总结-常用命令(2)_第3张图片

2:删除csc目录中的子目录及子目录中所有的档案。

rm -r csc

3:删除csc目录中的子目录及子目录中所有的档案,并且不用逐一确认。

rm -rf csc

4:删除以 -r 开头的文件(下列用法可避免-r被识别为选项,同理可应用于其他场景)

rm -- -r*

 

rmdir命令

从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。

 注意:不能删除非空目录

rmdir [选项] [目录]

选项:

  • -p:递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。

实例:

1:当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除:

rmdir -p parent/child/boy

mv命令

mv命令使用方法比较特殊。

1:将源文件名改为目标文件名(改名)

mv [文件名] [文件名]

2:将文件移动到目标目录(移动文件)

mv [文件名] [目录名]

3:目标目录已存在,将源目录移动到目标目录,目标目录不存在则改名。(移动目录或者改名)

mv [目录名] [目录名]

实例:

1:将文件 test.log 重命名为 test1.txt

mv test.log test1.txt

2:将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中

mv log1.txt log2.txt log3.txt /test3

3:将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖

mv -i file1.txt file2.txt

4:移动当前文件夹下的所有文件到上一级目录

mv * ../

cp命令

将源文件复制至目标文件,或将多个源文件复制至目标目录。

 注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!

cp [选项] [参数]

选项:

  • -i:提示
  • -r:复制目录及目录内所有项目
  • -a:复制的文件与原文件时间一样

实例:

1:复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。

cp -ai a.txt test

2:为 a.txt 建议一个链接(快捷方式)

cp -s a.txt link_a.txt

2、磁盘管理的常用命令

df命令

显示磁盘空间使用情况。

获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。

默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。

df [选项] [参数]

选项:

  • -a,--all:包含所有的具有 0 Blocks 的文件系统
  • -B,--block-size={SIZE}: 使用 {SIZE} 大小的 Blocks
  • -h,--human-readable:使用人类可读的格式(预设值是不加这个选项的...)
  • -H,--si:很像 -h,但是用 1000 为单位而不是用 1024
  • -i,--inodes:列出 inode 资讯,不列出已使用 block
  • -k,--kilobytes:就像是 --block-size=1024
  • -l,--local:限制列出的文件结构
  • -m,--megabytes:就像 --block-size=1048576
  • -P,--portability:使用 POSIX 输出格式
  • -t,--type=TYPE:限制列出文件系统的 TYPE
  • -T,--print-type:显示文件系统的形式
  • -x,--exclude-type=TYPE:限制列出文件系统不要显示 TYPE

实例:

1:显示文件系统的磁盘使用情况统计数据:

df

linux总结-常用命令(2)_第4张图片

 第一列指文件系统的名称;第二列指该文件系统的总内存(以1K为单位);第三列为已用内存;第四列为可用内存;第五列为内存已使用量百分比;最后一栏指该文件系统的挂载点(所在目录)。

2:查看总量统计信息

df --total 

linux总结-常用命令(2)_第5张图片

 注意最后一行出现了一条总量统计信息。

3:显示所有磁盘空间占用情况

df -h

linux总结-常用命令(2)_第6张图片

 可见原先以K为单位的计量变为了更易读的G、M、K单位。

4:将 /etc 底下的可用的磁盘容量以易读的容量格式显示

df -h /etc

du命令

du命令用于显示目录或文件的大小。

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

du [选项] [文件或目录名称]

选项:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -c :除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;

实例:

1:只列出当前目录下所有文件夹容量(包含隐藏文件夹):

du

linux总结-常用命令(2)_第7张图片

显示所有目录占用空间,包括以 . 开头的隐藏文件,最后一行显示该目录总的空间占用量。

2:检测根目录下每个目录占用容量(以G/M/K显示容量)。

du -smh /*

linux总结-常用命令(2)_第8张图片

fdisk命令

fdisk用于创建和维护分区表,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。

fdisk [必要参数][选择参数]

必要参数:

  • -l 列出素所有分区表
  • -u 与"-l"搭配使用,显示分区数目

选择参数:

  • -s<分区编号> 指定分区
  • -v 版本信息

菜单操作选项:

  • m :显示菜单和帮助信息
  • a :活动分区标记/引导分区
  • d :删除分区
  • l :显示分区类型
  • n :新建分区
  • p :显示分区信息
  • q :退出不保存
  • t :设置分区号
  • v :进行分区检查
  • w :保存修改
  • x :扩展应用,高级功能

实例:

1:列出所有分区信息

fdisk -l

linux总结-常用命令(2)_第9张图片

2:找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息(组合使用,注意图片中的细节提示)

linux总结-常用命令(2)_第10张图片

通过输入m,可以查看菜单命令介绍。(上方也有罗列介绍)

linux总结-常用命令(2)_第11张图片

如果要退出可以输入 q,则退出并不保存应用。反之如果输入 则退出且保存并应用操作。(注意别用错了~)

chgrp命令

chgrp命令用于变更文件或目录的所属群组。

Linux系统中,文件或目录权限的掌控由拥有者及所属群组来管理。

可以使用chgrp指令去变更文件与目录的所属群组,参数以群组名称或群组识别码皆可。

chgrp [选项] [属组名] [文件名]

选项:

  • -c或--changes :效果类似"-v"参数,但仅回报更改的部分。
  • -f或--quiet或--silent :不显示错误信息。
  • -h或--no-dereference :只对符号连接的文件作修改,而不更动其他任何相关文件。
  • -R或--recursive :递归处理,将指定目录下的所有文件及子目录一并处理。
  • -v或--verbose :显示指令执行过程。
  • --reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

实例:

1:改变文件的群组属性,将csc文件由root组改为bin组。(可通过ll命令查看文件属性)

chgrp -v bin csc

linux总结-常用命令(2)_第12张图片

2:根据指定文件改变文件的群组属性(将w3cschool目录的所属组改为跟csc目录一致)

chgrp --reference=csc w3cschool

linux总结-常用命令(2)_第13张图片

chown命令

chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件以空格分开的要改变权限的文件列表,支持通配符。 

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

chown [选项] [user][:[group]] [文件]

选项:

  • -c :显示更改的部分的信息
  • -f :忽略错误信息
  • -h :修复符号链接
  • -v :显示详细的处理信息
  • -R :处理指定目录以及其子目录下的所有文件

参数:

  • user :新的文件拥有者的使用者 ID
  • group :新的文件拥有者的使用者组(group)

实例:

1:将文件 csc 的属主设置为 boy,属组设置为 bin :

chown boy:bin csc

linux总结-常用命令(2)_第14张图片

 

chmod命令

Linux的文件调用权限分为三级 : 属主、属组、其他访问者。chmod 可以调整文件的访问权限。

chmod [选项] [文件]

主要选项:

[ugoa...][[+-=][rwxX]...][,通过逗号隔开可设置多组权限...]
  • u:表示该文件的拥有者; g:表示与该文件的拥有者属于同一个群体(group)者; o:表示其他以外的人; a:表示这三者皆是。
  • +:表示增加权限; -:表示取消权限; =:表示唯一设定权限。
  • r:表示可读取; w:表示可写入; x:表示可执行; X:表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他选项:

  • -c:若该文件权限确实已经更改,才显示其更改动作
  • -f:若该文件权限无法被更改也不要显示错误讯息
  • -v:显示权限变更的详细资料
  • -R:对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

实例:

1:chmod也可以使用数字来表示权限。

chmod 777 csc

777三位数分别表示属主属组、及其他人的权限。

其中 r = 4, w = 2, x = 1。三种权限均开启则r+w+x=7

linux总结-常用命令(2)_第15张图片

2:将csc目录设置为所有人都可写入。

chmod ugo+w csc

 可以发现ugo+r与a+r实现的效果是一样的。

linux总结-常用命令(2)_第16张图片

3:将csc与w3cschool目录的写入权限设置为,属主与属组均有权限,其他人不可写入。

chmod ug+w,o-w csc w3cschool

linux总结-常用命令(2)_第17张图片

文件操作的常用命令

cat命令

cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。

cat [选项] [文件]

选项:

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends:在每行结束处显示 $。

-T 或 --show-tabs:将 TAB 字符显示为 ^I。

-A 或 --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

实例:

1:【创建文件用法】使用cat命令创建test1.txt文件,并写入内容

cat test1.txt<

上述命令使用后即可开始输入内容,最后另启一行,使用EOF结束。 

EOF为结束字符,可以更改为其他字符,但是注意大小写,且结束输入必须依靠该字符。

2:【查看文件】查看test1.txt的内容,并带上行号

cat -n test1.txt

3:【追加文件】将 test1.txt 的内容加上行号写入 a1.txt 中,覆盖原来的内容,文件不存在则创建它。

cat -n test1.txt>a1.txt

 cat -n test1.txt>a1.txt 中的 > 为覆盖原来的内容

 cat -n test1.txt>>a1.txt 中的 >> 为不覆盖原来的内容

more命令

more 命令类似 cat ,不过会以分页的形式显示,更方便使用者逐页阅读。

而最基本的指令就是按空白键(space)就往下一页显示;

按 b 键就会往回(back)一页显示;

使用中的说明文件,请按 h 。

more [选项] [文件]

选项:

  • +n :从笫 n 行开始显示
  • -n :定义屏幕大小为n行
  • +/pattern :在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 
  • -c :从顶部清屏,然后显示
  • -d :提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
  • -l :忽略Ctrl+l(换页)字符
  • -p :通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
  • -s :把连续的多个空行显示为一行
  • -u :把文件内容中的下画线去掉

常用操作命令:

  • Enter :向下 n 行,需要定义。默认为 1 行
  • Ctrl+F :向下滚动一屏
  • 空格键 :向下滚动一屏
  • Ctrl+B :返回上一屏
  • = :输出当前行的行号
  • :f :输出文件名和当前行的行号
  • V :调用vi编辑器(vi编辑器将会在下一章节介绍)
  • !命令 :调用Shell,并执行命令
  • q :退出more

实例:

1:显示文件中从第2行起的内容。(可以使用cat命令将a1.txt多写入一些内容)

more +2 a1.txt

linux总结-常用命令(2)_第18张图片

less命令

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

less [选项] [文件] 

选项:

  • -b:<缓冲区大小> 设置缓冲区的大小
  • -e:当文件显示结束后,自动离开
  • -f:强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g:只标志最后搜索的关键词
  • -i:忽略搜索时的大小写
  • -m:显示类似more命令的百分比
  • -N:显示每行的行号
  • -o :<文件名> 将less 输出的内容在指定文件中保存起来
  • -Q:不使用警告音
  • -s:显示连续空行为一行
  • -S:行过长时间将超出部分舍弃
  • -x:<数字> 将"tab"键显示为规定的数字空格
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b:向后翻一页
  • d:向后翻半页
  • h:显示帮助界面
  • Q:退出less 命令
  • u:向前滚动半页
  • y:向前滚动一行
  • 空格键:滚动一页
  • 回车键:滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

实例:

1:查看文件(按 q 可以退出less操作)

less a1.txt

2:ps查看进程信息并通过less分页显示

ps -ef |less

head命令

head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。

选项:

  • -n<行数> 显示的行数(行数为复数表示从最后向前数)
  • -c<字节> 显示的字节

实例:

1:显示 a1.txt 文件中前 20 行

head a1.txt -n 2

tail命令

tail 命令可用于查看文件的内容,通过-f选项可以用于查阅正在变动的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

tail [选项] [文件]  

选项:

  • -f:循环读取
  • -q:不显示处理信息
  • -v:显示详细的处理信息
  • -c<数目>:显示的字节数
  • -n<行数>:显示文件的尾部 n 行内容
  • --pid=PID:与-f合用,表示在进程ID,PID死掉之后结束
  • -q --quiet --silent:从不输出给出文件名的首部
  • -s , --sleep-interval=S:与-f合用,表示在每次反复的间隔休眠S秒

实例:

1:该命令会一直刷新test.log的内容,直到按下快捷键(Ctrl+C)中止命令。

tail -f test.log

linux总结-常用命令(2)_第19张图片

whereis命令

which命令用于查找文件。

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

which [选项] [文件]

选项:

  • -n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
  • -p<文件名长度>:与-n参数相同,但此处的<文件名长度>包括了文件的路径。
  • -w :指定输出时栏位的宽度。

实例:

通过which命令查看bash的绝对路径。

which bash

find命令

find命令用来在指定目录下查找文件。

任何位于参数之前的字符串都将被视为欲查找的目录名。

如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

find   path  -option   [ -print ]   [ -exec -ok |xargs |grep ] [command  {} \;]

参数说明:

path:要查找的目录路径。 

  • ~ :表示$HOME目录
  • .  :表示当前目录
  • / :表示根目录 

print:表示将结果输出到标准输出。 

exec:对匹配的文件执行该参数所给出的shell命令。 ( 形式为command {} \;,注意{}与\;之间有空格 )

ok:与exec作用相同。(区别在于,在执行命令之前,都会给出提示,让用户确认是否执行) 

|xargs:与exec作用相同 ,起承接作用。(区别在于 |xargs 主要用于承接删除操作 ,而 -exec 都可用 如复制、移动、重命名等)

options :表示查找方式。

options选项:

-name   filename: 查找名为filename的文件

-perm              :按执行权限来查找

-user    username:按文件属主来查找

-group groupname:按组来查找

-mtime   -n +n    :按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-atime    -n +n   :按文件访问时间来查找文件,-n指n天以内,+n指n天以前

-ctime    -n +n   :按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup          :查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser           :查无有效属主的文件,即文件的属主在/etc/passwd中不存

-type    b/d/c/p/l/f:查是块设备、目录、字符设备、管道、符号链接、普通文件

-size      n[c]   :查长度为n块[或n字节]的文件

-mount            :查文件时不跨越文件系统mount点

-follow           :如果遇到符号链接文件,就跟踪链接所指的文件

-prune            :忽略某个目录

实例:

1:按文件名查找。

find ~ -name '*.txt' -print

2:在当前目录及子目录中查找不是a1开头的txt文件

find . -name "a1*" -prune -o -name "*.txt" -print

3:在当前目录除csc之外的子目录内搜索 txt文件

find . -path "./csc" -prune -o -name "*.txt" -print   

 

ln命令

ln 命令非常重要,它的功能是为某一个文件在另外一个位置建立一个同步的链接(类似于快捷方式)。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用 ln 命令链接(link)它就可以,不必重复的占用磁盘空间。

ln [选项] [源文件/目录] [目标文件/目录]

选项:

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程

软链接:不可以删除源文件,删除源文件导致链接文件找不到,出现文件红色闪烁

  • 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  • 2.软链接可以 跨文件系统 ,硬链接不可以
  • 3.软链接可以对一个不存在的文件名进行链接
  • 4.软链接可以对目录进行链接
硬链接:可以删除源文件,链接文件可以正常打开
  • 1.硬链接,以文件副本的形式存在。但不占用实际空间。
  • 2.不允许给目录创建硬链接
  • 3.硬链接只有在同一个文件系统中才能创建

实例:

1:对文件创建软连接

ln -s php.txt linkphp

2:对文件创建硬连接

ln php.txt lnphp

linux总结-常用命令(2)_第20张图片

grep命令

 grep 命令用于查找文件里符合条件的字符串。

grep [选项] [规则] [目录/文件]

常用选项:

  • -A<显示行数> 或 --after-context=显示行数:显示匹配字符后n行
  • -B<显示行数> 或 --before-context=显示行数:显示匹配字符前n行
  • -C<显示行数> 或 --context:显示匹配字符前后n行
  • -c 或 --count:计算符合样式的列数
  • -i:忽略大小写
  • -l:只列出文件内容符合指定的样式的文件名称
  • -f:从文件中读取关键词
  • -n:显示匹配内容的所在文件中行数
  • -R:递归查找文件夹

grep的规则表达式:

  • ^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 
  • $  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 
  • .   #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。  
  • *  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
  • .*       #一起用代表任意字符。  
  • []       #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 
  • [^]    #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。  
  • \(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   
  • \<     #锚定单词的开始,如:'\
  • \>     #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
  • x\{m\}     #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 
  • x\{m,\}    #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
  • x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
  • \w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。  
  • \W   #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
  • \b    #单词锁定符,如: '\bgrep\b'只匹配grep

实例:

1:在当前目录中查找后缀包含txt并且其中包含World字符串的文件,并且打印出文件中对应行的内容。(查找条件注意大小写区分)

grep World *txt

2:在当前目录中查找并显示包含 H 或者 C 字符的内容行


grep -E 'H|C' a1.txt

系统操作的常用命令

date命令

date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。

date [选项] [+格式]
或
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

选项:

  • -d datestr : 显示 datestr 中所设定的时间 (非系统时间)
  • -s datestr : 将系统时间设为 datestr 中所设定的时间
  • -u : 显示目前的格林威治时间

格式:

时间部分:

  • % : 印出 %
  • %n : 下一行
  • %t : 跳格
  • %H : 小时(00~23)
  • %I : 小时(01~12)
  • %k : 小时(0~23)
  • %l : 小时(1~12)
  • %M : 分钟(00~59)
  • %p : 显示本地 AM 或 PM
  • %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
  • %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
  • %S : 秒(00~61)
  • %T : 直接显示时间 (24 小时制)
  • %X : 相当于 %H:%M:%S
  • %Z : 显示时区

日期部分:

  • %a : 星期几 (Sun~Sat)
  • %A : 星期几 (Sunday~Saturday)
  • %b : 月份 (Jan~Dec)
  • %B : 月份 (January~December)
  • %c : 直接显示日期与时间
  • %d : 日 (01~31)
  • %D : 直接显示日期 (mm/dd/yy)
  • %h : 同 %b
  • %j : 一年中的第几天 (001~366)
  • %m : 月份 (01~12)
  • %U : 一年中的第几周 (00~53) (以 Sunday 为一周的第一天的情形)
  • %w : 一周中的第几天 (0~6)
  • %W : 一年中的第几周 (00~53) (以 Monday 为一周的第一天的情形)
  • %x : 直接显示日期 (mm/dd/yy)
  • %y : 年份的最后两位数字 (00~99)
  • %Y : 完整年份 (0000~9999)

 若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

 当不需要增加多余的0(例如2020/01/01...),则可以在标记中插入 - 符号,例如 date '+%-H:%-M:%-S',则会获得2020/1/1...

 当使用root身份更改系统时间,需要配合clock -w 命令将系统时间写入CMOS中,这样下次重新开机时才会保持正确值。

实例:

1:显示当前时间

linux总结-常用命令(2)_第21张图片

 

cal命令

cal用于显示公历(阳历)日历。

cal [选项] [参数]

选项:

  • -3:显示前一月,当前月,后一月三个月的日历
  • -m:显示星期一为第一列
  • -j:显示在当前年第几天
  • -y:[year]显示当前年[year]份的日历

参数:

如果一个参数,则表示年份。 两个参数,则表示月份与年份。

实例:

1:显示制定年月日期

cal 12 2019

linux总结-常用命令(2)_第22张图片

2:将星期一作为第一列,显示前中后三个月。

cal -3m

linux总结-常用命令(2)_第23张图片

ps命令

ps命令用于显示当前进程 (process) 的状态。

ps [options]

选项:

  • -A:显示所有进程
  • a:显示所有进程
  • -a:显示同一终端下所有进程
  • c:显示进程真实名称
  • e:显示环境变量
  • f:显示进程间的关系
  • r:显示当前终端运行的进程
  • -aux:显示所有包含其它使用的进程

ps 工具标识进程的5种状态码:

  • D:不可中断 
  • R:运行 
  • S:中断 
  • T:停止 
  • Z:僵死 

实例:

1:显示当前所有进程

ps -A

linux总结-常用命令(2)_第24张图片

2:与grep联用查找某进程

ps -aux | grep bash

kill命令

kill命令用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。

若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

参数:

  • -l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。
  • -s <信息名称或编号>  指定要送出的信息。
  • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

 PID可以通过ps命令查看

实例:

1:杀死进程

kill 123

2:强制杀死进程

kill -KILL 123

3:彻底杀死进程

kill -9 123

free命令

free命令用于显示内存状态。

free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

free [选项] [-s <间隔秒数>]

选项:

  • -b :以Byte为单位显示内存使用情况。
  • -k :以KB为单位显示内存使用情况。
  • -m :以MB为单位显示内存使用情况。
  • -h :以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:B = bytes、K = kilos、M = megas、G = gigas、T = teras。
  • -o :不显示缓冲区调节列。
  • -s<间隔秒数> :持续观察内存使用状况。
  • -t :显示内存总和列。

实例:

1:显示内存使用情况

free

yum命令

yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。

基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包。

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。

yum [选项] [要进行的操作] [操作对象]

yum常用命令:

  • yum check-update:列出所有可更新的软件清单命令
  • yum update:更新所有软件命令
  • yum install 仅安装指定的软件命令
  • yum update 仅更新指定的软件命令
  • yum list:列出所有可安裝的软件清单命令
  • yum remove 删除软件包命令
  • yum search 查找软件包 命令

清除缓存命令:

  • yum clean packages:清除缓存目录下的软件包
  • yum clean headers:清除缓存目录下的 
  • headersyum clean oldheaders:清除缓存目录下旧的 
  • headersyum clean, yum clean all (= yum clean packages; yum clean oldheaders):清除缓存目录下的软件包及旧的headers

实例:

1:安装 pam-devel

yum install pam-devel

linux总结-常用命令(2)_第25张图片

你可能感兴趣的:(Linux学习笔记,python)