Linux基本命令二
Linux基本命令二
1、head 命令
head
**作用:**用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容
**语法:**head [参数] [文件]
命令参数:
| 参数 | 参数描述 |
|---|---|
| -q | 隐藏文件名 |
| -v | 显示文件名 |
| -c<数目> | 显示的字节数 |
| -n<行数> | 显示的行数 |
(1)显示 1.log 文件中前 20 行
[root@localhost ~]# head 1.log -n 20
(2)显示 1.log 文件前 20 字节
[root@localhost ~]# head -c 20 log2014.log
(3)显示 t.log最后 10 行
[root@localhost ~]# head -n -10 t.log
扩展:tail 命令,查看文件的末尾
2、which 命令
which
在 linux 要查找某个命令或者文件,但不知道放在哪里了,可以使用下面的一些命令来搜索
which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。
**作用:**用于查找文件(which指令会在环境变量$PATH设置的目录里查找符合条件的文件。)
**语法:**which [文件…]
命令参数:
| 参数 | 参数描述 |
|---|---|
| -n<文件名长度> | 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名 |
| -p<文件名长度> | 与-n参数相同,但此处的<文件名长度>包括了文件的路径 |
| -w | 指定输出时栏位的宽度 |
| -V | 显示版本信息 |
(1)查看 ls 命令是否存在,执行哪个
[root@localhost ~]# which ls
alias ls='ls --color=auto'/usr/bin/ls
(2)查看 which
[root@localhost ~]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'/usr/bin/alias/usr/bin/which
(3)查看 cd
[root@localhost ~]# which cd
/usr/bin/cd(注意:显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)
(4)查看当前 PATH 配置
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
3、whereis命令
whereis
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,
而find则是遍历硬盘查找文件
**作用:**用于查找文件
**语法:**whereis [-bfmsu][-B <目录>…]-M <目录>…][-S <目录>…][文件…]
命令参数:
| 参数 | 参数描述 |
|---|---|
| -b | 定位可执行文件 |
| -B<目录> | 只在设置的目录下查找可执行文件 |
| -f | 不显示文件名前的路径名称 |
| -m | 定位帮助文件 |
| -M<目录> | 只在设置的目录下查找说帮助文件 |
| -s | 定位源代码文件 |
| -S<目录> | 只在设置的目录下查找源代码文件 |
| -u | 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件 |
(1)查找 locate 程序相关文件
[root@localhost ~]# whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz
(2)查找 locate 的源码文件
[root@localhost ~]# whereis -s locate
(3)查找 lcoate 的帮助文件
[root@localhost ~]# whereis -m locate
4、locate命令
locate
需要注意这个命令在我们的最小mini系统里面是没有安装的
[root@localhost ~]# yum install mlocate
...省略...
[root@localhost ~]# updatedb
**作用:**用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录
**语法:**locate [-d ][–help][–version][范本样式…]
命令参数:
| 参数 | 参数描述 |
|---|---|
| -b | 仅匹配路径名的基本名称 |
| -c | 只输出找到的数量 |
| -d | 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db |
| -e | 仅打印当前现有文件的条目 |
| -1 | 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。 这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料 |
| -0 | 在输出上带有NUL的单独条目 |
| -S | 不搜索条目,打印有关每个数据库的统计信息 |
| -q | 安静模式,不会显示任何错误讯息 |
| -P | 检查文件存在时不要遵循尾随的符号链接 |
| -l | 将输出(或计数)限制为LIMIT个条目 |
| -n | 至多显示 n个输出 |
| -m | 被忽略,为了向后兼容 |
| -r | REGEXP – 使用基本正则表达式 |
| –regex | 使用扩展正则表达式 |
| -o | 指定资料库存的名称 |
| -h | 显示帮助 |
| -i | 忽略大小写 |
| -V | 显示版本信息 |
常用参数:
| 参数 | 参数描述 |
|---|---|
| -l | num(要显示的行数) |
| -f | 将特定的档案系统排除在外,如将proc排除在外 |
| -r | 使用正则运算式做为寻找条件 |
(1)查找和 pwd 相关的所有文件(文件名中包含 pwd)
[root@localhost ~]# locate pwd
/etc/.pwd.lock
/usr/bin/pwd
...省略...
(2)搜索 etc 目录下所有以 sh 开头的文件
[root@localhost ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
(3)查找 /root 目录下,以 sh 结尾的文件
[root@localhost ~]# locate -r '^/root.*sh$'
/root/test.sh
5、find命令
find
**作用:**用于在文件树中查找文件,并作出相应的处理
语法:
find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
命令参数:
| 参数 | 参数描述 |
|---|---|
| pathname | find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录 |
| find命令将匹配的文件输出到标准输出 | |
| -exec | find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格 |
| -ok | 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行 |
命令选项:
| 选项 | 选项描述 |
|---|---|
| -name | 按照文件名查找文件 |
| -perm | 按文件权限查找文件 |
| -user | 按文件属主查找文件 |
| -group | 按照文件所属的组来查找文件 |
| -type | 查找某一类型的文件,诸如: b - 块设备文件 d - 目录 c - 字符设备文件 l - 符号链接文件 p - 管道文件 f - 普通文件 |
| -size n :[c] | 查找文件长度为n块文件,带有c时表文件字节大小 |
| -amin n | 查找系统中最后N分钟访问的文件 |
| -atime n | 查找系统中最后n*24小时访问的文件 |
| -cmin n | 查找系统中最后N分钟被改变文件状态的文件 |
| -ctime n | 查找系统中最后n*24小时被改变文件状态的文件 |
| -mmin n | 查找系统中最后N分钟被改变文件数据的文件 |
| -mtime n | 查找系统中最后n*24小时被改变文件数据的文件 |
| -maxdepth n | 最大查找目录深度 |
| -prune | 选项来指出需要忽略的目录。在使用-prune选项时要当心, 因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略 |
| -newer | 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项 |
来看例子
(1)查找 48 小时内修改过的文件
[root@localhost ~]# find -atime -2
.
./.bash_profile
...省略...
(2)在当前目录查找 以 .log 结尾的文件。 . 代表当前目录
[root@localhost ~]# find ./ -name '*.log'
./mydir/text2.log
./test.log
(3)查找 /opt 目录下 权限为 777 的文件
[root@localhost ~]# find /opt -perm 777
(4)查找大于 1K 的文件
[root@localhost ~]# find -size +1000c
./anaconda-ks.cfg
./.bash_history
./.viminfo
(5)查找等于 1000 字符的文件
[root@localhost ~]# find -size 1000c
-exec
注意:-exec 参数后面跟的是 command 命令,它的终止是以 ; 为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名
(6)在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)
[root@localhost ~]# find . -type f -mtime +10 -exec rm -f {} \;# 可以不用操作,了解一下结构即可
(7)当前目录中查找所有文件名以.log结尾、更改时间在0日以上的文件,并删除它们,
只不过在删除之前先给出提示。 按y键删除文件,按n键不删除
[root@localhost ~]# find . -name '*.log' -mtime +0 -ok -exec rm {} \;
< -exec ... ./mydir/text2.log > ? n
(8)用 exec 选项执行 cp 命令
[root@localhost ~]# find . -name '*.log' -exec cp {} test3 \;
-xargs find
-xargs find 命令把匹配到的文件传递给 xargs 命令,而 xargs 命令每次只获取一部分文件而不是全部,不像 -exec 选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
(9)查找当前目录下每个普通文件,然后使用 xargs 来判断文件类型
[root@localhost ~]# find . -type f -print | xargs file
(10)查找当前目录下所有以 js 结尾的并且其中包含 ‘editor’ 字符的普通文件
[root@localhost ~]# find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;
[root@localhost ~]# find -type f -name '*.js' | xargs grep -lF 'editor'
(11)利用 xargs 执行 mv 命令
[root@localhost ~]# find . -name "*.log" | xargs -i mv {} test4
(12)用 grep 命令在当前目录下的所有普通文件中搜索 hostnames 这个词,并标出所在行:
[root@localhost ~]# find . -name \*(转义) -type f -print | xargs grep -n 'hostnames'
(13)查找当前目录中以一个小写字母开头,最后是 4 到 9 加上 .log 结束的文件:
[root@localhost ~]# find . -name '[a-z]*[4-9].log' -print
(14)在 test 目录查找不在 test4 子目录查找
[root@localhost ~]# find test -path 'test/test4' -prune -o -print
(15)实例1:查找更改时间比文件 log2012.log新但比文件 log2017.log 旧的文件
[root@localhost ~]# find -newer log2012.log ! -newer log2017.log
depth
depth 选项可以使 find 命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。实例:find 命令从文件系统的根目录开始,查找一个名为 CON.FILE 的文件。 它将首先匹配所有的文件然后再进入子目录中查找
[root@localhost ~]# find / -name "CON.FILE" -depth -print
6、chmod命令
Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。
用于改变 linux 系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用 ls -l test.txt 查找
[root@localhost ~]# ll
总用量 20
-rw-------. 1 root root 1437 8月 31 15:54 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 9月 8 18:29 file1
lrwxrwxrwx. 1 root root 15 9月 7 16:31 link_text2 -> mydir/text2.log
drwxr-xr-x. 4 root root 92 9月 7 18:08 mydir
-rw-r--r--. 1 root root 13 9月 8 16:35 myfile
-rw-r--r--. 1 root root 36 9月 9 13:16 test3
-rw-r--r--. 1 root root 36 9月 8 18:36 test.log
-rwxr-xr-x. 1 root root 67 9月 8 18:36 test.sh
这里使用test.log作为例子
-rw-r--r--. 1 root root 36 9月 8 18:36 test.log第一列共有 10 个位置,
第一个字符指定了文件类型。
在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。
如果是 d,表示是一个目录。
从第二个字符开始到第十个 9 个字符,3 个字符一组,分别表示了 3 组用户对文件或者目录的权限。
权限字符用横线代表空许可,r 代表只读,w 代表写,x 代表可执行
语法:
chmod [-cfvR] [--help] [--version] mode file...
常用参数:
| 参数 | 参数描述 |
|---|---|
| -c | 当发生改变时,报告处理信息 |
| -R | 处理指定目录以及其子目录下所有文件 |
权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
权限代号:
| 代号 | 代号权限 |
|---|---|
| r | 读权限,用数字4表示 |
| w | 写权限,用数字2表示 |
| x | 执行权限,用数字1表示 |
| - | 删除权限,用数字0表示 |
| s | 特殊权限 |
环境:-rw-r--r--. 1 root root 36 9月 8 18:36 test.log
(1)增加文件 t.log 所有用户可执行权限
[root@localhost ~]# ls -n test.log
-rwxr-xr-x. 1 0 0 36 9月 8 18:36 test.log
(2)撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息
[root@localhost ~]# chmod u=r test.log -c
mode of "test.log" changed from 0755 (rwxr-xr-x) to 0455 (r--r-xr-x)
[root@localhost ~]# ls -n test.log
-r--r-xr-x. 1 0 0 36 9月 8 18:36 test.log
(3)给 file 的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
[root@localhost ~]# chmod 751 test.log -c
或者
[root@localhost ~]# chmod u=rwx,g=rx,o=x t.log -c
(4)将mydir 目录及其子目录所有文件添加可读权限
[root@localhost ~]# chmod u+r,g+r,o+r -R text/ -c
7、chown命令
chown 将指定文件的拥有者改为指定的用户或组,
用户可以是用户名或者用户 ID;
组可以是组名或者组 ID;文件是以空格分开的要改变权限的文件列表,支持通配符
注意:一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
语法:
chown [-cfhvR] [--help] [--version] user[:group] file...
常用参数:
| 参数 | 参数描述 |
|---|---|
| user | 新的文件拥有者的使用者 ID |
| group | 新的文件拥有者的使用者组(group) |
| -c | 显示更改的部分的信息 |
| -f | 忽略错误信息 |
| -h | 修复符号链接 |
| -v | 显示详细的处理信息 |
| -R | 处理指定目录以及其子目录下的所有文件 |
| –help | 显示辅助说明 |
| –version | 显示版本 |
(1)改变拥有者和群组 并显示改变信息
[root@localhost ~]# chown -c mail:mail test.log
changed ownership of "test.log" from root:root to mail:mail-r--r-xr-x. 1 mail mail 36 9月 8 18:36 test.log
(2)改变文件群
[root@localhost ~]# chown -c :mail test.sh
changed ownership of "test.sh" from root:root to :mail
(3)改变文件夹及子文件目录属主及属组为 mail
[root@localhost ~]# chown -cR mail: mydir
changed ownership of "mydir/test1/text1.txt" from root:root to mail:mail
changed ownership of "mydir/test1" from root:root to mail:mail
...省略...
8、tar 命令
用来压缩和解压文件。tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件
**作用:**用于备份文件(tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件)
语法:
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve][--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files][--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals][--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...]
命令参数:
| 参数 | 参数描述 |
|---|---|
| -c | 建立新的压缩文件 |
| -f | 定压缩文件 |
| -r | 添加文件到已经压缩文件包中 |
| -u | 添加改了和现有的文件到压缩包中 |
| -x | 从压缩包中抽取文件 |
| -t | 显示压缩文件中的内容 |
| -z | 支持gzip压缩 |
| -j | 支持bzip2压缩 |
| -Z | 支持compress解压文件 |
| -v | 显示操作过程 |
有关 gzip 及 bzip2 压缩:
gzip 实例:压缩 gzip fileName .tar.gz 和.tgz 解压:gunzip filename.gz 或 gzip -d filename.gz对应:tar zcvf filename.tar.gz tar zxvf filename.tar.gz
bz2实例:压缩 bzip2 -z filename .tar.bz2 解压:bunzip filename.bz2或bzip -d filename.bz2对应:tar jcvf filename.tar.gz 解压:tar jxvf filename.tar.bz2
(1)将test.log test.sh全部打包成 tar 包
[root@localhost ~]# [root@localhost ~]# tar -cvf log.tar test.log test.sh
test.log
test.sh
(2)将 /etc 下的所有文件及目录打包到指定目录或当前目录,并使用 gz 压缩
[root@localhost ~]# tar -zcvf ./etc.tar.gz /etc
(3)查看刚打包的文件内容(一定加z,因为是使用 gzip 压缩的)
[root@localhost ~]# tar -ztvf ./etc.tar.gz
...省略...
(4)要压缩打包 /home, /etc ,但不要 /home/mashibing ,只能针对文件,不能针对目录
[root@localhost ~]# tar --exclude /home/mshibing -zcvf myfile.tar.gz /home/* /etc
9、date命令
**作用:**用来显示或设定系统的日期与时间
语法:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
时间参数
| 参数 | 描述参数 |
|---|---|
| % | 印出 % |
| %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 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。当您以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
语法:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
常见参数
| -d | 显示 datestr 中所设定的时间 (非系统时间) |
| –help | 显示辅助讯息 |
| -s | 将系统时间设为 datestr 中所设定的时间 |
| -u | 显示目前的格林威治时间 |
| –version | 显示版本编号 |
(1)
10、cal 命令
**作用:**用户显示公历(阳历)日历
**语法:**cal [选项] [[[日] 月] 年]
| 参数 | 参数描述 |
|---|---|
| -1 | 只显示当前月份(默认) |
| -3 | 显示上个月、当月和下个月 |
| -s | 周日作为一周第一天 |
| -m | 周一用为一周第一天 |
| -j | 输出儒略日 |
| -y | 输出整年 |
| -V | 显示版本信息并退出 |
| -h | 显示此帮助并退出 |
(1)显示指定年月日期
[root@localhost ~]# cal 9 2020
(2)显示2020年每个月日历
[root@localhost ~]# cal -y 2020
(3)将星期一做为第一列,显示前中后三月
[root@localhost ~]# cal -3m
11、grep命令
grep
强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索
grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容
**作用:**用于查找文件里符合条件的字符串
注意:如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 **-**,则 grep 指令会从标准输入设备读取数据
语法:
grep [option] pattern file|dir
常用参数:
| 参数 | 参数描述 |
|---|---|
| -A n | 显示匹配字符后n行 |
| -B n | 显示匹配字符前n行 |
| -C n | 显示匹配字符前后n行 |
| -c | 计算符合样式的列数 |
| -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开头的单词的行。
\> #锚定单词的结束,如'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)查找指定进程
[root@localhost ~]# ps -ef | grep svn
root 6771 9267 0 15:17 pts/0 00:00:00 grep --color=auto svn
(2)查找指定进程个数
[root@localhost ~]# ps -ef | grep svn -c
1
(3)从文件中读取关键词
[root@localhost ~]# cat test.log | grep -f test.log
马士兵教育:www.mashibing.com
(4)从文件夹中递归查找以.sh结尾的行,并只列出文件
[root@localhost ~]# grep -lR '.sh$'
.bash_history
test.sh
.viminfo
log.tar
(5)查找非x开关的行内容
[root@localhost ~]# grep '^[^x]' test.log
马士兵教育:www.mashibing.com
(6)显示包含 ed 或者 at 字符的内容行
[root@localhost ~]# grep -E 'ed|at' test.log
12、ps命令
ps
**作用:**用于显示当前进程 (process) 的状态
语法:
ps [options] [--help]
linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps 工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
命令参数
| 参数 | 参数描述 |
|---|---|
| -A | 显示所有进程 |
| a | 显示所有进程 |
| -a | 显示同一终端下所有进程 |
| c | 显示进程真实名称 |
| e | 显示环境变量 |
| f | 显示进程间的关系 |
| r | 显示当前终端运行的进程 |
| -aux | 显示所有包含其它使用的进程 |
(1)显示当前所有进程环境变量及进程间关系
[root@localhost ~]# ps -ef
(2)显示当前所有进程
[root@localhost ~]# ps -A
(3)与grep联用查找某进程
[root@localhost ~]# ps -aux | grep apache
root 20112 0.0 0.0 112824 980 pts/0 S+ 15:30 0:00 grep --color=auto apache
(4)找出与 cron 与 syslog 这两个服务有关的 PID 号码
[root@localhost ~]# ps aux | grep '(cron|syslog)'
root 20454 0.0 0.0 112824 984 pts/0 S+ 15:30 0:00 grep --color=auto (cron|syslog)
13、kill命令
kill
kill 命令用于删除执行中的程序或工作
kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 jobs 指令查看
语法:
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
常用参数:
| 参数 | 参数描述 |
|---|---|
| -l | 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称 |
| -a | 当处理当前进程时,不限制命令名和进程号的对应关系 |
| -p | 指定kill 命令只打印相关进程的进程号,而不发送任何信号 |
| -s | 指定发送信号 |
| -u | 指定用户 |
(1)先使用ps查找进程pro1,然后用kill杀掉
[root@localhost ~]# kill -9 $(ps -ef | grep pro1)
-bash: kill: root: 参数必须是进程或任务 ID
-bash: kill: (27319) - 没有那个进程
-bash: kill: (27317) - 没有那个进程
相关文章:
Linux基本命令二
Linux基本命令二 1、head 命令 head **作用:**用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容 **语法:**head [参数] [文件] 命令参数: 参数…...
isbn api开放接口
接口地址:http://openapi.daohe168.com.cn/api/library/isbn/query?isbn9787115618085&appKeyd7c6c07a0a04ba4e65921e2f90726384 响应结果: { "success": true, "code": "200", "message": …...
助力企业实现更简单的数据库管理,ATOMDB 与 TDengine 完成兼容性互认
为加速数字化转型进程,当下越来越多的企业开始进行新一轮数据架构改造升级。在此过程中,全平台数据库管理客户端提供了一个集中管理和操作数据库的工具,提高了数据库管理的效率和便利性,减少了人工操作的复杂性和错误率࿰…...
如何通过低代码工具,提升运输行业的运营效率和服务质量
《中国数字货运发展报告》显示,2022年我国公路货运市场规模在5万亿元左右。其中,数字货运整体市场规模约为7000亿元,市场渗透率约为15%。而以小微企业为主的货运行业,却以小、散、乱的行业特征,承载着5万亿元左右的市场…...
Vue3中调用外部iframe链接方法
业务场景,点击某个按钮需要跳转到外部iframe的地址,但是需要在本项目内显示。以前项目中写过调用外部链接的功能,是有菜单的,但是这次是按钮,所以不能直接把地址配到菜单里。 实现方法:在本地路由文件里写个…...
Node——事件的监听与触发
Node.js是由事件驱动的,每个任务都可以当作一个事件来处理,本贴将对Node.js中的events模块及其中处理事件的类EventEmitter的使用进行详细讲解。 1、EventEmitter对象 在JavaScript中,通过事件可以处理许多用户的交互,比如鼠标…...
一个基于.NET Core开源、跨平台的仓储管理系统
前言 今天给大家推荐一个基于.NET Core开源、跨平台的仓储管理系统,数据库支持MSSQL/MySQL:ZEQP.WMS。 仓储管理系统介绍 仓储管理系统(Warehouse Management System,WMS)是一种用于管理和控制仓库操作的软件系统&…...
主机安全-WindowsLinux的SSH安全加固
信息安全相关 - 建设篇 第三章 主机安全-Linux的SSH安全加固 信息安全相关 - 建设篇系列文章回顾下章内容主机安全-Linux的SSH安全加固前言Windows openssh相关命令,安装openssh获取openssh命令Windows openssl相关命令,安装Git获取openssl命令修复 CVE-…...
pcie-2-rj45速度优化
背景: 目前用iperf3打流传输速率达不到要求,千兆实际要求跑到800M以上: 优化方案: 1.优化defconfig: 首先编译user版本验证看是否正常 debug版本关闭CONFIG_SLUB_DEBUG_ON宏控。 2.找FAE ,通过更换驱动,或者更新驱动来优化 3.绑定大核: 以8125网卡为例,udp…...
AWVS 使用方法归纳
1.首先确认扫描的网站,以本地的dvwa为例 2.在awvs中添加目标 输入的地址可以是域名也可以是ip,只要本机可以在浏览器访问的域名或ip即可 添加地址及描述之后,点击保存,就会展现出目标设置选项 business criticality译为业务关键…...
数据库基础入门 — SQL运算符
我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…...
SELinux零知识学习二十九、SELinux策略语言之类型强制(14)
接前一篇文章:SELinux零知识学习二十八、SELinux策略语言之类型强制(13) 二、SELinux策略语言之类型强制 4. 类型规则 类型规则在创建客体或在运行过程中重新标记时指定其默认类型。在策略语言中定义了两个类型规则: type_transtition在域转换过程中标记行为发生时以及创…...
Git控制指令
git status查看当前本地分支的修改状态 git diff 文件路径 查看具体文件的修改内容 git log打印用户信息 git remote -v查看远程地址 git checkout -- *还原被删除的文件 git rm -r --force .删除本地所有文件 git commit -m "Remove all files from repositor…...
C#中警告CA1050、CA1821、CA1822、CA1859、CA2249及处理
目录 一、CA1050警告及处理 1.如何解决冲突: 2.何时禁止显示警告: 二、CA1821警告及处理 三、CA1822警告及处理 四、CA1859警告及处理 1.警告解决之前 2.警告解决之后 3.解决办法 1.警告解决之前 2.警告解决之后 3.解决办法 五、CA2249警告…...
【Cmake】Cmake基础学习
CMake学习 一、基础学习 1. 利用Cmake进行单个源代码构建可执行文件 (1)基础命令 最基本的 CMake项目是由单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的 CMakeLists.txt 文件。 注意: 虽然 CMake 支持大写、小写和混合大小写命令,但是…...
路径规划之Best-First Search算法
系列文章目录 路径规划之Dijkstra算法 路径规划之Best-First Search算法 路径规划之Best-First Search算法 系列文章目录前言一、Best-First Search算法1.1 起源1.2 过程 三、简单使用 前言 Best-First Search算法和Dijkstra算法类似,都属于BFS的扩展或改进 一、…...
【Layui】动态时间线
官方时间线 代码<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">...
进程、线程以及进程与线程的区别
进程 1.什么是进程? 进程是进程实体的运行过程,是系统进行资源分配和资源调度的一个独立单位。 进程实体(又叫进程映像)由进程控制块(PCB),程序段,数据段三部分构成。 PCB 进程控…...
Java中的jvm——面试题+答案(Java虚拟机的基本概念,包括内存区域、类加载机制、垃圾回收等)——第15期
什么是Java虚拟机(JVM)? 答案: Java虚拟机是Java程序运行的环境,负责将Java源代码编译成字节码,并在运行时执行这些字节码。 Java虚拟机的主要组成部分有哪些? 答案: 主要组成部分…...
大数据平台/大数据技术与原理-实验报告--MapReduce编程
实验名称 MapReduce编程 实验性质 (必修、选修) 必修 实验类型(验证、设计、创新、综合) 综合 实验课时 2 实验日期 2023.10.30-2023.11.03 实验仪器设备以及实验软硬件要求 专业实验室(配有centos7.5系统…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架
文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...
