linux常用命令

之前对linux常用命令不太熟,今天正好,自己从头巩固一下,顺便写在博客中,以便后续自己学习。

     mv 移动文件或者修改文件名

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

  1.          mv test.log test1.txt

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

             mv llog1.txt log2.txt log3.txt /test3

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

             mv -i log1.txt log2.txt

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

             mv * ../

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

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

             -i 提示

             -r 复制目录及目录内所有项目

             -a 复制的文件与原文件时间一样

             实例:

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

             cp -ai a.txt test

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

             cp -s a.txt link_a.txt

    tail用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

      常用参数:

             -f 循环读取(常用于查看递增的日志文件)

             -n<行数> 显示行数(从后向前)

             (1)循环读取逐渐增加的文件内容

             ping 127.0.0.1 > ping.log &(后台运行:可使用jobs -l查看,也可使用fg将其移到前台运行)

             tail -f ping.log(查看日志)

    which命令

    在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

             which     查看可执行文件的位置。

             whereis 查看文件的位置。

             locate  配合数据库查看文件位置。

             find        实际搜寻硬盘查询文件名称。

            

             which是在PATH就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

             常用参数:

             -n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

             实例:

             (1)查看ls命令是否存在,执行哪个

             which ls

             (2)查看which

             which which

             (3)查看cd

             which cd(显示不存在,因为cd是内建命令,而which查找显示是PATH中的命令)

             查看当前PATH配置:echo $PATH;或使用env查看所有环境变量及对应值

    find命令

    用于在文件树中查找文件,并作出相应的处理

             命令格式:

             find pathname -options [-print -exec -ok ...]

             命令参数:

             pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

             -print: 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小时被改变文件数据的文件

             (用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )

             -maxdepth n 最大查找目录深度

             -prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略

             -newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项

             实例:

             (1)查找48小时内修改过的文件

             find -atime -2

             (2)在当前目录查找 以.log结尾的文件。 ". "代表当前目录

             find ./ -name '*.log'

             (3)查找/opt目录下 权限为 777的文件

             find /opt -perm 777

             (4)查找大于1K的文件

             find -size +1000c

             find -size 1000c 查找等于1000字符的文件

             -exec         参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{}   花括号代表前面find查找出来的文件名。

             实例:

             (5)在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)

             find . -type f -mtime +10 -exec rm -f {} \;

             (6)当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 按y键删除文件,按n键不删除

             find . -name '*.log' mtime +5 -ok -exec rm {} \;

             (7)当前目录下查找文件名以passwd开头,内容包含"pkg"字符的文件

             find . -f -name 'passwd*' -exec grep "pkg" {} \;

             (8)用exec选项执行cp命令 

             find . -name '*.log' -exec cp {} test3 \;

             -xargs find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

             实例:

             (9)查找当前目录下每个普通文件,然后使用xargs来判断文件类型

             find . -type f -print | xargs file

             (10)查找当前目录下所有以js结尾的并且其中包含'editor'字符的普通文件

             find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;

             find -type f -name '*.js' | xargs grep -lF 'editor'

             (11)利用xargs执行mv命令

             find . -name "*.log" | xargs -i mv {} test4

             (12)用grep命令在当前目录下的所有普通文件中搜索hostnames这个词,并标出所在行

             find . -name \*(转义) -type f -print | xargs grep -n 'hostnames'

             (13)查找当前目录中以一个小写字母开头,最后是4到9加上.log结束的文件

             find . -name '[a-z]*[4-9].log' -print

             (14)在test目录查找不在test4子目录查找

             find test -path 'test/test4' -prune -o -print

             (15)实例1:查找更改时间比文件log2012.log新但比文件log2017.log旧的文件

             find -newer log2012.log ! -newer log2017.log

             使用depth选项:

             depth选项可以使find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。 

             实例:find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。 它将首先匹配所有的文件然后再进入子目录中查找

             find / -name "CON.FILE" -depth -print


    chmod命令

    用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

    用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

             每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用ls -l test.txt查找

             以文件log2012.log为例:

             -rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

             第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。

             常用参数:

             -c 当发生改变时,报告处理信息

             -R 处理指定目录以及其子目录下所有文件

             权限范围:

             u :目录或者文件的当前的用户

             g :目录或者文件的当前的群组

             o :除了目录或者文件的当前用户或群组之外的用户或者群组

             a :所有的用户及群组

     

             权限代号:

             r :读权限,用数字4表示

             w :写权限,用数字2表示

             x :执行权限,用数字1表示

             - :删除权限,用数字0表示

             s :特殊权限

             实例:

             (1)增加文件t.log所有用户可执行权限

             chmod a+x t.log

             (2)撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息

             chmod u=r t.log -c

             (3)给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

             chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)

             (4)将test目录及其子目录所有文件添加可读权限

             chmod u+r,g+r,o+r -R text/ -c

    chown命令

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

    -c 显示更改的部分的信息

             -R 处理指定目录及子目录

             实例:

             (1)改变拥有者和群组 并显示改变信息

        chown -c mail:mail log2012.log

             (2)改变文件群组

             chown -c :mail t.log

             (3)改变文件夹及子文件目录属主及属组为mail

             chown -cR mail: test/



    如果觉得对你有用,请帮我评论下谢谢了, 要是觉得没用就就不用了。

        













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值