zoukankan      html  css  js  c++  java
  • Linux之常用命令II

    一、VI编辑器

    1) 概述

    ◆  Visual Interface(可视化接口);

    ◆  类似Windows中的记事本,比记事本强大;

    ◆  VIM相对于VI做了哪些提升

    -VIM支持多级撤销

    -VIM可以跨平台运行

    -VIM支持语法高亮

    -VIM支持图形界面

    2)操作模式(三种)

    ◆  Command Mode –命令模式

    ◆  Insert Mode –输入模式

    ◆  Last Line Mode –底行模式(尾行,末行)

    vim命令如果文件存在直接进入编辑模式,如不存在则创建后再进行编辑。

    ◆  vim命令模式

    vim + abc(打开abc文档并将光标定位在最后一行)

    vim +5 abc(打开abc文档并将光标定位在第五行)

    vim +/kmm abc(打开abc文档并将光标定位在第一次出现kmm的地方,若存在多个kmm,可通过按字母n,进行光标跳转)

    vim aa bb cc(同时创建或打开aa bb cc文件)

    默认处于aa,输入n,转到bb,输入n,再转到cc

    输入N,回到上一个bb文件,再输入N,回到aa,多个文档来回切换

    3)底行模式和命令模式常用指令

    1、底行模式常用指令

       :w(表示文件的修改从内存写入硬盘中即保存修改)

       :q(退出当前vim编辑器打开的文件)

       :!(强制执行的意思)

       :ls(列出当前编辑器中打开的所有文件)

       :n(切换到后一个文件)

       :N(切换到前一个文件)

       :15(光标快速定位到15行)

       :/xxx(从光标位置开始向后搜索xxx字符串第一次出现的位置)

       :?xxx(从光标位置开始向前搜索xxx字符串第一次出现的位置)

    2、命令模式常用指令

       h 光标左移

       j 光标下移

       k 光标上移

       l 光标右移

       ctrl+f 向下翻页(front)

       ctrl+b向上翻页(back)

       ctrl+d 向下翻半页(down)

       ctrl+u 向上翻半页(up)

       dd(删除光标所在行)

       o(在光标所在行的下方插入一行并切换到输入模式)

       yy(复制光标所在的行)

       p(在光标所在行的下方粘贴)

       P(在光标所在行的上方粘贴)

    二、磁盘管理

    1)df查看磁盘分区使用状况

    -l仅显示本地磁盘(默认)

    -a显示所有文件系统的磁盘使用情况,包含比如/proc/(0字节的分区)

    -h以1024进制计算最合适的单位显示磁盘容量

    -H以1000进制计算最合适的单位显示磁盘容量

    -T显示磁盘分区类型

    -t显示指定类型文件系统的磁盘分区

    [root@bogon ~]# df -lhT -t ext4(分区类型为ext4)

    -x不显示指定类型文件系统的磁盘分区

    2)du统计磁盘上的文件大小

             -b以byte为单位统计文件

             -k以KB为单位统计文件

           -m以MB为单位统计文件

             -h按照1024进制以最适合的单位统计文件

             -H按照1000进制以最合适的单位统计文件

             -s指定统计目标

        [root@bogon ~]# du –s logs/(指定统计logs文件的大小)

    3)硬盘分区和格式化

    1、主分区和扩展分区总数不能超过4个

    2、扩展分区最多只能有一个

    3、 扩展分区不能直接存取数据(需在建立逻辑分区才能存储)

    当硬盘空间快用完了,如何更换一块更大的硬盘呢?

    这个时候就需要在保留原硬盘的基础上,给服务器添加新的硬盘,在命令行的模式下给硬盘分区、格式化以及挂载。

    4)Linux中MBR分区

    当添加新硬盘的时候,硬件设备Linux能自动识别但是不能立即使用,必须对硬盘进行分区、格式化、挂载后才能使用,把这个分区挂载到指定的挂载点上。

    1、 分区

    [root@bogon ~]# fdisk -l(提示新加的硬盘有不可用的分区表)

    [root@bogon ~]# fdisk /dev/sdb(通过这个命令可进入分区模式)

    Command (m for help):m(一些命令的帮助信息)

    Command (m for help):n(添加一个新的分区)

    Partition type:

       P  primary(主分区)

       e  extended(扩展分区)

    Select (default p):p

    Partition number (1-4): 1(第一分区)

    First cylinder (1-2062, default 1):

    using default value 1

    Last cylinder, +cylinders or +size{K,M,G} (1-2062, default 2062):+3000M(为了更加明显加了多大空间,可采用此方法输入方式。输入完之后按回车即添加完毕)

    Command (m for help):p(可查看已添加的分区)

     

    Command (m for help):d(删除分区的命令)

    Partition number (1-4):2(输入要删除分区的编号,如是扩展分区,那里面的逻辑分区也同样会被删除)

    Command (m for help):w(将创建好的分区写入磁盘的分区表中)

    5) Linux中GPT分区

             分区模式之MBR

                  -主分区不超过4个

                  -当个分区容量最大2TB

             分区模式之GPT(不适合安装32位系统)

                  -主分区个数“几乎”没有限制(在GTP的分区表中最多可以支持128个主分区)

                  -单个分区容量“几乎”没有限制(在GPT的分区模式中,每个分区大小都突破了MBR分区的2TB限制)

              [root@bogon ~]# parted(此命令既可以为MBR分区,也可以为GPT分区)

              GUN Parted 2.3

              using /dev/sda(默认目标分区硬盘是系统第一块硬盘)

           (parted)select /dev/sdc(切换到新添加的硬盘符目录下)

              using /dev/sdc(此时已经切换成功)

              (parted)mklabel gpt/msdocs(目标硬盘指定分区表的类型,然后才能添加分区)

           (parted)print  //查看分区表信息

           (parted)print all  //查看所有磁盘分区表信息

    ◆  交互模式

           (parted)mkpart  //交互模式进去分区

               Partition name? [ ]? text(指定名称)

               File system type? [ext2]? ext4(指定文件系统类型,回车就是默认为ext2)

               Start? 1(从第几M开始(从1M开始,达到4K对齐,最佳使用磁盘))

               End? 2000M(从第几M结束)

               cancel  //取消

    ◆  命令模式

                 mkpart [名称] [开始M] [结束M]  //命令模式添加分区,名称是不可省略。

                  例如:mkpart test 2000 3000

                 rm [分区编号number]  //删除分区

                 unit GB  //使用GB为单位分区

                 quit  //退出分区结束

    6)Linux中分区的格式化

              ls -l /dev/sdb*  //查看所以磁盘

              两种格式方法:

        mkfd.ext3 /dev/sdb1  //对sdb1进行格式化,文件系统为ext3

        mkfd -t ext4 /dev/sdb2  //对sdb2进行格式化,文件系统为ext4

     

        **MBR扩展分区不能格式化,只能格式主分区和逻辑分区

        **GPT格式后,fdisk命令无法看到文件类型,使用parted工具才能查看

    7)Linux中挂载分区

    系统默认挂载目录为 /mnt

    mkdir -p /mnt/imooc  //建立imooc挂载点

    挂载:

    mount /dev/sdb1 /mnt/imooc  //将sdb1分区挂载到imooc目录(临时挂载)

    卸载:

    umount /mnt/imooc  //卸载imooc挂载点分区

       永久挂载,需添加以下一步:

    vim + /etc/fstab  //编辑磁盘配置文件进行永久挂载

    /dev/sdb1   /mnt/imooc    ext3      defaults   //这算加入的内容

    [设备名称]     [挂载点]   [文件系统]   defaults   0   0

    8)Linux中swap分区

       如何为硬盘添加swap交换分区

    1、  建立一个普通的Linux分区(主分区或逻辑分区都可以)

    2、  修改分区类型的16进制编码

    fdisk /dev/sdb(fdisk工具进入 /dev/sdb 磁盘)

    Command (m for help):p  (查看分区信息)

    Command (m for help):t  (修改分区编号)

    Partition number (1-6):6 (输入分区编号,比如:6)

    Hex code(type L to list codes):L (系统提示输入16进制的编号,可通过

    L进行查看)

    Hex code(type L to list codes):[82]  (swap 分区ID为82)

    Command (m for help):w  //保存退出

    3、  格式化交换分区

    [root@bogon ~]# mkswap /dev/sdb6  (格式化对应 swap 分区)

    4、  启用交换分区

    [root@bogon ~]# swapon /dev/sdb6  //启用对应 swap 分区

    [root@bogon ~]# free  //查看 swap 加载状况

    [root@bogon ~]# swapoff /dev/sdb6  //停止对应 swap 分区

    三、用户管理

    1) 用户和用户组的概念

    用户:使用操作系统的人(允许多个用户在同一时间登录同一个操作系统)

    用户类别:

    a、管理员:0

    b、普通用户:1-65535

        系统用户:1-499(任何进程都应该以某个用户的身份来运行。例如不管是linux和widows系统启动后,后台都有很多服务在运行,这些服务显然不能以管理员身份运行,权限太大了,到处乱跑,访问任何文件。这类用户限定不能登录系统)

        一般用户:500-60000(这类用户可以登录系统获取系统资源)

    用户组:具有相同权限的一组用户

    ◆  /etc/group存储当前操作系统中所有用户组信息

    Group:      x     :  123 :abc,def,xyz

    组名称:组密码占位符:组编号:组中用户名列表

     

    1、组内用户列表为空时不代表组内没有用户,当组内用户名只有一个,并且跟组名相同时,可以省略这个用户名,不显示。

    2、在Linux系统中,root用户组组号一定为0。

    3、组号1到499是系统预留的组编号,一般来说预留给安装在操作系统中的软件或者服务(比如mysql数据库)。

    4、用户手动创建的组编号从500开始,

    ◆  /etc/gshadow 存储当前系统中用户组的密码信息

    Group:  *   :        :abc,def,xyz

    组名称:组密码:组管理者:组中用户名列表

     

    1、 此文件里的每一行都跟group文件中的信息一一对应

    2、 组密码为空、星号(*)或者感叹号的时候,认为组密码为空

    3、一般组管理者为空表示组内所有用户都可以管理这个组

    ◆  /etc/passwd 存储当前系统中所有用户的信息(whatis passwd命令可以查看man passwd有哪些章节,分别是介绍了什么内容)

    user:x:123:456:xxxxxxxx:/home/user:/bin/bash

    用户名:密码占位符:用户编号(UID):用户组编号(GID):用户注释信息:用户主目录:shell类型

    类似图中的shell类型是nologin就是系统用户,不让登录

    注:如果用户密码保存在此文件中,大家都可以访问,则密码不安全,因此此处的密码用一个密码占位符X表示,其实密码保存在/etc/shadow(俗称影子口令)中

    ◆  /etc/shadow 存储当前系统中所有用户的密码信息

    user:vf;/Zu8sdf...:::::

    用户名:    密码   :::::

    1、 此文件里的每一行都跟passwd文件中的信息一一对应

    2、图中$是分隔符,1代表加密方法(md5加密),第二个$后面代表的是加密杂质(8位),第三个$后面代表的才是加密的密码

    3、像bin、daemon后面显示为*或者两个!!代表此用户是锁定的(不允许登录)。因此要锁定某个用户只需在密码前加两个!!即可

    2) 用户和用户组的基本命令

    groupadd [组名] //建立用户组

    groupmod -n [新组名] [旧组名]  //用户组改名

    groupmod -g [编号] [组名]  //为用户组编号

    groupadd -g [编号] [组名]  //添加用户组并编号

    groupdel [组名]  //删除用户组(先删除用户组内的用户)

    useradd -g [用户组] [用户名]  //创建用户并指定用户组

    useradd -d /home/xxx imooc  //创建用户并指定个人文件夹

    usermod -c [备注信息] [用户名]  //为用户名添加备注信息

    usermod -l [新用户名] [旧用户名]  //用户改名

    usermod -d /home/cls cls  //为用户更改个人文件夹

    usermod -g [新用户组] [当前用户组]  //修改用户的用户组

    userdel [用户名]  //删除用户

    userdel -r [用户名]  //删除用户及用户个人文件夹

    touch /etc/nologin  //除root用户,其它用户禁止登录

    3)  用户和用户组进阶命令

           锁定某个账户:passwd -l 用户名

      解锁某个账户:passwd -u 用户名

      清除某个账户的密码,实现无密码登录:passwd -d 用户名

    ◆  主要组与附属组

    用户可以同时属于多个用户组(其中有一个是主要用户组,其余的是附属组)。

    ◆  将用户添加到附属组:gpasswd -a 用户名附属组名称

    (添加到多个附属组用逗号隔开即可,如果附属组有密码,就要输入组密码)

    ◆  将自己切换到附属组:newgrp 附属组名称(注意:这条命令必须是普通用户自己执行,root执行是无效的。组密码在这个时候起作用)

    ◆  从附属组中去掉用户:gpasswd -d 用户名附属组名称

    创建用户时同时添加主要组和附属组:useradd -g 主要组名称 -G 附属组名称1,附属组名称2,(多个用逗号隔开)

    ◆  为用户组添加组密码:gpasswd 组名称

    4)用户管理其他命令

    id 用户名(显示指定用户信息,包括用户编号、用户名、主要组编号及名称、附属组列表)

    su 用户名(切换到其他用户下)

    su 后面什么也不接(表示切换到root用户下)

    whoami(显示当前登录用户名)

    groups 用户名(显示用户所在的所有组,包括主要组和附属组)

    chfn 用户名(设置用户资料,依次输入用户资料)

    finger 用户名(显示用户详细资料)

  • 相关阅读:
    Ocelot简易教程(一)之Ocelot是什么
    如何测量并报告ASP.NET Core Web API请求的响应时间
    ASP.NET Core 2.1中基于角色的授权
    Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验
    Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验
    Net Core集成Exceptionless分布式日志功能以及全局异常过滤
    CentOS7 PostgreSQL安装
    Python 的 List 要印出 中文 編碼
    如何让你的Python代码更加pythonic ?
    4种格式化字符串方式的时间效率比较
  • 原文地址:https://www.cnblogs.com/huhyoung/p/6262946.html
Copyright © 2011-2022 走看看