• Linux学习笔记 (二)常用linux命令


    一、命令行语法:

      命令字 [选项] [参数]

      注意:Linux中对命令是区分大小写的。

     

    二、获取命令帮助:

      1、help命令:help xxx,shell内部指令,用来获取linux内部命令。例如:help help。

      2、'--help'选项:xxx --help 获取命令的帮助信息。 ls  --help。

      3、man命令:man xxx 以全屏方式显示帮助手册,按q退出。 man ls 。

      4、info命令:info xxx 以更详细的方式获取帮助手册 按q退出。 info ls。

     

    三、文件目录操作命令:

      1ls:显示目录中的内容

        常用选项:

        -l:以长格式显示文件和目录,快捷显示ll

        -a:显示所有子目录和文件的信息

        -d:显示目录本身的属性

        -R:显示指定目录及所有的子目录

        -i:显示I节点号。(硬盘上的文件编号,唯一)

        通配符:

        ?:匹配文件中的某一个字符。

        *:匹配文件中的任意多个字符。

     

      2cd:改变工作目录

        相对路径:相对当前工作目录的路径。

        a、一个.开头:当前路径

        b、两个..开头:上一级目录

        c、一个~开头:宿主目录

        d、一个/老调皮:根目录

        e、-上一次访问的目录

        绝对路径:从系统的根目录开始的路径/home/xxx。

        cd 按两下tab会有意外惊喜喔!

     

      3pwd:显示当前目录  

      4du:统计目录

        -a:统计磁盘空间占用时所有的文件。

        -h:将以个性化的方式统计结果,显示文件单位

        -s:只统计每个参数所占用控件总的大小。

      5mkdir:创建新的目录

        -p:创建嵌套多层目录

        mkdir -p aaa/bbb/ccc 一次创建3层目录,不带-p会报错。

      

    四、文件操作命令

      1touch:创建新文件。

      语法:touch 文件列表

      如果文件不存在则创建一个空文件,如果文件存在则更新文件创建时间,可以一次创建多个文件。

      例如:touch  file1.txt file2.txt  //同时创建2个文件

     

      2cp:复制文件或目录。

      语法:cp [options] 源位置 目标位置

      选项:

      -f:强制复制。

      -i:提醒用户确认。

      -p:保持属性不变。

      -r:赋值所有文件及子目录。

      -d:如果文件是链接文件,则复制链接属性

      -a:相当于pdr,可以将最后修改时间和原来的时间保持一致

      例如:cp -r mydir mydir_back  

     

      3mv:改名或移动文件或目录。

      mv file1.txt file_first.txt  :将file1.txt重命名为file_first.txt

      mv file1.txt /home/file2.txt:将file1.txt移动到/home/file2.txt

     

      4rm:删除文件或目录。

      语法 rm [options] name

      选项:

      -f:直接强制删除。

      -i:提醒用户确认。

      -r:删除整个目录及目录下的所有文件。

      例如:

      rm file1.txt    //删除文件

      rm -r mydir      //删除文件夹

      注意:默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定的目录,以及其下所有的内容。

      

      5file:查看文件类型。

      语法:file 文件路径

      例如:file /usr/bin/ls

     

      6ln:建立快捷方式。

      语法:ln [-s] 源文件或目录链接文件或目标目录

      快捷方式主要分为硬链接和软链接。  

      硬链接:

      1)是指具有指向相同索引块中的不同的两个文件,具有相同的I节点和Block块,只是名称不同。

      2)修改任意文件,另一个都会改变

      3)不能对目录创建硬链接,也不能跨越分区创建硬链接文件。

      4)删除任意一个硬链接文件,只要另一个还存在,文件即存在。

      5)创建硬链接后,只能通过i节点来识别。

        创建一个硬链接: ls /home/a.txt /tmp/b.txt    //为home/a.txt创建一个硬链接。

     

      软链接:(类似Windows中的快捷方式)

      1)软连接有自己的i节点和block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据。

      2)lrwxrwxrwx:软连接的权限都为lrwxrwxrwx。不是正真的文件权限。

      3)修改任意文件,另一个都会改变。

      4)删除原文件,链接不能使用。(和硬链接最大的区别就在这里)

      5)建立软连接后,如果不使用绝对路径,软连接和原文件必须在同一个目录中,如果不在同一个目录中,必须使用绝对路径。

      符号链接(软链接):需要ln添加-s选项。

      例如:ln -s /home/zhengcheng/mydir/file1.txt /home/zhengcheng/桌面  //为file1.txt 在桌面创建软链接

     

    五、文件搜索命令  

      1locate:文件搜索(相对于find搜索的效率比较高)

      语法:locate 文件名

      注意:使用locate无法搜索到新的文件,因为locate是到/var/lib/mlocate数据库进行搜索。新文件未添加到数据库中,所以无法搜索到

      必须使用updatedb命令,手动更新数据库,才能搜索到新添加的文件。

      优点:搜索的效率比较高,缺点是只能按文件名进行搜索,搜索方式比较单一。

        

      当在/tmp/a,txt中创建了文件后,发现使用locate无法搜索的该文件,原因是locate的配置文件中对/tmp目录进行了排除。

      locate配置文件 /etc/updatedb.conf

      其中有4个配置属性:  

      PRUNE_BIND_MOUNTS = "yes"       //表示下面所有设置都生效,无效为no。  

      PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"          //排除的文件系统

      PRUNENAMES = ".git .hg .svn"    //排除某一类文件
      PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"    //排除某些文件夹

      

      2find:查找文件或目录。

      find相对于前面两种方式来说要更加强大。参数也更多。

      语法:find [查找范围][查找条件表达式]

      条件参数:

    -name【-iname】:按名称查找(不区分大小写查找)

      -size:按大小查找

      -user【-nouser】:按文件所有者查找【非所有者文件:一般不经过用户的文件,有两种情况,一种情况是内核自动创建的文件没有所有者,一般在内存中;第二种是外部文件,由外部系统创建的文件。其他情况则都属于垃圾文件。】

      -type:按文件类型查找

      例:find /var/log –size 25k   //搜索25k的文件。+25:大于25k的文件,-25:小于25k的文件。

      注意:linux中搜索必须带单位,k为小写,M为大写。默认为硬盘扇区单位。

      -mtime:按修改文件时间; 

      例:find /var/log –mtime 10 //查找10天当天修改的文件。(+10:为10天前修改的文件,-10为10天内修改的文件)。

      -atime:文件访问时间;

      -ctime:改变文件属性时间;

      -inum:根据i节点搜索。

      例如:

      find /root -name a.txt   //表示从root目录开始搜索,文件为a.txt的文件。

      find / -name "*.c"   //从根目录开始,通过通配符进行搜索,搜索以.c结尾的文件,使用通配符时,必须使用””引起来。

      注意:在使用find命令时,应该避免大范围的搜索,会导致文件搜索的非常缓慢,因为根目录下文件太多, 会非常消耗系统资源。

      Linux中的通配符:

      *:表示匹配任意多个字符。

          ?:表示匹配单个字符。

          []:表示匹配括号中的单个字符。

     

          find的复杂搜索:

          find /etc –size +20k –a –size -50k    //搜索20k到50k之间的文件

          -a:and 逻辑与,两个条件都满足。

          -o:or 逻辑或,两个条件满足一个即可。

         

          find /etc -size +20k -a -size -50k -exec ls -lh {} ;

          //搜索20k到50k之间的文,并显示详细信息

          //-exec /-ok 命令{} ;对搜索结果进行查询 –exec {} ; 为固定格式,表示在前面命令的搜索结果上在做操作。

     

      3which:查找命令文件的位置以及他的别名

      语法:which 命令

      例如:which ls  

      alias ls='ls --color=auto'   --设置自动着色
      /usr/bin/ls

     

      4、whereis:搜索命令所在的位置和帮助文档所在的位置。不能搜索普通文件。

      -b:只查找可执行文件。

      -m:只查找帮助文件。

      例:whereis ls  

      ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz   查找到ls命令所在的目录和帮助文档所在的目录。

      注意:不论使用whereis和which都无法搜索到cd命令。原因是因为cd命令为linux和内置shell指令。

      

      

      4grep:在文件内容中进行搜索。搜索文件内容。可以和正则表达式匹配使用。

      语法:grep [选项] 查找条件 目标文件

      -i:忽略大小写查找

      -v:反转查找,查找不在范围内的行

      例如:grep -i hello file1.txt  查找hello在file1.txt中的位置,并忽略大小写

     

    六、文件内容操作命令  

      1cat:显示文件内容

      cat  b.txt       //显示b.txt文件内容

      

      2echo:打印内容

      echo aaaa     //显示aaaa字符串

      echo aaaa => b.txt    //将aaaa添加到b.txt文件中,如果文件不存在则创建文件

     

      3more/less:分页显示文件内容。

      语法 more/less 文件名

      space:向下翻页

      b:向上翻页

      h:帮助文档、

     

      4、vi、vim:文档编辑工具(后面会有专门的介绍)

     

     七、环境变量

      echo $PATH:在linux中,所有的命令都必须使用绝对路径方式才能执行,而环境变量表示linux执行命令所查找的目录,避免输入繁琐的目录名,提高输入效率。

      /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:   //环境变量采用:分隔。

     

    Linux常用命令查询:

    常用Linux的20个命令:http://www.oschina.net/translate/useful-linux-commands-for-newbies

    命令查询:http://www.jb51.net/linux/

  • 相关阅读:
    关于STM32F405的GPIO中断问题
    No section matches selector
    碳元科技估计要炸
    FreeRTOS 时间片,外部中断,任务优先级的一个疑问
    STM32之HAL库、标准外设库、LL库
    suggest braces around empty body in an 'if' statement
    快速搭建Redis缓存数据库
    Docker Centos安装Openssh
    vmdk虚拟机转换为OVF模板,导入esxi
    Redis安装及主从配置
  • 原文地址:https://www.cnblogs.com/zhengcheng/p/4504857.html
Copyright © 2020-2023  润新知