zoukankan      html  css  js  c++  java
  • Linux基础知识整理

    一、基础知识

    1、Linux简介

      Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIXUNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位64位硬件。Linux继承了Unix网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

      简单点说,linux就是一个操作系统,和windows、mac的os x 一样。

    Linux的版本号又分为两部分:内核(Kernel)版本和发行(Distribution)版本。内核版本的序号由3部分数字构成,其形式:2.4.20

      Linux国外主要发行版本
      1.Red Hat Linux
      2.SuSE Linux
      3. Turbo Linux
      4. Ubuntu
       Linux国内主要发行版本
      1.红旗Linux【红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。目前在中国各软件专卖店可以购买到光盘版,同时官方网站也提供光盘镜像免费下载。红旗Linux是中国较大、较成熟的Linux发行版之一】
      2.中标普华Linux【上海中标软件有限公司发布的面向桌面应用的操作系统产品】
      3. 蓝点Linux【蓝点软件技术(深圳)有限公司研发,早期研发个人桌面linux,但现蓝点(BluePoint)主要产品:防毒及邮件过滤 , 防火墙】

    Linux内核版本号的含义:Linux内核版本由3个数字组成:r.x.y,
      r:目前发布的Kernel主版本
      x:偶数是稳定版本,奇数是开发中的版本 
      y:错误修补次数 
      一般来说,x位为偶数的版本表明这是一个可以使用的稳定版本,如: 2.6.18;x位为奇数的版本一般加入了一些新内容,不一定稳定,是测试 版本,如:2.7.22。 
    查询内核版本命令: uname -r

    2、Linux特点

      1、开源的

      2、强大的数据库支持

      支持Oracle、Sqlite、Sybase、DB2、MySQL、PostgreSQL

      3、强大的网络功能

      可以充当应用服务器、文件服务器、打印服务器、邮件服务器、新闻 服务器等

      4、支持多用户

       Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响【win只能一个用户连接,如果一个用户连接了win,其他人都不能再连接了;而linux支持多个用户可以同时连接同一台linux服务器】

      5、支持多种文件系统

      6、良好的可移植性

      Linux是世界上唯一能够在嵌入式设备、个人计算机、服务器、小型机甚至大型机上运行的操作系统

      7、可靠性高

    3、Linux远程登录工具

      1、telnet远程登录

      2、SSH远程登录

      SSH远程登录常用工具:secureCRT/xshell/ssh命令远程登录等

      注:win下用ssh命令连接远程服务器,即命令: ssh 用户名&IP【需安装OpenSSHWindows包才有SSH命令】

      

          

    4、Linux上传下载工具

      1、Xftp、FileZilla、Winscp等工具

      2、RZ、SZ命令

        Rzsz需要在linux下安装:

             a、Rzsz命令安装:使用yum安装,yum –y install lrzsz【需要网络】

             b、编译安装:http://blog.chinaunix.net/uid-20639775-id-154615.html【不需网络】

           缺点:RZsz命令只能上传文件,不能上传文件夹,如果上传文件夹必须将其压缩才可以上传

    5、Linux系统管理

      1)、注销、重启命令

      a、注销:exit(常用于字符界面,图形界面只关闭终端窗口)
               logout(仅文本终端)
      b、重启命令
      reboot
        -w:不实际关机,用户登录信息写入/var/log/wtmp
        -d:不将用户登录信息写入/var/log/wtmp
        -f:强制重启
        reboot 可以不接参数【直接重启】
      shutdown
        shutdown -r 延时分钟数 “提示信息”
        shutdown -r now(now表示立即执行)
        不能单独用,至少2个参数

      c、关机
      halt
        -w:不实际关机,用户登录信息写入/var/log/wtmp  -d:不将用户信息写入/var/log/wtmp
           -f:强制关机
           -p:关机后,关闭电源
         可以不接参数
      poweroff
         除了无-p参数,其他与halt同
      init 0
      shutdown
        shutdown -h 延时分钟数 “提示信息”
        shutdown -h now(now表示立即执行)
        不能单独用,至少2个参数

      2)、图形化界面和文本界面

       a、 /etc/inittab文件中的initdefault参数可以修改默认启动图形化界面还是文本界面,3为默认进入文本界面,5为默认进入图形化界面。

           

           原因:虚拟机里只安装了文本界面,未安装图形化界面,如果initdefault改为5,重启虚拟机时,会一直按图形化界面启动但是系统又未安装图形化界面,所以启动不起来

       b、文本界面下输入init5或者startx切换图形化界面;图形化界面下输入init3切换文本界面

       c、一般默认进入文本界面

    6、Linux用户、组

       1)、Linux用户 

       a、添加用户
      useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s 用户shell程序 用户名
        useradd -d /usr/local/nginx/ -g nginx -G nginx,oracle -p123456 -s /bin/bash test4
      若没有使用-p,可以使用命令加密:passwd 用户名
       passwd test4
      可以不加参数直接useradd test5,添加一个用户,默认使用bash shell,家目录在/home/下
      看Linux中有哪些用户:进入home目录,在该目录下ls

      b、修改用户
      usermod -l 新用户名 -d 新家目录 旧用户名
        usermod –l tom –d /usr/local/tomcat test4
      家目录要存在,且为绝对路径
      Usermod中同样可以使用useradd参数

      c、删除用户
      userdel -r 用户名
        userdel –r test3
        -r用于删除家目录及其所有文件
      注:-c comment 指定一段注释性描述。
          -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
        -g 用户组 指定用户所属的用户组。
        -G 用户组,用户组 指定用户所属的附加组。
        -s Shell文件 指定用户的登录Shell。
        -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
      d、切换用户su
      用法: su root 或者 su - root
      这两者的区别是su root不会重新加载切换用户的用户变量,su - root会重新加载用户的用户变量
      注:$和#,$代表普通用户,#代表root用户

      e、获取超级用户权限sudo
      用法:sudo reboot
      有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限
      如果普通用户要使用sudo命令,需要在/etc/sudoers文件中配置才可以使用,例如要besttest用户可以使用sudo获取root用户权限,使用root用户编辑/etc/sudoers文件,找到 root ALL=(ALL) ALL 这一行,在它下面加入bestest ALL=(ALL) NOPASSWD:ALL然后保存即可。NOPASSWD代表该用户使用sudo的时候不用输入密码

        2)、Linux组

      a、增加组groupadd
      groupadd -g 组ID -r 组名
        Groupadd –g 451 –r besttest
      -r:建立系统组,组ID小于499
      新组ID在500-60000之间,小于500的为系统组
      所有参数均可省(除了组名)
      groupadd dba 添加一个dba组

      b、修改组groupmod
      groupmod –g 组新id –n 组新名 组旧名
        groupmod –g 561 –n test besttest

      c、删除组groupdel
      groupdel 组名
        groupdel test

    7Linux网络配置

      1)、设置ip地址【设置静态IP】

      1、在/etc/sysconfig/network-scripts/ifcfg-eth0文件中设置

      2、Linux下ip地址信息以及ip获取方式都是存放在ifcfg-eth0这个文件下的,如果有多块网卡的话就是ifcfg-eth0、ifcfg-eth1依次

            

      2)、设置临时ip地址

      命令:ifconfig eth0 192.168.1.102 【eth0指定第1块网卡】

        注:临时设置ip地址可以使用ifconfig 网卡 ip地址临时设置ip地址,重启后会失效

        注:如果没有ifconfig命令,可以用ip a来查看ip地址

              自动获取ip地址命令:dhclient

      3)、设置dns【上网的话需要配置DNS,解析成IP地址】

      修改文件:/etc/resolv.conf

          

      一般不要设置静态IP地址和DNS,因为如果网络发生变化需要重新设置IP和DNS,可用命令dhclient自动获取ip地址。

      全局网络配置文件:/etc/sysconfig/network

        主要有两个配置项 NETWORKING(网络工作状态)和HOSTNAME(主机名)

        修改主机名的话修改HOSTNAME的值即可

        查看ip地址,ifconfig命令

        重启、启动、停止网络命令:service network restart/start/stop

     4)、VMware的3种网络类型

      1、VMnet0:用于虚拟桥接网络下的虚拟交换机【桥接方式】

      2、VMnet1:用于虚拟Host-Only网络下的虚拟交换机【仅主机模式】

      3、VMnet8:用于虚拟NAT网络下的虚拟交换机【NAT模式】

       VMware Network Adapter VMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡

      VMware Network Adapter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡。

       

      虚拟机有三种连接方式:桥接方式、NAT模式、Host-only模式(仅主机模式);三者区别:
        桥接方式:去局域网获取IP,不同的网络,IP地址会变
        NAT模式和Host-only模式都是把电脑本身当成转换器去获取IP,所以不同网络IP地址不变,如果想IP地址不变可以选择NAT模式或Host-only模式,但是Host-only模式有时会上不了网,所以建议用NAT模式连接

    8Linux文件系统

    • 树状结构,/为最高的根目录
    • root:root用户的个人文件夹(家目录)
    • bin:存放多数用户可用的命令
    • boot:存放启动文件和配置信息,系统启动时会用
    • dev:存放设备文件,/dev/hdc代表光驱
    • etc:存放服务配置文件
    • home:其他用户的家目录
    • lib:存放程序运行所需要的库文件
    • media:可移动设备的挂载目录
    • mnt:设备挂载目录
    • usr:用户程序存放目录
    • var:存放经常改动的数据文件
    • tmp:存放临时文件
    • sbin:存放维护系统所需命令,一般仅root可用
    • proc:存放核心运行时产生的文件,这些文件位于内存而非硬 盘中
    • sys:与proc类似,设计比proc更清晰,文件位于内存
    • srv:服务需要的数据的存放目录
    • lost+found:文件系统修复时找回的丢失文件
    • opt:额外软件安装目录
    • misc:不方便归类的杂项文件
    • selinux:SELinux文件系统实例

     9、文本编辑器VI

      vi是Linux/Unix底下最常用的文本编辑器,可以理解为和Windows下的txt一样。

      vim:vim是vi的升级版本,它不仅兼容vi的所有命令,而且还加入了一些新的特性,可以把vim理解为vi的升级版

      1)、vi有两种模式:命令模式和编辑模式

       a、命令模式

    • 进入vi时的默认模式,此模式下所有的用户输入都视为命令
    • 用户在此模式下进行搜索、复制、替换

       b、编辑模式

    • 用户在此模式下可以编辑文本内容

      2)、vi模式切换

      默认进入命令模式,切换成编辑模式按键如:i(当前位置) 、a(下一位置)、o(下一行);
      编辑模式切换成命令模式:esc[在键盘的左上角]

      3)、VI对文件的编辑方式

     1)、  光标定位

    • M 移动光标到页面中央
    • L移动光标到页面尾处
    • H移动光标到页面开始处
    • Ctrl+f向后翻页
    • Ctrl+b向前翻页
    • 0移动光标到行首
    • $移动光标到行尾
    • /:从上往下开始查找【格式:/查找的内容】
    • ?:从下往上开始查找【格式:?查找的内容】
    • Ctrl + d:往下翻半屏内容
    • Ctrl + u:往上翻半屏内容
    • Shift + g:到文件末尾
    • u复原前一个动作
    • . 重复前一个动作
    • nyy  复制光标所在的向下n行内容
    • yw复制光标后的单词,以空格为分界
    • p在光标处粘贴复制的内容
    • ndd删除光标所在向下n行的内容
    • r:替换当前位置字符
    • x:删除当前位置字符
    • dd:删除整行
    • :1,3y 复制第一行到第三行
    • :1,3d 删除第一行到第三行
    • :1,3s/str/str_new/g 替换第一行到第三行中的字符串
    • :1,3s/str/str_new    替换第一行到第三行中的字符串第一个字符
    • :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
    • set number:显示行号
    • set nonu:取消显示行号

      2)、  撤销和重复

      • u复原前一个动作
      • . 重复前一个动作

        3)、  复制 粘贴 删除 替换

      • nyy 复制光标所在的向下n行内容
      • yw复制光标后的单词,以空格为分界
      • p在光标处粘贴复制的内容
      • ndd删除光标所在向下n行的内容
      • r:替换当前位置字符
      • x:删除当前位置字符
      • dd:删除整行
      • :1,3y 复制第一行到第三行
      • :1,3d 删除第一行到第三行
      • :1,3s/str/str_new/g 替换第一行到第三行中的字符串

          • :%s/str/str_new/g 替换文件中所有【将文件中所有str字符串替换成str_new】
      • :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
      • :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行

       4)、 设置行号

      • set number:显示行号
      • set nonu:取消显示行号

           

       5)、 搜索字符串

    • 输入/+要查找的字符串
      • /bestest
    • 按n键重新查找下一个

       6)、 退出

      • q 退出vi
      • q! 不保存退出
      • wq 保存退出
      • e!不保存修改的文件
      • w 保存
      • !强制,后面加叹号的话表示强制

    二、Linux常用命令

    1、帮助命令

        whatis命令:简单描述命令功能
      -help选项:命令使用摘要及参数列表
      man命令:命令说明文件
      info命令:更详细的说明文件
      说明/usr/share/doc/

    2、文件管理命令

    1、alias给命令起别名、unalias取消别名
        alias给命令起别名,想要用该命令可以直接用别名即可
        格式:alias 命令别名='命令'
        unalias取消别名(格式:unalias 别名)
        eg:启动/停止lampp时总是要到它响应的目录下,这时可起个别名,直接用别名启动、停止lampp,简化操作,具体如下图:
        

        上图方式只在本次启动有效,如果虚拟机注销,此别名失效;要想让其一直有效可以在用户的家目录下编译.bashrc文件【该文件是用户环境变量文件】,添加命令别名后用source命令使其生效,如下图:

          

        输入alias查询系统别名

              

    2、ls查看

    • ls:列举指定目录下的子目录和文件
      • 用法:ls [-arltrx] [name……]
      • 主要参数:
        • -a, --all:不隐藏任何以“.” 字符开始的项目。 -i, --inode:列出每个文件的inode号。 -l:使用较长格式列出信息。
        • -t 以时间排序。
        • -r, --reverse:依相反次序排列。
        • -R, --recursive:同时列出所有子目录层。 -s, --size:以块大小为序
    •   ls -l 显示文件信息【例如:大小、权限等】
    •   命令可以和通配符"*"一起使用:eg:ls p* :查看当前目录下所有p开头的文件

    3、cd进入目录

    •  cd回车:退到当前用户个人目录
    • cd / :退到最根目录
    • cd ../xx:退到上级目录的xx目录
    • cd .:停留在当前目录
    • cd .. :返回上级目录
    • cd –:回到上一次操作的目录
    • cd ~: 回到用户家目录

         

    4、cp: 复制文件夹/文件
      • cp:复制指定文件到另一文件或目录
      • 用法:cp [-abrifLP] [source] [dest]
      • 主要参数:
      • -a:尽可能的将文件的属性、权限的内容都照原状复制
      • -b:如果目的文件存在,就创造一个备份
      • -r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录
      • -i:若目的地有重复的文件,询问是否覆盖
      • -f:若目的地有重复的文件,则覆盖原有文件
      • -L:复制符号链接,自动修改链接以保证链接有效
      • 举例:
      • cp -rf a.txt /tmp
      注:复制时如果使用-rf时若有重复文件,依然提示是否覆盖,原因:使用alias下查看cp别名,会发现alias cp='cp -i'默认cp命令加了-i,如果不想提示是否覆盖,可以unalias cp。

          

    5、scp:在两台电脑间复制

          

    6、mv移到文件/还有改名的功能

      • mv:用来为文件或目录改名,或者将文件由一个目录移入另一个目录中
      • 用法:mv[options] 源文件或目录 目标文件或目录
      • 主要参数:
        • -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆 盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可 以避免误覆盖文件。
        • -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任 何指示,指定此参数后i参数将不再起作用。
        • 举例:将/usr/local/tomcat下所有文件移动到 /tmp/tomcat下
        • mv /usr/local/tomcat/* /tem/tomcat
        • 将a.txt改名为b.txt
        • mv a.txt b.txt
           

      注:mv[options] 源文件/目录 目标【与源文件/源目录路径相同名称不同】---->改名
      mv[options] 源文件/目录 目标【与源文件/源目录路径、名称均不同】---->移动并改名
      mv[options] 源文件/目录 目标【与源文件/源目录路径不同、名称相同】----->移动

    7、rm删除文件/文件夹
      • rm:用来删除文件或目录
      • 用法:rm [-ifr] name
      • 主要参数:
        • -r:删除目录及子目录,目录下如果有子目录及文件也会被删除
        • -f:不询问直接删除
        • -i:删除前逐一询问确认
        • 注意: 删除的文件非常难恢复,没有windows的回收站
        • 举例:删除/tmp/logs下所有文件
        • rm -rf /tmp/logs/*
        • rmdir:用来删除一个空文件夹
        • 主要参数 -p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
        • rmdir不能删除非空目录

    8、pwd列出当前目录

      

    9、mkdir创建文件夹

    • mkdir:创建文件夹
      • 用法:mkdir [options] name
      • 主要参数:
        • -p:如果创建的文件夹父目录不存在会连父目录一起创建
        • -m :配置文件案的权限喔!直接设定,不需要看预设权限 (umask)的脸

         

    10、rmdir删除空文件夹
      • rmdir:用来删除一个空文件夹
        • 主要参数 -p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
        • rmdir不能删除非空目录
    11、cat查看文件内容
      • cat:用于连接并显示指定的一个和多个文件的有关信息
        • 用法:cat [options] 文件1 [文件2]……
      • 主要参数:
        • -n:由第一行开始对所有输出的行数编号。
        • -b:和-n相似,只不过对于空白行不编号。
        • -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。
        • 举例:

          •将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件
            • cat a.txt b.txt > c.txt
          • 对行进行编号
            • cat -b a.txt
        • cat 可以不添加任何参数直接使用

    12、more/less分屏显示文件内容
      • more和less:分屏显示文件内容,可以逐页或者逐行 显示文件内容
        • 用法:more [参数] 文件 less [参数] 文件
        • 举例:less a.txt more a.txt
        • 回车为显示下一行
        • 空格为转到下页
        • G 移动到最后一行 #less
        • g 移动到第一行 #less
        注:more/less查看内容后也可以“/+搜索内容”搜索

    13、tail动态查看文件内容
      • tail:查看文件末尾内容
        • 用法:tail [参数] [文件]
        • 主要参数:
          • -f 动态读取
        • 举例
          • 动态查看日志 tail -f err.log
          • 查看末尾10行日志 tail -10 err.log
          • 动态查看末尾5行日志 tail -5f err.log

    14、head显示文件的开头至标准输出中
      • head:显示文件的开头至标准输出中
        • 用法:head [参数]... [文件]...
        • 主要参数:
          • -n<行数> 显示的行数
      head 是从头开始显示内容,head -10 filename:显示前10行内容
      cat、more/less、tail的区别:
        cat会将文件内容全部显示出来,如果文件内容较多只能看到最后的部分
        more/less是一页一页的显示,即分屏显示文件内容
        tail查看文件末尾内容,也可以动态查看文件内容;cat、more、less不能动态查看

    15、ln创建文件链接
      ln创建文件链接,即添加快捷键
      • ln:创建文件链接
      • Linux中,每一个文件都对应于文件系统上的唯一索引节点
      • 硬链接:
        • 一个文件可以有多个文件名,每一个文件名都是一个硬链接,它们指向目标文件所在文件系统中的索引节点,硬链接指向的是同一个物理位置,所以同一文件系统中的文件间才能建立硬链接
        • 硬链接可以看做文件别名,所有硬链接都删除时,文件才被真正删除
        • 目录不可以建立硬链接,否则目录遍历会陷入死循环
        • ln 源文件 硬链接目标文件
      • 软连接【即添加快捷键】
        • 包含目标文件或目录的路径信息
        • 软连接可以跨越文件系统,也可以连接目录
        • 相当于Windows的快捷方式
        • ln -s 源文件 软连接目录或文件【即添加快捷键】


    16、du文件和目录的磁盘使用空间
      • 用法:du [选项][文件]
      • 主要参数:
        • -s或--summarize 仅显示总计,只列出最后加总的值
        • -h或--human-readable 以K,M,G为单位,提高信息的 可读性
        • -k或--kilobytes 以KB(1024bytes)为单位输出
        • -m或--megabytes 以MB为单位输出
        • -S或--separate-dirs 显示个别目录的大小时,并不含其子 目录的大小

         

       常用du -sh [文件]查看大小

    17、lsof列出当前系统打开文件的工具
      • lsof:列出当前系统打开文件的工具
        • 用法:lsof [options] filename
        • 常用参数:
          • lsof filename 显示打开指定文件的所有进程
          • lsof -c string 显示COMMAND列中包含指定字符的进程所有打 开的文件
          • lsof -u username 显示所属user进程打开的文件
          • lsof +d DIR/ 显示目录下被进程打开的文件
          • lsof +D DIR/ 上,但是会搜索目录下的所有目录,时间相对较长

       lsof输出说明:
        • COMMAND:进程的名称
        • PID:进程标识符
        • USER:进程所有者
        • FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、 txt等
        • TYPE:文件类 型,如DIR、REG等
        • DEVICE:指定磁盘的名称
        • SIZE:文件的大小
        • NODE:索引节点(文件在磁盘上的标识)
        • NAME:打开文件的确切名称


    18、chmod赋权限
      • chmod:用来给文件或者文件夹赋权限
        • 用法:chmod [选项][文件]
        • chmod有两种方式,数字方式和文本方式:
          • 数字方式:
            [n][n][n] r=4 w=2 x=1
            rwx:4+2+1; r-x:4+1; rw-:4+2
          • 文本方式
            u -- 该档案的拥有者;
            g -- 与该档案的拥有者属于同一个群体(group)者;
            o -- 其他以外的人;
            a -- 所有
            + -- 增加权限
             - -- 去掉权限
            -R 递归,主要用于一个目录,把该目录下所有的文件/文件夹赋权限
      注:给文件赋权限不需要加-R,给文件夹赋权限时需加-R,如果给文件夹赋权限未加-R,那文件夹的权限修改了但该文件夹下的文件权限未被修改

      示例:
        • 给text文件赋予rwxr-xr-x权限
          chmod 755 text
        • 给text及其子目录底下所有文件赋予rwxr-xr-x权限
          chmod -R 755 text
        • 为文件abc的组拥有者增加rw权限
          chmod g+rw abc
        • 为abc文件的用户拥有者去除x权限
          chmod u-x abc
        • 指定文件abc的其他用户权限为rw-
          chmod o=rw-
        • 为文件abc及其子目录底下的所有文件的全体用户增加x权限
          chmod -R a+x abc

    19、chgrp改变文件所属组
      • chgrp:改变文件所属组
        • 用法:chgrp [选项] [组] [文件]
        • 主要参数:
        • -R 递归
        • 注意:改变所属组的使用权限必须是超级用户


    20、chown改变文件所有者和所属组
      • chown:改变文件所有者和所属组
        • 用法:chown [选项] 用户或组 文件名
        • 主要参数: -R 递归式地改变指定目录及其所有子目录、文件 的文件主
        • 注意:使用权限是超级用户
        举例: chown -R test:test foo


    21、wc统计文件中的行数、字节数、字数
      • wc:统计指定文件中的行数、字节数、字数,并将统计结果显示输出
        • 用法:wc [选项] [文件]
        • 主要参数:
          • -c 统计字节数。
          • -l 统计行数。
          • -m 统计字符数。这个标志不能与 -c 标志一起使用。
          • -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
          • -L 打印最长行的长度。
          • -help 显示帮助信息
          • 可以不加任何参数使用
    22、clear清屏
    23、history查看历史命令

    3、搜索命令

    1、grep显示文件中的匹配行【即查找文件的内容】

    • grep:显示文件中的匹配行
      • 用法:grep [参数] 字符串 文件名
      • 主要参数:
        • 无参:显示匹配行内容
        • -c:显示匹配行数【即总共匹配了几行】
        • -e 字符串:匹配特殊字符串,如-开头
        • -i:忽略大小写
        • -v:输出不匹配行
        • -w:匹配指定字符串
        • 可以和别的命令通过"|"管道符连接使用
      • 示例:
        • grep -c “foo” a.txt【例1】
        • ps -ef|grep httpd |grep -v "grep"【例2】
        • grep常和其他命令结合使用,例如例2

          

    2、find查询文件或文件夹

    • find:查找目录下的文件
      • 用法: find 目标目录 搜索参数 操作参数
      • 主要参数:
        • -name 文件名:可以跟通配符
        • -amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后
        • -atime 天数:文件最后访问时间为指定天数之前,负数表示之后
        • -cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后
        • -ctime 天数:文件最后修改时间为指定天数之前,负数表示之后
        • -user 用户名:属于用户的目录和文件
        • -type 文件类型
      • 示例:
      •  find / -name besttest

    3、定位文件位置

    • locate 命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库( /var/lib/locatedb)【此数据库存放了Linux系统所有的目录】,这个数据库中含有本地所有文件信息,locate命令需要安装,系统本身不自带
    • whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数 -b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省 略参数,则返回所有信息。同locate一样,查询数据库( /var/lib/locatedb)文件
    • which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且 返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
    • 区别:locate可以搜索所有文件,whereis是搜索程序名,如果是一个普通的文件是找不到的,which命令只查找环境变量中path里面的路径
    • 示例:locate besttest.txt
    • whereis mysql
    • which locate

      

  • 相关阅读:
    剑指Offer(Java版)第四十六题:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。
    剑指Offer(Java版)第四十五题:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
    剑指Offer(Java版)第四十四题:输入一棵二叉树,判断该二叉树是否是平衡二叉树。
    剑指Offer(Java版)第四十三题:输入一棵二叉树,求该树的深度。 从根结点到叶结点依次经过的结点 (含根、叶结点)形成树的一条路径, 最长路径的长度为树的深度。
    剑指Offer(Java版)第四十二题:统计一个数字在排序数组中出现的次数。
    剑指Offer(Java版)第四十一题:输入两个链表,找出它们的第一个公共结点。
    剑指Offer(Java版)第四十题:在数组中的两个数字,如果前面一个数字大于后面的数字, 则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。 并将P对1000000007取模的结果输出。 即输出P%1000000007
    剑指Offer(Java版)第三十九题:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符, 并返回它的位置, 如果没有则返回 -1(需要区分大小写).
    剑指Offer(Java版)第三十八题:把只包含质因子2、3和5的数称作丑数(Ugly Number)。 例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。 求按从小到大的顺序的第N个丑数。
    【微信支付】退款
  • 原文地址:https://www.cnblogs.com/lyftest/p/5864737.html
Copyright © 2011-2022 走看看