• Linux常用命令


    系统信息

    1. who am i :查看当前使用的终端
    2. uname -m :显示机器的处理器架构(如x86_64)
    3. cat /proc/version :查看linux版本信息(uname --all)
    4. ifconfig :显示或设置网卡(查ip等)(类似windows中ipconfig)
    5. ping -c 3 www.baidu.com :测试百度与本机的连接情况( -c 3表示测试3次)
    6. cat /proc/cpuinfo :显示CPU的信息
    7. top :动态实时显示cpu、内存、进程等使用情况(类似windows下的任务管理器)
    8. top -d 2 -p 7427 :-d为画面更新的秒数,默认5秒,-p为指定进程pid的信息
    9. free -h :查看系统内存及虚拟内存使用情况
    10. df -h :显示磁盘的空间使用情况
    11. kill -9 进程号 :强制杀死进程
    12. systemctl :查看正在运行的服务
    13. mysql -V:查看MySQL版本

    系统目录结构

    1. bin:保存可执行文件,即常用操作命令,所有用户都有执行权限
    2. boot:引导目录:引导系统启动,包含操作系统的内核文件,驱动、插件模块
    3. dev:所有的硬件设备:硬盘、显卡和声卡均被抽象为一个文件
    4. etc:几乎所有的配置文件,纯文本、以conf结尾
    5. home:所有用户的家目录,保存用户的私有数据,每个用户都有一个以用户名作为文件夹,保存该用户的所有信息(桌面、音乐、图片等)
    6. root:root用户的家目录
    7. lib:所有Linux运行的相关库文件
    8. media:自动挂载
    9. opt:空文件夹,用于装大型软件
    10. proc:存放实时信息,不存在硬盘上,虚拟文件夹,只存在内存中,以进程号命名的文件夹
    11. sbin:只有root才能执行里面的命令(比如磁盘分区)
    12. tmp:临时目录,隔段时间会自动删除
    13. usr:保存应用软件

    文件和目录

    1.创建、删除文件

    • 通过touch创建
    • 通过rm命令可以删除文件:①-i交互式,会提示②-r递归的删除包括目录中的所有内容  ③-f强制删除,没有警告提示

      2.创建、删除目录

    • mkdir -p ./dir1/dir2 :递归创建目录(-p:父目录不存在时,同时建立)
    • 通过rmdir命令删除一个空目录
    • 通过rm -r(-f)删除一个非空目录,如:rm -rf * 为删除当前目录下所有文件

      3.复制文件、目录

    • 使用cp命令复制文件或目录:cp 源文件(文件夹) 目标文件名(文件夹)
    • 常用参数:-r:递归复制整个目录树;-v:显示复制的详细信息

     

    4.移动、重命名文件或目录

    • mv 文件 目标目录

    • 如果指定文件名,则可以重命名文件

     

    • 在当前目录重命名

     

    5.列出目录内容

    • ls -a:显示所有文件
    • ls -l:显示详细信息
    • ls -R:递归显示子目录的结构
    • ls -ld:显示目录和链接信息

    6.查看文件的类型

    • 通过file命令可以查看文件的类型

    7.绝对路径和相对路径

    • 绝对路径:以“/”开头,递归每级目录知道目标的路径,不受当前所在工作目录限制
    • 相对路径:以当前目录为起点,到底目标的路径,受当前所在目录限制
    • cd命令可以用来切换目录:上一级目录“..”;当前目录“.”;用户家目录“~”;上一个工作目录“-”

    8.输出、查看命令

    • echo用以显示输入的内容
    • cat用以显示文件内容,-n显示行号
    • head用以显示文件的头几行(默认10行):-n指定显示的行数
    • more用于翻页显示文件内容(只能向下翻页):可以空格翻页,不能向上翻页
    • less用于翻页显示文件内容(带上下翻页):来回翻,按q退出
    • tail用以显示文件的末尾几行(默认10行):-n指定显示的行数
      • -f动态显示文件末尾内容:一般用于查看日志,命令不会退出,而是持续显示新加入的内容

     

    9.归档和压缩

    • zip用以压缩文件:zip linuxcast.zip myfile

     

    • unzip用以解压缩zip文件
    • gzip用以压缩文件
    • tar用以归档文件
      • tar -cvf:c代表创建归档

      • tar -xvf:释放一个归档
      • tar -cvzf:-z参数将归档后的归档文件进行gzip压缩以减少大小

    10.查找

    • locate用以快速查找文件和文件夹:locate 关键字,此命令需要预先建立数据库,数据库默认每天更新一次,可update命令手工建立、更新数据库
      • 缺点是数据库没更新就查不到

     

      • 手动更新数据库后便能查到

    • find用以高级查找文件、文件夹
      • find 查找位置 查找参数

     

      • 在当前目录(.)查找包含linuxcast的文件,-name基于文件名查找

      • 在根目录(/)查找包含以.conf结尾的所有文件,即查找所有的配置文件

      • 所有权限是777的文件

      • 返回所有目录类型的文件

      • 返回以a开头的文件,将结果作为参数传递给后面的-exec 命令 {} 中间这个命令执行,-exec 命令 {} 为固定格式 

     

      • find支持多种查找条件
        • -name:文件名
        • -perm:权限
        • -type:类型
        • -ctime:基于修改时间查找
        • -size:基于文件大小查找
        • -group:查找属于某个特定组的文件
        • -user:查找属于某个特定用户的文件

    用户与组

    1.基本概念:当使用Linux时,需要以一个用户的身份登入,一个进程也需要以一个用户的身份运行,用户限制使用者或者进程可以使用、不可以使用哪些资源

    • 组用来方便组织管理用户
    • 每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名
    • 每个用户属于一个主组,属于一个或多个附属组
    • 每个组拥有一个GroupID
    • 每个进程以一个用户身份运行,并受该用户可访问的资源限制
    • 每个可登陆用户拥有一个指定的shell

    2.用户

    • 用户基础:用户ID为32位,从0开始,但是为了和老式系统兼容,用户ID限制在60000以下
      • 用户分为以下三种:系统中的文件都有一个所属用户及所属组
        • -root用户:ID为0的用户为root用户
        • -系统用户:1-499,没有shell,它为某些特定服务创建的用户
        • -普通用户:500以上
      • 使用id命令可以显示当前用户的信息
      • 使用passwd命令可以修改当前用户的密码
    • 相关文件
      • /etc/passwd:保存用户信息
      • /etc/shadow:保存用户密码(加密的),只有管理员可以查看
      • /etc/group:保存组信息
      • 使用cat命令可以查看相关信息
    • 查看登陆的用户
      • 命令whoami显示当前用户
      • 命令who显示有哪些用户已经登陆系统
      • 命令w显示有哪些用户已经登陆并且在干什么
    • 创建用户:useradd 新用户名
      • 这个命令会执行以下操作:
        • 1、在/etc/passwd中添加用户信息
        • 2、如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中
        • 3、为用户建立一个新的家目录/home/新用户名
        • 4、将/etc/skel中的文件复制到用户的家目录中
        • 5、建立一个与用户用户名相同的组,新建用户默认属于这个同名组
      • 相关参数:
        useradd [-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号]
        • -d 家目录
        • -s 登陆shell
        • -u userid
        • -g 主组
        • -G 附属组(最多31个,用逗号分隔)
        • 也可以直接修改/etc/passwd的方式实现,但是不建议
    • 修改用户信息:usermod 参数 username
      • 相关参数:
        • -l 新用户名
        • -u 新userid
        • -d 用户家目录位置
        • -g 用户所属主组:usermod -g 组名 用户名 :修改用户的组;usermod -aG 组名 用户名 :将用户添加到组
        • -G 用户所属附属组
        • -L 锁定用户使其不能登录
        • -U 解除锁定
    • 删除用户
      • userdel 用户名:会保留用户的家目录
      • userdel -r 用户名:同时删除用户的家目录
      • userdel -f 用户名:强制删除,包括用户的一切相关内容,这个参数是危险的参数

    3.用户组

    • 组基础:可以使用部门、职能或地理区域的分类方式创建使用组
      • 每个组有一个组ID
      • 组信息保存在/etc/group
      • 每个用户拥有一个主组,同时还可以拥有最多31个附属组
    • 创建、修改、删除组
      • 命令groupadd用以创建组
      • 命令groupmod用以修改组信息
        • 修改组名:groupmod -n 新组名 旧组名
        • 修改组ID:groupmod -g 新ID 旧ID
      • 命令groupdel用以删除组:groupdel 组名
    • 显示用户所属组:groups
      • groups:默认显示当前用户的组
        groups 用户名:显示特指用户的组

    4.示例

    • 部门配置

    • 具体操作

     权限管理

    1.权限基础

    • 权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所有组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样的操作
    • 每个进程都是以某个用户的身份运行,所有进程的权限与该用户的权限一样,用户的权限大,该进程用户的权限就大
    • 文件的三种权限:

      • 目录必须拥有x权限,否者无法查看其内容

    2.UGO模型

    • Linux权限基于UGO模型进行控制:
      • U代表User,G代表Group,O代表Other
      • 每一个文件的权限基于UGO进行设置
      • 权限三个一组(rwx),对应UGO分别设置
      • 每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组的使用O权限
    • 命令ls -l可以查看当前目录下文件的详细信息
      • 详细信息

     

      • 相关权限

     3.修改文件所属用户和组

    • 命令chown用以改变文件的所有用户:chown 用户名 文件名,-R参数递归的修改目录下的所有文件的所属用户

    • chown [-R] 用户名:用户组  文件名:变更文件及目录的拥有者和所属组(-R递归处理所有文件和文件夹)
    • 命令chgrp用以改变文件的所属组:chgrp 用户组 文件名,-R参数递归的修改目录下的所有文件的所属组

    4.修改权限

    • 命令chmod用以修改文件的权限:chmod 模式 文件名;模式有如下格式:
      • u、g、o分别代表用户、组和其他
      • a可以代指ugo
      • +、-代表加入或删除对应权限
      • r、w、x代表三种权限
      • -R同样是递归修改目录下文件的权限

    • 数字方式修改权限
      • 三个权限分别有三个数字表示:
        • -r = 4
        • -w = 2
        • -x = 1
      • 使用数字表示权限时,每组权限分别为对应数字之和
        • rw=4+2=6
        • rwx=4+2+1=7
        • r-x=4+1=5
      • 示例

    5.默认权限

    • 每一个终端都拥有一个umask属性,来确认新建文件、文件夹的默认权限
    • umask使用数字权限方式表示,如:022
    • 目录的默认权限是:777-umask
    • 文件的默认权限是:666-umask
    • 一般,普通用户的默认umask是002,root用户的默认umask是022
    • 对于普通用户来讲:
      • 新建文件的权限是:666-002=664

      • 新建目录的权限是:777-002=775

    • root用户:新建文件:644

    • 命令umask用以查看设置umask值:umask 022,新建文件默认权限变为644

     

     

     6.特殊权限

    • 三个特殊权限

      • suid:目的是让某些用户实现它原本没有权限去做的一些操作,通常用在可执行文件中,命令就是可执行文件
        • 通常是给命令或可执行文件用的,命令或可执行文件都会去以一个用户的身份运行,之所以这样是为了限制命令能够去访问的资源,一般的命令都是谁去运行这个命令,我都是以这个命令的用户去运行,这个用户能够访问的权限都会传递给这个命令;
        • 需求:希望用户执行某些命令获得额外的资源和功能;
        • 比如一个命令可以修改操作系统的功能,它的所属用户是root,我让其他用户能够运行这个命令,即o权限设置为r-x,但是又不想开放这个功能,因为普通用户没有修改操作系统的权限,即使你o权限设置为r-x,但其他用户也做不了修改,给这个文件设置suid,普通用户去执行这个文件的时候并不是以用户的身份去执行,而是以这个命令所属用户的身份去执行
        • 系统某些权限只有root用户才有,虽然给普通用户配置了相应的权限,但是仍然执行不了某些操作,所以给文件设置了suid后,普通用户就以所属用户的身份去操作这个文件;
        • 比如命令passwd,用户的密码存放在/etc/shadow下面,除了root,其他所有用户什么权限都没有,所以给passwd设置了所属用户root的权限,可以修改密码

     

      • sgid:设置了sgid的目录,所有新建的文件和文件夹都会继承(递归)该目录的所属组,方便权限控制
      • sticky:设置了sticky的目录,对目录拥有写入权限的用户不能删除其他用户的文件,常用于同部门(组)员工可以相互访问其他的文件,但是无法删除其他用户的文件
    • 设置特殊权限
      • 设置suid:chmod u+s 文件名

      • 设置sgid:chmod g+s 文件名

      • 设置sticky:chmod o+t 文件名

    • 与普通权限一样,特殊权限也可以使用数字方式表示
      • -suid = 4
      • -sgid = 2
      • -sticky = 1
      • chmod 6755 文件名:即同时拥有suid和sgid两个特殊权限

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    telnet模拟http訪问
    network: Android 网络推断(wifi、3G与其它)
    Cocos2d-x学习笔记(19)(TestCpp源代码分析-3)
    Thinkphp编辑器扩展类kindeditor用法
    逛自己的微博,回想以前的那个“我”
    微信生成二维码
    [C++]四种方式求解最大子序列求和问题
    Android 颜色渲染(二) 颜色区域划分原理与实现思路
    Android 颜色渲染(一) 颜色选择器 ColorPickerDialog剖析
    Android 图标上面添加提醒(二)使用开源UI类库 Viewbadger
  • 原文地址:https://www.cnblogs.com/zhufeng123/p/11831344.html
Copyright © 2020-2023  润新知