Linux基本操作指令详述

目录

一.文件编辑类

1.vi与vim编辑器

2.常用指令

二.用户管理类

1开机,重启,用户登录注销。

 2.用户管理   

1.Linux 用户和用户组管理

2.用户管理相关操作指令   :

 3.系统运行级别(共七个):

三.文件目录类命令

        1. pwd   

        2. ls指令

        3.cd命令: 

        4.mkdir命令:

        5.rmdir指令 :

        6.touch指令:

        7.cp指令:

        8.rm指令:

        9.mv指令:

        10 cat指令:

                        11. more指令

        12. less指令

        13 >指令和>>指令

        13 echo指令

        14 head指令

        15 tail指令

         16 ln指令

        17 histroy

四.时间日期类命令

        1.date指令        

        2.cal指令

五.搜索查找类指令

1 .grep指令和管道符号 |

2 .find命令

3.locate指令

五.压缩和解压缩类

        1.gzip/gunzip指令

        2.zip/unzip指令

        3.tar指令

六.组管理和权限管理

        1.改变文件所有者

        2.改变文件所在组

        3.改变用户所在组

        4.权限管理

七.定时进行时间任务调度

八.Linux磁盘分区,挂载

Windows系统的分区:

LINUX系统的分区:

指令:lsblk -f         查看系统分区与挂载情况

添加一块磁盘:

磁盘情况查询:

  九. 进程管理     

   ​

ps指令

 终止进程kill或killall




一.文件编辑类

1.vi与vim编辑器

        vi和vim它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。. vim的这些优势主要体现在以下几个方面:. 1、多级撤消. 我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。. 2、易用性. vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。. 3、语法加亮. vim可以用不同的颜色来加亮你的代码。. 4、可视化操作.。

        总体来说vim可以看作vi的增强版。

2.常用指令

vi和vim的三种常见模式:

              1.正常模式:可以使用快捷键,如移动光标,删除字符、整行,复制粘贴等。

              2.编辑模式/插入模式:可以输入内容(按下i,I,o,O,a,A,r,R等即可进入编辑模式)

              3.命令模式:提供相关指令,完成读取,存盘,替换,离开vim,显示行号等内容。

vim 创建并且进入文件
i 开始编辑文件内容
esc 推出编辑
:wq 写入并退出
:q 不保存退出
:q! 强制退出(不保存编辑的内容)

                     注意:“:wq”,“:q”等操作需要退出编辑模式才可以执行

快捷键:1.拷贝当前行,yy,拷贝当前行向下5行,5yy。

              2. 粘贴p。

              3.删除当前行dd,删除当前行向下5行,5dd。

              4.文件中查找某个单词(命令行下 /关键字 然后回车查找,输入n就是查找下一个)。

              5.快速到达文件的末行G,快速到达首行gg。

              6.撤销上一步操作,u。

              7.快速移动光标,例如一定到第三行,:3。

              注意:上述操作都是在正常模式下可以进行的操作,如果你在编辑,按esc后再进行上述操作。


二.用户管理类

1开机,重启,用户登录注销。

        1.shutdown -h now  立即关机;shutdown -h 1  一分钟后关机;shutdown -r now  立即重启。

        2.hat  (等价直机关机)

        3.reboot (重启)

        4.sync  把内存的数据同步到磁盘(相当于数据保存),最好每次关机前执行这句,确保数据完整。

        5.logout (注销用户)

        6.su -  用户名(切换管理员用户)

        注意:logout注销指令在图形运行级别无效,在运行级别3下有效。对于运行级别后面会讲。

 2.用户管理   

        首先介绍一下Linux的用户和用户组,因为在Linux系统中,一切皆文件。所以下面介绍一下用户和用户组,以及他们之间的关系。

1.Linux 用户和用户组管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

因此,如果要使用 Linux 系统的资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统(账户和用户是一个概念)。通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

每个用户都有唯一的用户名和密码。在登录系统时,只有正确输入用户名和密码,才能进入系统和自己的主目录。

用户组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化了对用户的管理工作。

用户和用户组的对应关系有以下 4 种:

  1. 一对一:一个用户可以存在一个组中,是组中的唯一成员;
  2. 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
  3. 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
  4. 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。

用户和组之间的关系用下图 来表示:

Linux基本操作指令详述_第1张图片

总结:   用户组可以管理用户,每个用户至少属于一个用户组。

2.用户管理相关操作指令   :

用户:

        添加用户:useradd  [选项]  用户名(创建添加用户)

                          useradd -d  地址  用户名 (创建新用户并且指定其家目录

        家目录:在/home下,目录下有各个创建的用户对应的家目录,当用户登录时,会自动进入自己的家目录。

                        passwd 用户(给用户设置密码)

        删除用户: userdel 用户名(删除用户但是保留家目录)

                          userdel  -r  用户名(删除用户以及家目录)

        查询用户信息 :id  用户名(查询用户信息)

                                  如果没有该用户:no such user                                                                       

                                 有该用户: uid(用户id号)   gid(组id号)   组(组名称)

        切换用户:su  -  用户名

                        注意:当地权限用户切换到高权限用户时需要输入密码,而高权限用户到底权限用户不需要输入密码。输入“exit”,则返回上一个跳转用户。

        查看当前用户: whoami

用户组:

                添加用户组:groupadd  组名

                删除用户组: groupadd  组名

                添加用户到指定用户组下: useradd  -g  组名  用户名(创建用户时使用)

                修改用户组: usermod  -g  组名  用户名(对已有的用户使用)

用户组和用户相关的文件:

                用户配置文件(用户信息):/etc/passwd

                组配置文件(组信息):/etc/group

                口令配置文件(包含密码和登录信息,是加密的):etc/shadow

 3.系统运行级别(共七个):

        0:关机

        1:单用户(可用来找回密码)

        2:多用户无网络服务

        3:多用户有网络服务

        4:保留

        5:图形界面        

        6:重启

切换到指定运行级别的指令: init  数字,其范围是0-6,但是对于cenos7,其相关的文件在/lib/systemd/system,而不是etc/inittab。下面是centos7修改系统运行级别的命令。新手一般是5,图形化界面。

1. multi-user 就是之前版本的 3 (多用户 命令行)
2. graphical 就是之前版本的 5 (多用户 图形化)
还给出了设置方法:
终端输入:systemctl set-default TARGET.target

下面是补充,感兴趣的可以尝试一下吧。

面试题:如何找回丢失的密码?

思路:进入到单用户模式,因为单用户模式可以不用登录密码。具体操作如下

  1. 首先我们在开启centos系统的选择界面时候按下空格键让启动停在此界面,注意此界面一般非常快就消失了。具体如下图所示。

    Linux基本操作指令详述_第2张图片

  2. 然后我们按下"e"键。进入编辑方式,找到 “UTF-8”后添加 init=/bin/sh。具体操作如下图所示。

    Linux基本操作指令详述_第3张图片

  3. 编辑完成后,我们输入Ctrl+x组合键,等待系统进入sh界面。具体操作如下图所示。

    Linux基本操作指令详述_第4张图片

  4. 然后我们执行命令"mount -o remount,rw /"。具体操作如下图所示。

    Linux基本操作指令详述_第5张图片

  5. 然后我们执行命令"passwd",两次输入新的密码即可。具体操作如下图所示。

    Linux基本操作指令详述_第6张图片

  6. 然后我们执行命令"touch  / .autorelabel" 更新系统信息。

    Linux基本操作指令详述_第7张图片

  7. 最后强制按电源键,等待系统重启,重启后输入我们设置的密码,可以发现已经登录成功了。到此密码已经更换了。

    Linux基本操作指令详述_第8张图片


三.文件目录类命令

        1. pwd   

                        显示当前工作目录的绝对路径

        2. ls指令

                         语法:ls [选项]  目录或文件

                          常用选项: -a  显示当前目录的所有文件和目录,包括隐藏文件(以.开头的文件)

                                              -l 以列表的方式显示信息

        3.cd命令: 

                            语法:cd  [参数]  (功能是切换到指定目录)

                            常用参数:目录的绝对路径或者相对路径

                                               cd ~ (添砖到当前用户的家目录)

                                               cd /(回到根目录)

                                               cd .. (回到上级目录)

        4.mkdir命令

                                作用是创建目录

                                语法: mkdir [选项]  要创建的目录

                                常用选项: -p  创建多级目录   

                                例如:此时工作目录在home下

                                             mkdir  /home/animal

                                            mkdir  -p  /home/animal/cat

        5.rmdir指令

                                作用是删除空目录

                                语法: rmidr [选项]  要删除的目录(不可以删除非空目录)

                                 如果非要删除某个文件或者目录:rm -rf  要删除的文件或者目录

        6.touch指令

                                作用是创建空文件

                                基本语法:touch 文件名称

        7.cp指令

                           作用拷贝文件到指定目录

                           语法:cp [选项]  源  目标

                           常用选项:-r 递归复制整个文件夹

例如:把/home/a.txt拷贝到/home/test目录下,我们所处工作环境是home

           所以可以写成 cp  a .txt  test/

注意:强制覆盖不提示的方法: \cp(前提是要拷贝文件与目标文件或者目录下的文件重名)

        8.rm指令

                        作用是删除文件或者目录

                        语法:rm [选项]  要删除的文件或者目录

                         常用选项:-r 递归删除整个文件;  -f 强制删除某个文件或者目录

        9.mv指令:


                        作用:移动文件与目录或重命名
                        基本语法: mv  oldFilename   newFilename   (重命名)
                                        mv 文件/目录 文件夹/路径  (移动)


        10 cat指令:


                        作用:以只读方式打开文件
                        基本语法:cat [选项] 要查看的文件
                        常用选项: -n  显示行号
                        cat只能浏览文件,而不能修改文件,为浏­览方便,一般带上命令" | more"(在这里相当于分页。按空格下一页)


                
        11. more指令


                        其是一个vi编缉器的文本过滤器,它以全屏幕的方式页显示文本文件的内容。


                        基本语法: more   要查看的文件


                        操作说明: 查看文件时

                                        空格——向下翻员
                                         Enter——向下翻行
                                        q——离开more,不再显示文件内容
                                        ctrl+f——向下滚动一屏
                                        ctrl+b——反回上一屏

                                查找文件时:
                                : f ——轻出文件名与当前行行号
                                一数字——指定每页行数


        12. less指令


                        作用:与more功能相似,但其不会一次性全部加载文件,而是按需加­载,对于大型文件有较高效率(推荐用来查阅大型文件)
                        基本语法: less  要查看的文件

        13 >指令和>>指令


                >叫做重定向,>>叫做追加
                        基本语法:
                                    ls -l  >文件 (列表的内容写入到对应文件中,但是是以覆盖的形式写入)——若该文件不存在则自动创建
                                    ls -l >> 文件(列表的内容写入到对应文件的尾部,不会覆盖)——若该文件不存在则自动创建



        13 echo指令


                        作用: 输出内容到控制台
                        基本语法:echo [选项]  [输出内容]


        14 head指令


                        作用: 显示文件的开头部分内容,默认情况下显示指令显示文件前10行
                        基本语法: head  文件
                                        head  -n 行数  文件


        15 tail指令


                        作用:输出文件尾部内容(默认为文件后10行)
                        基本语法: tail 文件
                                        tail  -n   行数  文件
                                        tail  -f  文件 (实时追踪该文档的所有更新)


         16 ln指令


                        作用: 也叫作符号连接,类似于windows里的快捷方式,主要存放了链接其他文件路径
                
                        基本语法: ln  -s  [原文件或目录]  [软链接名]   作用是给源文件创建一个软连接
                                        删除软链接  rm  -rf  链接名


        17 histroy


                        作用:显示历史所有的指令


                        基本语法: history
                                        history 10 (显示之前的10条)
                                        ! 数字 (显示的是执行命令是数字对应位次的指令)


四.时间日期类命令

        1.date指令        

                作用:显示当前日期

                语法:date +%Y  输出年

                          date +%m 输出月

                          date +%d  输出年日

                          date +"%Y %m %d %H %M %S"  输出年月日时分秒

        2.cal指令

                作用:显示日历

                语法: cal 显示当前年日历

                            cal 年份  显示指定年份的日历


五.搜索查找类指令

1 .grep指令和管道符号 |

                作用:grep是查找,管道符"|",表示将前一个命令的处理结果传递给后面的命令去处理,而两者联合使用就达到了过滤查找的效果。

                语法: grep [选项]  查找内容  源文件

                 常用选项: -n  显示匹配行以及行号

                                     -i  忽略字母大小写

                 例如:

                 1、从单个文件中查找指定的字符串

          grep "this" demo_file

                2、从多个文件中查找指定的字符串

        grep "this" demo_*

                3、查询且忽略大小写

        grep -i

2 .find命令

        作用:将从指定目录下递归遍历所有子目录,将满足条件的文件或者目录显示在终端

        语法:find  [搜索范围]  [选项]

        例如:find   /home  -name  hello.txt(找home目录下,名字为hello.txt的文件)

                  find   /home  -user  xzy(找home目录下,xzy为用户名的文件)

                  find   /home  -size +20M(找home目录下,大于20M的文件)

3.locate指令

        作用:快速定位文件路径,locate利用实现建立的系统中的所有文件名称,及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询系统较快。为保证查询精度,管理员必须定期更新locate时刻。

        基本语法:locate  搜索的文件

由于是第一次基于数据库查询没第一次运行前,必须用updatedb指令来更新locate数据库。


五.压缩和解压缩类

        1.gzip/gunzip指令

                作用:gzip压缩文件,gunzip是解压

                基础语法:gzip 文件(压缩文件,而且只能压缩成.gz文件,压缩后源文件不保留)

                                 gunzip   文件(解压压缩文件)

        2.zip/unzip指令

                作用:zip用于压缩文件,unzip用来解压文件

                基本语法:zip [选项]  xxx.zip  要压缩的内容   

                                  unzip  [选项]  xxx.zip  

                常用选项: -r 递归压缩,即压缩目录

                                  -d 目录   解压到指定的目录

        3.tar指令

                作用:打包指令,打包的文件是.tar.gz文件

                基本语法:

                                  tar -cvf  打包文件.tar  被打包的文件/路径...

                                  tar -xvf  打包文件.tar

                常用选项:

-c 生成档案文件,创建打包文件
-x 解开档案文件
-v 列出归档解档的详细过程,显示进度
f 指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后


六.组管理和权限管理

        对于用户和用户组的介绍与说明在前面说过了,以及对组和用户的添加和删除等操作也都有过介绍。这里主要来描述一些关于用户权限管理的操作。

        1.改变文件所有者

                查看文件所有者: ls -ahl

                修改文件所有者:chown  用户名  文件

        2.改变文件所在组

                查看所在组: ls -ahl

                修改文件所在组: chgrp  组名  文件

        3.改变用户所在组

               改变用户所在组: usermod -g 组名 用户名

                改变用户登录初始目录: usermod -d 组名 用户名

        4.权限管理

                -rwxrwxrwx 1 tom  police  0  11月 1 20:30  test.txt

上面的这段字符,代表了很多信息,下面将一一进行解说:

                -代表文件类型                

                接下来的三个rwx分别代表文件所有者拥有的权限,文件所在组拥有的权限,文件对于其他组所拥有的权限,r代表读,w代表写,x代表执行。

                数字1表示文件硬连接的数;如果是目录,则代表子目录个数

                0代表文件/目录大小;如果是目录,则为4096这个固定值

                之后的是文件最后修改的时间

                test.txt代表文件名

                

                修改权限

                                第一种方式    chmod  u=rwx,g=rx,o=x  文件名

                                第二种方式    chmod  o+w  文件名(给其他组添加写的权限)

                                第三种方式    chmod  a-x 文件名(给所有用户和组去除执行的权限)

                                其中u代表所有者权限,g代表组权限,o代表其他组,a代表所有人

                                第四种方式:chmod 722 文件目录名

                                其中r=4,w=2,x=1,所以7代表给所有者rwx的权限,给所在组w权限,给其他组w的权限。

七.定时进行时间任务调度

        概述:Linux 定时任务调度 (crontab命令) crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务. Linux 下的任务调度. 系统任务调度:系统周期性所要执行的工作,如:写缓存数据到硬盘、清理日志等。. 系统任务调度的配置文件 /etc/crontab. 用户任务调度:用户定期要执行的工作,比如数据库备份、定时邮件提醒等。. 所有用户定义的crontab文件都保存在/var/spool/cron目录中。. 文件名与用户名一致。. crontab 文件的含义.

        

  1. crontab 服务

    1. service cron start //启动服务
    2. service cron stop //关闭服务
    3. service cron restart //重启服务
    4. service cron reload //重新载入配置
    5. service cron status //查看服务状态
  2. 查看服务是否已经运行用 ps -ax | grep cron

  3. crontab命令选项:

    1. -u指定一个用户
    2. -l列出某个用户的任务计划
    3. -r删除某个用户的任务
    4. -e编辑某个用户的任务
  4. 新增任务调度

    1. 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
    2. 直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务

  

Linux基本操作指令详述_第9张图片

 在以上各个字段中,还可以使用以下特殊字符: 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

例子:每一分钟,将当前日期信息追加到/tmp/mydate的文件中

               第一步:编写一个shell脚本mytest.sh

                                date >> /tmp/mydate

                第二步:给mydate.sh执行的权限 chomd 766 /tmp/mytest

                第三步:crontab -e

                第四步:* /1 * * * * /home/mytest.sh

八.Linux磁盘分区,挂载

        一,分区基础知识:

               1,MBR分区    1.最多支持四个主分区

                                        2.系统只能安装在主分区

                                        3.扩展分区要占用主分区

                                        4.MBR最大支持2TB,但拥有最好的兼容性

               2,gtp分区         1.支持无限多分区(受系统限制,如windows最多128分区)

                                          2.最大支持18EB容量(1EB=1024PB)

                                          3.windows64位以后支持gtp

Windows系统的分区:

Windows系统主要是将磁盘分成几个分区(C盘,D盘等等),因此Windows系统中是先有分区,再有目录(文件夹),也就是把文件放入盘中。Windows中的文件夹或者分区相当于一个容器中的容器(可以想象类似于俄罗斯套娃的做法)

LINUX系统的分区:

1.linux无论有几个分区,无论那一目录使用,他归根结底只有一个根目录,一个独立且唯一的文件结构,linux每个分区都是用来组成整个文件系统的一部分。

2.linux采用了“载入”的处理方法,它的整个文件系统包含了一整套的文件和目录,将一个分区和一个目录联系起来,这是载入的一个分区将使他的存储空间在一个目录下获得。

指令:lsblk -f         查看系统分区与挂载情况

name:分区情况

fstype:分区类型

uuid:唯一标识分区的40位不重复的字符串

mountpoin:挂载点

添加一块磁盘:

(小区)1虚拟磁盘添加硬盘

(房子)2分区         fdisk  /dev/sdb(进入后输入m,选择n,p分区为主分区1,最后输入w写入分区并退出。
(装修)3格式化          mkfs    -t      ext4      /dev/sdb/   (ext4是分区类型)

(认证)4挂载          先创建一个/home/newdisk ,然后挂载 mount  /dev/sdb/  /home/newdisk 

                                                                                                          设备名称        挂载目录

(登记)5设置可自动挂载

磁盘情况查询:

        1磁盘具体情况查询: df  -l

                                           df -lh

        2查询指定目录的磁盘占用情况

                 du -h  /目录

                -s  指定目录占用大小汇总

                 -h  带计量单位

                -a 含文件

                -c 列出明细的同时,增加汇总值

                

  九. 进程管理     

(1)在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一

个ID号。

(2) 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。

(3) 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目

前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法

看到的进程,通常使用后台方式执行。

(4) 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到

关机才才结束。
 

   

   

• USER:用户名称

• PID:进程号

• %CPU:进程占用CPU的百分比

• %MEM:进程占用物理内存的百分比

• VSZ:进程占用的虚拟内存大小(单位:KB)

• RSS:进程占用的物理内存大小(单位:KB)

• TT:终端名称,缩写 .

• STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通

优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

• STARTED:进程的启动时间

• TIME:CPU时间,即进程使用CPU的总时间

• COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
 

ps指令

使用ps指令即可查看当前系统中正在执行的进程的各种进程信息

基本语法

ps –选项

选项说明:

-a:显示当前终端的所有进程信息

-u:以用户的形式显示进程信息

-x:显示后台进程运行的参数

 终止进程kill或killall

 kill指令就像是Windows系统中的任务管理->结束任务一样

                                

你可能感兴趣的:(linux,vim,编辑器,centos,vmware)