一、vi和vim编辑器

①、三种模式

  所有的 Linux 系统都会内建 vi 文本编辑器。vim 具有程序编辑的能力,可以看做是 vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。所以这里以vim为主。你可以把它当做是Windows下的文本编辑器。

  当使用vim xxx时,如果xxx文件不存在,则vim编辑器会在当前的工作目录下创建此文件,如果此文件已经存在则打开此文件。打开文件后只能查看文件内容而不能编辑文件内容,vim编辑器的这种模式被称为------正常模式。

  如果要编辑文件的内容,可以在正常模式下按 i 或者 a键进入------插入模式/编辑模式。

  当需要保存修改的文件时,需要先(按Esc)退回正常模式,在正常模式下按下 :键或者 / 键进入------命令行模式。

  同样的,命令行模式下按Esc键可以退回正常模式,虽然正常模式和编辑模式能直接切换,正常模式和命令行模式能直接切换,但是命令行模式和编辑模式却要通过正常模式间接切换。

  三个模式的关系如下图:

②、案例操作

  以上是vim编辑器的三种模式,下面举一个例子来具体说明。

  1、在命令行窗口输入:vim test1

  2、vim编辑器创建此文件并进入正常模式

  3、i 键进入编辑模式

  4、随便输入一些内容

  5、按Esc退回正常模式

  6、按:键进入命令行模式

  7、输入wq(write+quit)保存文件内容【此时也可以输入q,他会提示你文件内容将不会被保存,也可以输入q!,此时将不会提示直接退出。相同的也有wq!,当文件内容修改可能会对其他文件造成影响时,wq命令将不会执行,如果要强制修改文件内容就需要wq!。】,此时会返回命令行窗口。

③、vim的一些常用快捷键

  1) 拷贝当前行 yy ,  拷贝当前行向下的 5 行 5yy,并粘贴(p)。

  2) 删除当前行 dd , 删除当前行向下的 5 行 5dd

  3) 在文件中查找某个单词  [命令行下  /关键字  , 回车  查找  , 输入 n 就是查找下一个 ],查询hello.

  4) 设置显示文件的行号,取消文件的行号.[命令行下 : set nu  和 :set nonu]

  5) 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg],注意这些都是在正常模式下执行的。

  6) 在一个文件中输入  "hello" ,然后又撤销这个动作,再正常模式下输入 u

  7) 编辑 /etc/profile 文件,并将光标移动到 第 20 行 shift+g : 第一步:显示行号 :set nu    第二步:输入 20 这个数    第三步: 输入 shift+g

④、快捷键大全

二、开机、重启、用户的登陆和注销

  ①、关机和重启指令

  halt--->关机指令

  reboot--->重启指令

  syn--->将内存中的数据持久化到磁盘中,建议每一次关机和重启时,都敲一遍syn指令,防止数据丢失。

  除了这三个常用的指令,还有一套指令用于关机和重启:shutdown -h now 立刻关机

                           shutdown -h 1      1分钟后关机

                           shutdown -r now   立刻重启

  ②、用户的登陆和注销

  Linux是一个多用户操作管理的系统,在日常使用时尽量避免使用root用户登陆,因为root用户的权限太高,操作不当容易造成系统出现问题。

  Linux操作系统中,一切事物都被虚拟化为一盒目录或者文件,并且Linux系统存在运行级别,这个在本篇文章的后面会讲解。

  可能刚接触Linux时,比如说在安装CentOS7中如果没有安装图形化界面的朋友们进去就是一团黑,没有一个友好的图形化界面就被劝退了,这属于3级运行级别,而另一个常用额运行级别为5级(图形化运行级别)。

  之所以提到运行级别,是因为在用户注销的命令中有一个常用的命令logout,但这个命令需要在3级运行级别下才能执行。

  之所以提到多用户管理,是因为在命令行窗口输入命令 (su - 用户名)注意 - 前后都要有空格哦,这个命令下一节还会讲,就可以切换到别的用户,值得一提的是,当高权限用户(root)切换低权限用户时,是不需要输入密码的 ,但是反过来就需要输入登陆密码了。另外当root用户登陆低权限用户时,可以输入exit登出(退回root账户),此方法不使用低权限用户登陆root。

三、用户管理

  ①、基本介绍

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

  2)为了方便管理用户和用户权限,Linux还引入了“组”的概念。并且规定一个用户至少属于一个组,如果在创建用户时不指定组,则会默认创建一个与账户名同名的组,并将该用户划到该组中。

  实际上:Linux在管理用户权限时,既是面向用户的,又是面向组的,通过管理用户的权限规定了其对所拥有的文件的权限(读、改、执行),通过管理组的权限而规定了该组中用户对于某一文件的权限。

  ②、概念图

  Linux的home目录用户管理用户,当新创建一个用户时,就会在home目录下创建一个同名子目录,该子目录就是此用户的工作空间。

  ③、添加用户

  设想一下,此时的你已经工作多年称为项目经理了,此时公司新来了一位员工,你需要给他创建一个账户并根据他的部门划到相应的组中。

  好了别做梦了【敲脑袋】。

  useradd 【选项】 用户名,选项可以不填。

  useradd   -d  /home/目录名  用户名,用这个命令创建用户时,会将指定的目录名作为此账户的家目录。如果此目录不存在则创建,这也就也为着,一个家目录中并不是只能保存一个用户的信息。

  你可以试一下:

  useradd -d /home/dog dog

  useradd -d /home/dog cat

  再使用下面介绍的用户查询指令查询: id dog 和 id cat

  

  ④、给指定用户指定或修改密码【此操作需要使用root权限】

  passwd  用户名

  ⑤、删除用户

  userdel 用户名  这个命令在删除用户时,不会删除该用户的家目录

  userdel  -r  用户名   这个命令在删除用户时,会将此用户的家目录也删除【不建议使用】

  为什么不建议使用第二条指令呢?设想一位员工离职了,但有很多信息保存在他的家目录中,这些信息对于公司来说还是很有价值的,所以不建议删除家目录。

  ⑥、查询用户

  id 用户名

  

  ⑦、切换用户

  在Linux中,当当前账户的权限不够时,可以切换用户。

  su - 用户名

  值得一提的是:高权限用户切换低权限用户时,不需要输入密码,但反过来则需要输入密码。

  当使用root用户登陆低权限用户时,可以使用exit登出返回root用户。

  

  ⑧、用户组

  Linux引入了组的概念用来管理用户权限,实际上Linux是通过规定组的权限去定义用户权限的。

  groupadd 组名  ---增加组

  groupdel  组名  ---删除组

  ⑨、增加用户时指定所属的组

  当新创建一个用户时,如果不指定组,系统会默认的创建一个同名组,如果想创建一个用户并指明其所属的组,应该使用指令:

  useradd -g 用户组 用户名

  

  ⑩、修改用户的组

  

  附:一些重要文件

  a)/etc/passwd文件:用户的配置文件,记录了用户的各种信息

  b)/etc/shadow文件:口令的配置文件

  c) /etc/group文件:组的配置文件,记录了组的信息

四、实用指令

  在操作Windows系统时,我们只需要点击鼠标就可以轻松操作Windows系统,但是操作Linux系统却是一行行指令完成的。在介绍如何操作Linux之前,先介绍一下;Linux的运行级别。

  Linux共有0~6,7个运行级别,分别是:

  0:关机

  1:单用户级别【常用于找回根用户的密码】

  2:多用户状态没有网络服务

  3:多用户有网络服务

  4:Linux操作系统未使用这一级别,将它保留给了用户

  5:图形界面

  6:系统重启

  常用的运行级别是3 和 5 ,自改默认的运行级别可通过修改文件/etc/inittab的id:5:initdefault这一行中的数字。

  1)man指令和help指令

  当不熟悉一个指令的功能时,可以使用man 指令名或者 help 指令名来了解指令的相关信息

  但是还是直接问百度或者查询菜鸟教程比较友好。

  2)pwd指令

  此指令用于显当前的工作目录

  3)ls指令

  ls 【选项】【目录或文件】

  选项处可填 -a 或者 -l ,也可以组合使用-al。

  -a :用于显示当前目录所有的子目录和文件,包括隐藏的文件

  -l :以列表的形式显示当前目录的文件和子目录

  当使用ls -l时,其实和 ll 指令效果相同。

  4)cd指令

  cd 路径  此指令用于切换工作目录,路径可采用相对路径和绝对路径

  比较常用的有:cd ~   此指令用于回到自己的家目录

         cd ..  此指令用于切换到上级目录

  5)mkdir指令

  mkdir 【选项】 要创建的目录,默认情况下此指令只能创建一级目录,而不能创建多及目录,比如说,我在root/目录下可以使用指令 mkdir animal/ 在root目录下创建一个animal目录,但是不可以使用mkdir animal/dog 创建多级目录,如果想要创建多级目录,需要在选项处写上 -p 。在创建目录的时候一定要注意路径是否正确。

  

  6)rmdir指令和rm指令

  rmdir 目录名  用于删除非空目录

  rm -rf 目录名  级联删除非空目录及其子目录和内容

  -r 表示递归删除整个文件,-f 表示强制删除不提示

  

  当然在删除目录的时候也需要注意路径是否正确,删除目录也可以使用绝对路径和相对路径:

  

  

  7)touch指令

  touch指令用于创建文件

  touch hello.txt ,也可以同时创建多个文件:touch dog.txt cat.txt,中间用空格隔开就行。

  

  8)cp指令

  cp指令用于拷贝文件到指定目录

  cp 【选项】 源文件 目标目录

  选项处可填 -r,表示如果源文件是是目录,将递归复制此目录中下所有内容至目标目录。

  拷贝文件到具体目录:

  

  递归复制目录及其下文件至目标目录:

  

  9)mv指令

  mv指令用于移动文件与目录,也可以用于重命名

  mv oldNameFile newNameFile  重命名

  mv dog.txt wangwang.txt

  mv 源文件 目标目录

  

  10)cat指令

  cat指令用于查看文件内容,以只读的方式打开文件

  cat 【选项】 文件名

  选项处可填 -n ,代表显示行号。在使用vim编辑器打开文件的时候,在命令行模式下,输入set nu也可以显示行号,set nonu,取消行号显示。

  11)more指令

  more指令是一个基于vim编辑器的文本过滤器,他以全屏的方式按页显示文本文件的内容,more指令中还内置了若干快捷键。

  more 文件名

  常用快捷键:

  

  12)less指令

  less指令用来分屏查看文件内容,他的功能与more指令类似,但是比more指令更加强大,支持各种显示中断,less指令在显示文件内容时,并不是一次将整个文件加载完成之后再显示的,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

  less 文件名

  快捷键:

  

  13)>指令和>>指令

  > 输出重定向:会将原来的文件内容覆盖

  >>追加:不会覆盖原来文件的内容,而是追加到文件尾部

  a)ls -l > 文件

  

  ls -l > a.txt,将ls -l的内容覆盖写入到a.txt 文件,如果该文件不存在,就创建该文件。

  b)ls -al >> 文件

  

  c)cat 文件1 > 文件2(将文件1的内容覆盖到文件2)

  d)echo "内容">>文件

  14)echo指令

  echo 输出内容到控制台

  

  15)head指令

  head用于显示文件的开头部分信息,默认情况下head指令显示文件的前10行内容。

  head 文件名

  head -n 5 文件名(显示文件前5行内容,5可以是任意数字)

  

  16)tail指令

  tail指令用于输出文件尾部的内容,默认情况下tail指令显示文件的后10行信息。

  基本语法:

    1)tail 文件名  (查看文件后10行内容)

    2)tail -n 5 文件名  (查看文件后5行内容,5可以为任意数字)

    3)tail -f 文件名  (时事追踪该文档的所有信息,工作中经常使用)【重点】

  案例1:查看文件/etc/profile最后5行内容

  

  案例2:实时监控mydate.txt,看看文件内容变化【追加的日期信息】

  

  17)ln指令

  软连接也叫符号连接,类似于Windows里的快捷方式,主要存放了连接其他文件的路径

  ln -s 【原文件或目录】 【软连接名】(给原文件创建一个软连接)

  

  删除上面建立的软连接

  

  18)history指令

  查看已经执行过的历史命令,也可以执行历史命令

  19)date指令

    ①date  (显示当前时间)

  

    ②date +%Y  (显示当前年份)

    ③date +%m  (显示当前月份)

    ④date +%d  (显示当前是哪一天)

  

    ⑤date "+%Y-%m-%d %H:%M:%S"  (以固定格式显示年月日时分秒)

  

    ⑥date -s 字符串时间

  

  20)cal指令

  此指令用于查看日历

  cal  显示当前月的日历

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

  21)find指令

  find指令将从指定目录向下递归遍历各个子目录,将满足条件的文件或者目录显示在终端。简单说就是查找指定目录下是否存在指定文件,存在的话有多少个

  ①按文件名查:

  

  ②按所属用户查

  find animal/ -user cat.txt

  ③查找整个Linux系统下大于20Mb的文件(+n:大于  -n:小于  n:等于)

  find / -size +20M

  ④查找以 .txt结尾的文件

  find / -name *.txt

  22)locate指令

  locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库事先快速定位给定的文件。locate指令无序遍历整个文件系统,查询速度较快,为了保证查询结果的准确性,管理员必须定期更新locate时刻。

  案例:

  

  这里的updatedb是更新locate数据库,locate命令之所以比find -name 文件指令块快的多,原因在于他不是搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mloacte.d,因此在我们用whereis和locate查找文件 时,有时会找到已经删除的文件,或者刚刚创建的文件却无法查找到,就是因为数据库文件没有更新,为了避免这种情况,可以在使用locate指令之前,先试用updatedb指令,手动的更新这个包含本地所有文件信息的数据库。

  23)grep指令和管道符 |

  grep指令用于过滤查找,管道符“|”,用于将前一个指令的输出结果传递给后面一个指令处理。通常而这都是组合使用的。

  grep 【选项】 查找内容 源文件

  选项处可填:-n 显示匹配行及行号

        -i  忽略字母大小写

  

  24)压缩和解压缩指令【重要】

  A)gzip/gunzip指令

    gzip 文件  (压缩文件)

    gunzip 文件.gz  (解压缩文件)

  B)zip/unzip 指令

    zip 【选项】 xxx.zip  (压缩文件)

      选项处可填:-r  表示递归压缩

    

    unzip 【选项】 xxx.zip (解压缩文件)

      选项处可填:-d 目录名 (表示将解压缩后将文件保存在指定文件夹)

    unzip -d /opt/tmp/ mypackage.zip  表示将mypackage.zip解压缩到指定目录 /opt/tmp/下

   

  C)tar指令【常用】

    tar指令既可以压缩也可以解压缩

    tar指令压缩后的文件后缀名是 .tar.gz 的文件

    tar 【选项】 xxx.tar.gz 要打包的内容以空格隔开

    常用选项:

    

  案例1 打包文件:

  

  案例2 打包目录:

  

  案例3 将dogpackage.tar.gz解压到当前目录

  tar -zcvf dogpackage.tar.gz

  案例4 解压dogpackage.tar.gz到固定目录(此固定目录要实现创建好)

  tar -zcvf dogpackage.tar.gz -C  /home

附:本菜鸡刚接触Linux,请各位大佬不吝指正错误。

Linux基础指令--韩顺平老师课程笔记的更多相关文章

  1. 韩顺平老师java视频全套-java视频教程下载

    解压压缩包会有一个种子文件.直接迅雷下载即可,包含了韩顺平老师的java入门视频,jdbc,jsp,servlet,oracle,hibermate,spring,SHH框架,struct,linux ...

  2. Linux基础指令

    Linux基础指令 只写了最简单的一些文件操作,基本没有带参数 查看当前目录 pwd 跳转到某路径 cd 查看当前目录下的文件 ls ls -l // -l 查看详细信息 打开当前所在文件夹 open ...

  3. java韩顺平老师视频有需要可以留言

    java韩顺平老师视频有需要可以留言

  4. Linux 基础指令初识

    Linux 基础指令初识 01. ls 指令 语法: ls [选项] [目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件.对于文件,将列出文件名以及其他信息 -a 列出目录下的所有文 ...

  5. linux基础指令以及权限管理

    基础指令 #打印字符串 echo hello linux #将file1 和 file2粘合在一起,打印到标准输出流 cat file1 file2 标准输入输出 标准输入,stdin,即键盘.鼠标输 ...

  6. 学韩顺平老师linux教程--笔记

    第二讲:1.startx  进入图形界面2.shutdown -h now 立刻进行关机3.shutdown -r now 现在重新启动计算机4.reboot          现在重新启动计算机5. ...

  7. 韩顺平JDBC学习笔记

    第一节 JDBC概述 1.1 JDBC原理图 Java不可能具体地去操作数据库,因为数据库有许多种,直接操作数据库是一种很低效且复杂的过程. 因此,Java引入JDBC,规定一套操作数据库的接口规范, ...

  8. linux基础指令参数

    eth0,eth1,eth2--代表网卡一,网卡二,网卡三-- lo代表127.0.0.1,即localhost 参考: Linux命令:ifconfig 功能说明:显示或设置网络设备 语 法:ifc ...

  9. linux 基础指令

    df -h 查看磁盘空间 root@ubuntu:/etc# df -h Filesystem Size Used Avail Use% Mounted on udev 970M 0 970M 0% ...

随机推荐

  1. SQL SERVER数据库基本语法汇总,仅代表个人整理,仅供参考

    以下SQL基本语法皆由本人整理,以下做一个汇总,关于游标,可作为了解,不要求掌握,其他查询.修改.删除操作等基本语法必须会使用.select * from [dbo].[TBICJE]select m ...

  2. Python学习笔记五(读取提取写入文件)

    #Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本,与大家共同学习. import os import re def get_filelist(dir ...

  3. Jmeter中逻辑控制器

    1.ForEach控制器 操作如下: 对应结果: 2.if controller(类似于if语句,根据给定表达式的值决定是否执行该节点下的字节的) 3.交替控制器(根据线程组中的循环次数来设定子节点中 ...

  4. 攻防世界(XCTF)WEB(进阶区)write up(二)

    国庆就要莫得了   起床刷几道 NewsCenter mfw Training-WWW-Robots NaNNaNNaNNaN-Batman bug NewsCenter search传参那里发现有注 ...

  5. PHP弱性处理0e开头md5哈希字符串缺陷/bug

    PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他 ...

  6. 21.Nginx代理缓存

    1.环境准备 操作系统 应用服务 外网地址 内网地址 CentOS7.6 LB01 10.0.0.5 172.16.1.5 CentOS7.6 Web01 10.0.0.7 172.16.1.7 2. ...

  7. 阿里云 centos7.X mysql数据库安装、配置

    前言 1024阿里云搞活动,ecs云服务新用户促销活动,活动连接就不贴了,买了之后暂时不知道要做啥,想着先安装mysql数据库. 步骤 root用户登录进来 1.配置mysql的yum源,yum lo ...

  8. 重装系统快速恢复使用习惯(各种图标摆放位置、环境变量、C盘可能存放的文件备份、编辑器配置、语言环境导出)

    目录 电脑重装系统注意点 - 尽可能快速恢复你熟悉的 windows 基本使用场景 最好截图的点 常见文件拷贝 入口 查看桌面图标.快捷方式有哪些 程序员大合集 环境变量相关 pycharm 快捷键等 ...

  9. 4、OGNL与值栈

    一.OGNL 1.什么是OGNL 对象导航图语言(Object Graph Navigation Language),简称OGNL,是应用于Java中的一个开源的表达式语言(Expression La ...

  10. maven 打包 spring boot 生成docker 镜像

    1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务 ...