linux常用命令正则表达式(linux查找与设定条件相符字符串的命令)

发布时间:2023-11-29 10:55:01
发布者:网友

各位老铁们好,相信很多人对linux常用命令正则表达式都不是特别的了解,因此呢,今天就来为大家分享下关于linux常用命令正则表达式以及linux查找与设定条件相符字符串的命令的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

一、linux查找与设定条件相符字符串的命令

1、在Linux中,可以使用grep命令来查找与设定条件相符的字符串。grep命令可以在文件中搜索指定的模式,并将匹配的行打印出来。

2、例如,要查找包含特定字符串的文件,可以使用以下命令:

3、如果要查找某个目录及其子目录中的所有文件,可以使用grep-r"pattern"directory。此外,还可以使用正则表达式来更精确地匹配字符串。

4、要设定条件,可以使用grep的各种选项,如-i(忽略大小写)、-v(反向匹配)等。grep命令是Linux中非常强大和常用的字符串搜索工具。

二、linux常用命令有哪些

Linux是我们开发人员必不可少的系统,也是经常接触到的。然而,Linux命令比较多,有些不常用也难记住。那么,我们如何更高效的使用Linux命令,而又不必全面地学习呢?今天就给大家分享一下我在开发过程中,比较常用、也比较实用的Linux命令。

查看文件内容或日志文件,相信几乎所有人都会接触到。其中,用得最多的就是head、tail和cat命令。

表示头部,查看最前面几行数据。

headtest.log:test.log文件前几行日志内容

head-n20test.log:查看test.log文件前20行日志内容

head-n-20test.log:查看test.log除了最后20行日志内容

表示尾部,查看最后几行或实时日志。

tail-ftest.log:实时查看test.log文件最后几行日志内容

tail-f-n20test.log:实时查看test.log文件最后20行日志内容

tail-n20test.log:查看test.log文件最后20行日志内容

tail-n+20test.log:查看test.log文件20行后的所有日志内容

cattest.log:查看test.log文件所有内容

同一台服务器不同目录之间复制文件或目录也是经常用到的。

cptest.log/home/geshan/logs:复制test.log文件到/home/geshan/logs/目录下

cptest.log/home/geshan/logs/cptest.log:复制test.log文件到/home/geshan/logs/目录下并重新命名为cptest.log

cp-rlogs//home/geshan/:复制logs目录及目录下所有文件到/home/geshan/目录下,此时该目录会有logs目录

cp-rlogs//home/geshan/testlogs/:复制logs目录及目录下所有文件到/home/geshan/testlogs/目录下,并把logs目录重新命名为testlogs,前提是/home/geshan/目录没有testlogs目录

注:-r或-R表示循环,循环目录下所有文件和目录。下面所有命令也是如此。

当我们需要从远程服务器复制某个文件或目录到本地登录的服务器时,大部分人想到先登录远程服务器下载该文件,然后再登录本地服务器再上传文件。这样是比较麻烦,效率也不高。

scplocal_fileremote_username@remote_ip:remote_folder

scplocal_fileremote_username@remote_ip:remote_file

scplocal_fileremote_ip:remote_folder

scplocal_fileremote_ip:remote_file

第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变;第2个指定了文件名;第3,4个没有指定用户名,命令执行后默认与当前服务器用户名并需要输入用户密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。

实例1:从本地服务器复制test.log至192.168.130.130服务器的/home/geshan/目录,并重新命名为

实例2:从本地服务器复制test.log至192.168.130.130服务器的/home/geshan/目录

scp-rlocal_folderremote_username@remote_ip:remote_folder

scp-rlocal_folderremote_ip:remote_folder

第1个指定了用户名,命令执行后需要输入用户密码;第2个没有指定用户名,命令执行后需要输入用户名和密码。

实例:从本地服务器/home/appuser/目录下的tomcat目录复制到192.168.130.130服务器的/home/geshan/目录命令:

2、从远程服务器复制到本地服务器

从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

从192.168.130.130远程服务器的/home/geshan/路径下test.log文件复制到本地服务器/home/appuser/路径

scproot@192.168.130.130:/home/geshan/test.log/home/appuser/

实例:从192.168.130.130远程服务器的/home/geshan/路径下tomcat文件夹复制到本地服务器/home/appuser/路径

注:ip地址和路径之间(即冒号之间)没有任何空格,否则会报错。当第一次和另外一台服务通信(如复制文件),会提示是否信任,输入yes即可。

压缩和解压文件也是经常遇到的。如果下载一个目录下的所有文件,可以直接下载这个目录,但是直接下载目录的话,文件一旦很多,下载过程中很容易丢失文件,下载速度也比较慢。一般情况下是先压缩文件夹再下载。下面给大家介绍四种压缩和解压命令。

注:压缩为.gz文件源文件会消失如果想保留源文件,使用下面命令

压缩tomcat目录,并命名为tomcat.tar.gz文件

注:压缩目录时,需加-r,表示循环该目录下所有文件和目录。压缩多个文件或目录时,文件或目录之间需要空格。

压缩log文件目录并命名为log.zip:

压缩log1和log2目录并命名为log.zip:

压缩test1.log和test2.log文件并命名为log.zip:

同理,和zip命令类似,只需把zip改为rar即可。

Linux系统中文件和目录访问权限是不同的,通过些方式可以确定谁可以对该文件和目录进行相应的操作。

其中,文件或目录的访问权限分为只读,只写和可执行三种,分别代表可读、可写和可执行。

改变文件或目录所属的组。命令:

实例:把test.log文件所属的组修改为geshan组

把logs目录及该目录下所有文件所属的组修改为geshan组

更改某个文件或目录所属的用户。命令:

实例:把test.log文件所属用户修改为geshan用户

把logs目录及该目录下所有文件所属用户修改为geshan用户

用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。命令:

其中,mode有很多种表示含义,下面只对数字说明。大部分人看到mode有777或776等权限,这些表示什么呢?

为了方便,把mode改为abc,其中a,b,c各为一个数字,分别表示user、group及other的权限。r=4,w=2,x=1,r表示Read读,w表示Write写,x表示eXecute。

实例:把test.log文件修改可读写执行(即777)操作。

把logs目录及目录下所有文件修改为读写(666)操作。

在Linux系统中输入ll(两个小写LL),如果文件或目录为777(读写执行)权限,可看到最前面为-rwxrwxrwx。如果为666(读写)权限,可看到最前面为-rw-rw-rw。

注:一般修改文件或目录权限需要超级用户(root)进行修改,否则可能会报权限不足。

这些Linux命令是比较常用实用的命令,肯定会有用得到的时候,如果对你有所帮助,记得点赞收藏转发哦!

三、linux下对文件重命名是什么命令

linux的文件重命名非常简单。常用的是mv命令和rename命令。下面介绍一下这两个命令的用法,具体结节可以参考手册。

1、mvmvfromfiletofile如把文件a.txt得命名为b.txt,可以是mva.txtb.txt。mv一次只能重命名一个文件,而且,它是移动命令。如果tofile已经存在的话,会直接装原文件覆盖,从而造成文件的丢失。当然有选项可以对已存在的文件进行提示,但是,我表示,那个选项我还真不常用。综合这两点考虑,还是决定看看rename吧。

2、renamerenamefromparttopartfilename或者rename's/frompart/topart/'filename如把文件a.txt得命名为b.txt,可以是rename'a''b'a.txt(这个没有试过,看网上别人说的,是这样子的。)还可以是:rename's/^a/b/'a.txt在有的系统之上,用前面的那句可以通过,在有的系统之上,用后面的这个可以通过。两个不一样,一个是C的,一个是perl的。明显看出,后面这条是正则表达式的写法。具体采用哪一种方式,可以manrename,在手册页的最后一行看版本。由于我使用的系统rename的版本是Perl的,所以我只能采用后面的这一种方式。rename强大的地方在于,你可以使用*,?等,对所有符合条件的文件名进行批量修改。而你在使用mv的时候,只能采用写脚本,用循环的方式来解决。

关于linux常用命令正则表达式的内容到此结束,希望对大家有所帮助。

——————————————小炎智能写作工具可以帮您快速高效的创作原创优质内容,提高网站收录量和各大自媒体原创并获得推荐量,点击右上角即可注册使用

小炎智能写作