zoukankan      html  css  js  c++  java
  • Linux基础及常用指令

    1.Linux目录结构

    1. bin(usr/bin,user/local/bin) #存放常用指令,如cp、cat、chown等
    2. sbin(usr/sbin,user/local/sbin) #高权限指令,super或则高权限用户可以使用的指令
    3. boot #启动时的核心文件,包括连接文件以及镜像文件
    4. opt #安装软件,给主机额外安装的软件可以存放在该目录下,存放软件文件
    5. usr/local #另一个给主机安装软件的目录,一般是通过源码编译方式安装的程序
    6. home #家目录,当创建普通用户时,home目录下回创建对应文件
    7. root #系统管理员的用户主目录
    8. dev #设备管理,包含cpu、disk等
    9. etc #存放配置文件
    10. lib/lib64 #动态库,大多为.so文件
    11. media #设备,当插入u盘、光驱后,会挂载到此目录下
    12. mnt #挂载,可以将外部存储挂载到该目录下
    13. proc #虚拟目录,是系统内存的映射,访问该目录可获取系统信息
    14. selinux #安全子系统,控制程序只能访问特定文件
    15. srv #service简写,存放服务启动之后需要提取的数据
    16. sys #系统文件夹
    17. tmp #临时文件夹
    18. var #变量,习惯性将经常被修改的文件放在该目录,例如日志信息

    2.vi/vim快捷键

    1. yy #拷贝当前行,5yy拷贝当前行向下5行,并粘贴[p]
    2. dd #删除当前行,5dd删除当前行向下5行
    3. /关键字 #命名行模式下,/关键字 回车查找,输入n查找下一个
    4. :set nu/:set nonu #命令行模式,设置/取消行号,回车生效
    5. G/gg #G到达文件末行,gg到达文件首行
    6. u #撤销操作
    7. :set nu –> 行号 –> shift+g #跳转到指定行

    3.关机重启

    1. shutdown

      shutdown -h now #立即关机
      shutdown -h 1 #1分钟后关机
      shutdown -r now #立即重启

    2. halt #直接使用,等价于关机
    3. reboot #重启
    4. sync #将内存数据同步到磁盘

      我们在关机或者重启之前都应执行sync命令,避免数据丢失

    4.用户管理

    1. 添加用户

      useradd 用户名 #添加指定用户
      useradd -d 指定目录 用户名 #添加用户名时指定其家目录

    2. 添加/修改密码

      passwd 用户名 #给指定用户添加或修改密码

    3. 删除用户

      userdel 用户名 #删除用户,但是保留家目录
      userdel -r 用户名 #删除用户及其家目录

    4. 查询用户

      id 用户名 #查询用户信息

    5. 切换用户

      su - 用户名 #切换用户,高权限切换低权限时无需密码,反之需要
      使用exit命名可以切换回原来的用户

    6. 增加用户组

      groupadd 组名 #增加用户组

    7. 删除组

      groupdel 组名 #删除组

    8. 增加用户时指定组

      useradd -g 组名 用户名 #增加用户时,指定组

    9. 修改用户组

      usermod -g 组名 用户名 #修改用户所属组

    10. 查看当前用户

      whoami #who am i,查看当前用户

    5.实用指令

    5.1.指定运行级别

    1. init命令

      init [0123456]
      0 #关机
      1 #单用户,可用于找回丢失密码
      2 #多用户状态,无网络
      3 #多用户状态,有网络
      4 #保留
      5 #图形化界面
      6 #重启

    使用单用户模式,找回root密码步骤:
    关机 ->>开机时,按enter键,进入引导 ->>输入e,编辑引导 ->>选择kernel,输入e编辑内核
    ->>输入(空格+1),设置运行级别为1,按enter完成编辑,返回上一级 ->>输入b,开启引导
    ->>启动后处于单用户模式,即root身份进入,输入指令passwd root,即可设置新密码

    5.2.帮助指令

    1. man命令

      man [命令或配置文件] #获取帮助信息

    2. help命令

      help 命令 #获取shell内置命令的帮助信息

    5.3.文件目录指令

    1. pwd指令 #显示当前工作目录的绝对路径
    2. ls指令

      ls [选项] [目录或文件]
      ls -a #显示当前目录所有的文件及目录,包括隐藏的
      ls -l #以列表模式展示所有的文件信息

    3. cd命令

      cd [参数] #切换到指定目录
      cd ~ #回到自己的家目录
      cd .. #返回上一级目录

    4. mkdir命令

      mkdir [选项] 要创建的目录
      mkdir -p [多级目录] #创建多级目录

    5. rmdir命令

      rmdir [选项] 要删除的空目录

      rmdir删除的是空目录,如果目录下有文件,则无法删除,此时可以使用: rm -rf 要删除的目录

    6. touch命名

      touch 文件名 #创建一个空文件

    7. cp命令

      cp [选项] source dest #拷贝文件到指定目录
      cp -r source dest #递归拷贝整个文件夹至指定目录,重复文件会提示覆盖
      cp -r source dest #递归拷贝整个文件夹至指定目录,重复文件直接覆盖,不会提示

    8. rm命令

      rm [选项] 要删除的文件或目录
      rm -r #递归删除整个文件夹
      rm -f #强制删除不提示

    9. mv命令

      mv oldFileName newFileName #文件重名名
      mv source dest #移动文件

    10. cat命令

      cat [选项] 要查看的文件
      cat -n 文件 #查看文件时显示行号

      cat指令会直接加载整个文件,因此常与管道符配合使用:cat -n 文件 | more
      把文件内容交由more显示,可一页一页的加载
    11. more指令

      more 要查看的文件 #more指令是基于vi编辑器的文本过滤器,它以全屏方式按页展示内容
      快捷键:
      空白键(space) #代表向下翻页
      Enter #代表向下翻一行
      q #表示立刻离开more,不再展示文件信息
      Ctrl+F #向下滚动一屏
      Ctrl+B #返回上一屏
      = #输出当前行号
      :f #输出文件名和当前行号

    12. less指令

      less 要查看的文件 #用来分屏查看文件,与more类似,但是比more强大。
      less加载文件时,并不是一次性加载所有内容,而是根据显示需求加载文件,对大型文件具有较高效率。
      空白键(space) #代表向下翻页
      [pageDown] #向下翻 一页
      [pageUp] #向上翻一页
      /字串 #向下搜寻字串,n:向下查找,N:向上查找
      ?字串 #向上搜寻字串,n:向上查找,N:向下查找
      q #退出less

    13. 输出重定向与追加

      > #输出重定向,会将原来的文件内容覆盖
      >> #追加,不会覆盖原文件,而是追加到末尾
      ls -l > a.txt #将列表内容写入a.txt,覆盖写。如果文件不存在,则创建
      ls -l >> a.txt #将列表内容追加写入a.txt,
      cat 文件1 > 文件2 #将文件1的内容覆盖到文件2
      echo 内容 >>文件 #将内容追加到文件

    14. echo命令

      echo [选项] [输出内容] #输出内容到控制台
      echo $PATH #输出Path环境变量

    15. head命令

      head 文件 #显示文件开头部分,默认输出前10行
      head -n 5 文件 #查看文件前5行内容

    16. tail命令

      tail 文件 #显示文件尾部,默认输出后10行
      tail -n 5 文件 #显示文件后5行
      tail -f 文件 #实时追踪文件所有更新,工作中常用

    17. ln命令

      ln -s [原文件或目录] [软连接名] #给原文件创建软连接,相当于win的快捷方式
      rm -rf 软连接名 #删除软连接时,不能在软连接名后带/,否则提示资源忙
      当我们用cd查看软连接时,看到的是对应目录的内容
      当我们使用pwd查看目录时,任看到是软连接所在目录,而非指向的目录

    18. history命令

      history #查看所有历史命令
      history 10 #查看最近使用的10条命令
      history !5 #执行编号为5的命令

    5.4.日期指令

    1. date命令

      date #显示当前时间
      date “+%Y-%m-%d %H:%M:%S” #显示年月日时分秒
      date -s “2019-07-15 11:11:11” #设置系统时间

    2. cal命令

      cal #显示当前日历
      cal 2020 #显示2020年的日历

    5.5.搜索查找类

    1. find命令

      find 指令将从指定目录向下递归的遍历其各个子目录,将满足条件或目录显示在终端
      find /home -name *.txt #查找home目录下,所有的txt文件
      find /home -user nobody #查找home目录下,所有用户名称为nobody的文件
      find /home -size +20M #查找home目录下,所有大于20M的文件 (+n 大于、-n小于、n等于)

    2. locate指令

      locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称以及路径的locate数据库事先快速定位指定文件。locate指令无需遍历整个文件系统,速度快。为了保证查询结果的准确度,需要定时更新locate。
      locate hello.txt #搜索hello.txt,快速定位
      由于locate指令基于数据库查询,所以第一次运行前,必须使用updatedb创建数据库。

    3. grep命名与管道符|

      grep 过滤查找,管道符"|"表示将前一个命名处理结果输出传递给后面的命令处理。
      cat hello.txt | grep -ni yes #在hello.txt中查找“yes”所在行,不区分大小写,并显示行号。-n 显示匹配行以及行号,-i忽略字母大小写

    5.6.压缩与解压类

    1. gzip/gunzip命令

      gzip 文件 #压缩文件,只能将文件压缩为.gz文件。gzip压缩文件后不会保留原来的文件
      gunzip 文件.gz #解压缩文件命令

    2. zip/unzip命令

      zip xxx.zip hello.txt #压缩hello.txt文件为xxx.zip
      zip -r xxx.zip /home/ #压缩/home目录下的所有文件为xxx.zip
      unzip -d /opt/tmp/ xxx.zip #解压文件到指定文件夹,-d指定解压后文件存放目录

    3. tar命令

      tar 指令是打包指令,最后打包的文件是.tar.gz的文件
      tar [选项] xxx.tar.gz 打包的内容
      -c #产生.tar打包文件
      -v #显示详细信息
      -f #指定压缩后的文件名
      -z #打包同时压缩
      -x #解包.tar文件
      tar -zcvf a.tar.gz a.txt b.txt #将a.txt b.txt两个文件压缩为a.tar.gz
      tar -zcvf a.tar.gz /home/ #将home目录压缩为a.tar.gz
      tar -zxvf a.tar.gz #解压a.tar.gz到当前目录
      tar -zxvf a.tar.gz -C /opt/tmp/ #将a.tar.gz解压到指定目录,该目录必须先存在

    5.7组管理与权限管理

    1. 文件/目录所有者

      ls -ahl #查看文件所有者
      chown tom a.txt #修改a.txt的所有者为tom
      chown -R tom /home/abc #-R表示递归,对文件以及所有的子目录改变所有者
      chgrp root a.txt #修改a.txt的所在组为root

    2. 改变用户所在组

      usermod -g 组名 用户名 #改变用户所在组
      usermod -d 目录名 用户名 #改变用户登录的初始目录

    3. 权限管理

      文件权限: -rwxrw-r-- 1 root root 2 Feb 2 09:39 abc
      1) 第0位确定文件类型:- 普通文件、d 目录、l 软连接、c 字符设备【键盘、鼠标】、b 块文件或硬盘
      2) 第1-3位确定所有者拥有的文件权限:r 读、w 写、x 执行
      3) 第4-6位确定所在组拥有的文件权限
      4) 第7-9位确定其他用户拥有的文件权限
      5) 1表示文件大小,如果是目录则是4096
      6) 第一个root 表示文件所有者、第二个root表示文件所在组
      7) 2,如果是文件表示的是硬链接的数,如果是目录则表示该目录的子目录个数
      8) 时间表示上一次操作的时间
      9) abc 表示文件名

      rwx对于文件:r表示可以查看读取查看、w表示可以修改,但是不代表可以删除文件,删除文件的前提是对文件所在的目录具有写权限、x表示可以执行
      rwx对于目录:r表示可以读取,ls查看、w表示可以修改,目录内创建+删除+重命名文件

      chmod u=rwx,g=x,o=x 文件目录名 #改变文件目录权限 u:所有者 g:所在组 o:其他人 a:所有人
      chmod u+x #给所有者加上执行权限
      chmod a-x #给所有人去掉执行权限
      chmod 744 文件目录名 #等价于 chmod u=rwx,g=r,o=r 规则:r=4,w=2,x=1

    6.任务调度

    任务调度:是指系统在某个时间执行特定的命名或程序

      1. 语法

        crontab [选项]
        -e #编辑crontab任务
        -l #查询crontab任务
        -r #删除当前用户所有的crontab任务

      2. 具体用法

        */1 * * * * ls -l /etc >> /tmp/to.txt

      3. 占位符说明

        第一个* #一个小时中的第几分钟【0-59】
        第二个* #一天中的第几小时【0-23】
        第三个* #一个月中的第几天【1-31】
        第四个* #一年中的第几个月【1-12】
        第五个* #一周中的星期几【0-7,0和7都表示周日】

      4. 特殊符号说明

        1) * #代表任何时间,比如第一个*表示每个小时每一分钟都执行
        2), #代表不连续的时间,比如 0 8,10,12 * * * 表示每天的8点0分,10点0分都执行
        3) - #表示连续的时间范围,比如 0 5 * * 1-3 表示周一到周三每天5点执行命名
        4) */n #代表每隔多久执行一次,比如 */10 * * * * 代表每隔10分钟执行一次

  • 相关阅读:
    MVC(一)
    C# 泛型(二)
    C# 泛型(一)
    ASP.NET MVC Razor
    ASP.NET 服务端接收Multipart/form-data文件
    centos(网易163)软件源更换
    xshell中文乱码问题
    centos7修改主机名
    sqlalchemy python中的mysql数据库神器
    mysql 更新与查询(排序 分组 链接查询)
  • 原文地址:https://www.cnblogs.com/fdzang/p/11281086.html
Copyright © 2011-2022 走看看