zoukankan      html  css  js  c++  java
  • linux 基础知识总结

    1. 查看目录文件命令:

        查看以f开头的文件:ll f*

        查看/usr/local目录下的文件:ll /usr/local

        按最后的修改的时间顺序,列出:ll -t */f*               时间反序:ll -tr */f*

        文件以大小顺序显示:ll -Sh 大小反序:ll -Shr

        列出/home/peidachang文件夹下的所有文件和目录的详细资料:ls -l -R /home/peidachang

        计算当前目录下的文件数和目录数:

        ls -l * |grep "^-"|wc -l ---文件个数

        ls -l * |grep "^d"|wc -l ---目录个数

    2. cd 进入当前用户目录

    3. 目录连接链接时,pwd -P 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

    4. 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。

        并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。

    5. mkdir -p 创建多层目录

    6. cat -n fileName // 显示文件,携带行号

        cat -n file1 file2 // 同时打开file1,file2

        cat -b fileName // 显示文件内容,携带行号,行号忽略空行

    7. nl fileName // 显示文件内容,携带行号,行号忽略空行

        nl -n fileName //显示文件内容,携带行号,行号不忽略空行

    8. history | cat // 查看cat的使用历史

    9. 列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来 :ls -l | more -5

    10. head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。可以加 -n 参数,指定显示的行数

    11. tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,

          tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新, 使你看到最新的文件内容.

    12. 1). which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底

               是哪一个位置的命令。

          2). whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。和find相比,

               whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,

               通过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者

               刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

          3). locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,

               但较差劲的是locate所找到的档案若是最近才建立或刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)  locate指定用在搜寻

               符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”*” 或”?”等)来指定范本样式,如指定范本为kcpa*ner, locate

               会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。

               locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般

               是由操作系统管理,但也可以直接下达updatedb强迫系统立即修改索引数据库。

          4). Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值

               得我们花时间来了解一下。

               find 命令格式:find pathname -options [-print -exec -ok ...]

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

               常用命令选项:-name 按照文件名查找文件。 // find . -name "*.log"

               -mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

               另外:

                      -amin n 查找系统中最后N分钟访问的文件

                      -atime n 查找系统中最后n*24小时访问的文件 //超找48小时内修改过的文件:find -atime -2

                      -cmin n 查找系统中最后N分钟被改变文件状态的文件

                      -ctime n 查找系统中最后n*24小时被改变文件状态的文件

                      -mmin n 查找系统中最后N分钟被改变文件数据的文件

                      -mtime n 查找系统中最后n*24小时被改变文件数据的文件

          5). find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。

               exec解释:

               -exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。

               {} 花括号代表前面find查找出来的文件名。使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项

               执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除

               的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一

               下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

               find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出 : find . -type f -exec ls -l {} ;

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

               find . -name "*.log" -mtime +5 -ok rm {} ;

               用exec选项执行cp命令 :find . -name "*.log" -exec cp {} test3 ;

          6). xargs命令过于复杂,先了解:

               在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,

               这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

          7). find命令还可以根据时间、文件大小、权限等查找。find命令可以使用正则表达式:

               例如:如果想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件: 命令:find . -name "[a-z]*[4-9].log" -print

    13. 根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的

          开机软件、核心文件、开机所需程序、 函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,

          所以在FHS的要求方面,他希望根目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。

          因此FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,

          根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和Windows的C盘一个样。

    14. 要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与

          开机过程有关的目录, 就不能够与根目录放到不同的分区去。那哪些目录不可与根目录分开呢?有底下这些:

          /etc:配置文件

          /bin:重要执行档

          /dev:所需要的装置文件

          /lib:执行档所需的函式库与核心所需的模块

          /sbin:重要的系统执行文件

          这五个目录千万不可与根目录分开在不同的分区。请背下来啊。

    15. /usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据啦。这点要注意。 FHS建议所有软件开发者,

          应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。

    16. /usr/local/ : 系统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。

    17. 如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的文件,包括缓存(cache)、

          登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。

    18. / (root, 根目录):与开机系统有关;/usr (unix software resource):与软件安装/执行有关;/var (variable):与系统运作过程有关。

    19. 在linux系统中,一切皆文件

    20. 通过ln -s 源文件名 新文件名    // 建立链接文件

    21. 基本上,Linux的文件是没有所谓的扩展名的,一个Linux文件能不能被执行,与他的第一栏的十个属性有关, 与档名根本一点关系也没有。这个观念跟Windows的情况不相同喔!

          在Windows底下, 能被执行的文件扩展名通常是 .com .exe .bat等等,而在Linux底下,只要你的权限当中具有x的话,例如[ -rwx-r-xr-x ] 即代表这个文件可以被执行。不过,

          可以被执行跟可以执行成功是不一样的

    22. 虽然如此,不过我们仍然希望可以藉由扩展名来了解该文件是什么东西,所以,通常我们还是会以适当的扩展名来表示该文件是什么种类的。

    23. 你在网络上下载一个可执行文件,但是偏偏在你的 Linux系统中就是无法执行!呵呵!那么就是可能文件的属性被改变了。不要怀疑,从网络上传送到你的 Linux系统中,文件的

          属性与权限确实是会被改变的。

    24. 我们希望Linux的文件名可以一看就知道该文件在干嘛的, 所以档名通常是很长很长。

    25. 命令下显示的时间表示:最后访问或修改时间;

    26. 将文件file1改名为file2,即使file2存在,也是直接覆盖掉:mv -f log3.txt log2.txt ;-f 这是个危险的选项,使用的时候一定要保持头脑清晰,一般情况下最好不用加上它。

          如果有询问:mv -i log1.txt log2.txt

    27. 文件被覆盖前做简单备份,前面加参数-b:mv log1.txt -b log2.txt

    28. 查阅上述 tar包内有哪些文件:tar -ztvf log.tar.gz

          只将 /tar 内的 部分文件解压出来:tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

          z:通过gzip支持压缩或解压缩。还有其他的压缩或解压缩方式,比如j表示bzip2的方式。

          x:解压缩。c是压缩。

          v:在压缩或解压缩过程中显示正在处理的文件名

          f:f后面必须跟上要处理的文件名。

          t: 列出档案文件的内容,查看已经备份了哪些文件。

    29. 打tar包传输文件有三个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。三是保证文件权限属性等。

    30.  grep 同时满足多个关键字和满足任意关键字

            ① grep -E "word1|word2|word3"   file.txt 

                 满足任意条件(word1、word2和word3之一)将匹配。

            ② grep word1 file.txt | grep word2 |grep word3

                 必须同时满足三个条件(word1、word2和word3)才匹配。

  • 相关阅读:
    Kali Linux渗透基础知识整理(二)漏洞扫描
    Elasticsearch为记录添加时间戳timestamp
    手把手带你使用JS-SDK自定义微信分享效果
    SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问
    Java 骚操作--生成二维码
    清除微信内置浏览器缓存
    使用python脚本Telnet 华为交换机备份配置
    如何备份思科、锐捷、Juniper的配置文件
    微信公众平台开发教程Java版(六) 事件处理(菜单点击/关注/取消关注)
    How do you build a database?
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/5009911.html
Copyright © 2011-2022 走看看