vi和vim

基本介绍

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

  • 只能在一般模式下使用

  • yy:拷贝当前行
  • 5yy:拷贝当前行向下的5行,包括当前行
  • p:粘贴
  • dd:删除当前行
  • 5dd:删除当前行向下的5行,包括当前行
  • /要查找的值:在文件中查找某个单词,输入n是查找下一个
  • :set nu:设置文件有行号
  • :set nonu:设置文件无行号
  • G:光标移到文档最末行
  • gg:光标移到文档最首行
  • u:撤销上一个动作(从一般模式进入编辑模式,编辑一些内容后退出编辑模式到一般模式,使用该快捷键后编辑的内容将被删除)
  • 将光标移动到指定的行数:

    • 显示行数
    • 输入指定的行数
    • shift+g

      一般模式

  • 可以使用快捷键,可以使用[上下左右]来移动光标,可以进行复制粘贴,删除等操作

    插入(编辑)模式

  • 按i进入编辑模式

    命令行模式

  • :或 \ 开头进入命令行模式

  • :wq 保存并退出
  • :q 不保存并退出,在没进行任何操作的情况下使用
  • :q! 不保存并强制退出,进行操作后但不想保存使用

    开机、重启和用户登录注销

    关机和重启

  • shutdown

    • shutdown -h now:立即关机
    • shutdown -h 1:”hello,1分钟后悔关机了”
    • shutdown -r now:重新启动计算机
  • halt:关机
  • reboot:重启
  • sync:把内存的数据同步到磁盘
  • 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中,防止数据丢失

    用户登录和注销

  • 登录时尽量少用root账号登录,因为它是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后再用“su-用户名”命令来切换系统管理员身份

  • 在提示符下输入logout即可注销用户
  • 图形用户界面下输入logout无效,在Xshell中使用

    用户管理

    基础介绍

    image.png

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

  • Linux的用户需要至少属于一个组

    添加用户

  • useradd [选项] 用户名

    • 当创建用户成功后,会自动的创建和用户名同名的家目录
    • 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
    • passwd 用户名:给用户设置密码

      删除用户

  • userdel 用户名

    • 删除后,家目录保存
    • userdel -r 用户名:删除用户及用户主目录
  • 删除用户时,一般不会将家目录删除

    查询用户信息

  • id 用户名:查询用户信息

image.png

切换用户

  • 在操作Linux中,如果当前用户的权限不够,可以通过su-指令,切换高权限用户,比如root
  • su - 切换用户名
  • 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
  • 当需要返回到原来用户时,使用exit指令
  • whoami / who am i:查看当前用户

    用户组

  • 类似于角色,系统可以对有共性的多个用户进行统一的管理

  • groupadd 组名
  • groupdel 组名
  • useradd -g 用户组 用户名:创建用户并指定组名
  • usermod -g 用户组 用户名:修改用户的组

    用户和组的相关文件

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

    • 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
  • /etc/shadow:口令的配置文件
    • 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group 文件:组(group)的配置文件,记录Linux包含的信息

    • 每行含义:组名:口令:组织标号:组内用户列表

      运行级别和找回root密码

      运行级别

  • 0:关机

  • 1:单用户[找回丢失密码]
  • 2:多用户状态没有网络服务
  • 3:多用户状态有网络服务
  • 4:系统未使用保留用户
  • 5:图形界面
  • 6:系统重启
  • 常用运行级别是3和5
  • init 运行级别:修改运行级别
  • vi /etc/inittab,进入编辑模式将默认级别改为3,重启后默认进入命令行模式

    找回root密码

  • 开机

  • 在引导时输入 e
  • 进入一个页面 输入e
  • 进入一个页面,选中第二行输入e
  • 输入 1 回车
  • 输入b,进入单用户模式
  • passwd root, 修改密码
  • 无法远程使用该方法

    帮助指令

  • man 命令或配置文件 (功能描述:获得帮助信息]

    • man ls
  • help 命令 (功能描述:获得shell内置命令的帮助信息)
  • 输入q退出帮助

    文件目录类

  • pwd:(功能描述:显示当前工作目录的绝对路径)

  • ls [选项] 目录或是文件
    • -a:显示当前目录所有的文件和目录,包括隐藏的
    • -l:以列表的方式显示信息
  • cd 参数 (功能描述:切换到指定目录)
    • cd~或cd:回到自己的家目录
    • cd..:回到当前目录的上一级目录
    • 绝对路径:从根目录开始
    • 相对路径:从当前工作目录开始往下定位。若当前工作目录为boot,在它下面有aaa文件目录,则使用cd ../boot/aaa可将工作目录改为aaa
  • mkdir 选项 要创建的目录
    • -p:创建多级目录
    • 示例:mkdir /home/dog(只能在已有目录下创建一层目录)
    • 示例:mkdir /home/animal/tiger
  • rmdir 选项 要删除的空目录
    • rmdir删除的是空目录,如果目录下有内容时无法删除的
    • 如果要删除非空目录,需要使用rm -rf要删除的目录
  • touch 文件名称:创建空文件
    • 示例:touch hello.txt
  • cp 要复制的文件 要粘贴到的目录
    • 示例:cp hello.txt bbb/
    • cp -r 要复制的目录 要粘贴到的目录(复制整个文件夹)
    • cp -r bbb/ zwj/
    • \cp:强制覆盖不提示
  • rm 选项 要删除的文件或目录
    • -r 递归删除整个文件夹
    • -f 强制删除不提示
  • mv oldNameFile newNameFile (重命名)
  • mv 要移动的文件 要移动到的目录(移动文件,相当于剪切)
  • cat 选项 要查看的文件
    • -n:显示行号
    • cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 |more
  • more 要查看的文件
    • more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明
    • 空格键:向下翻一页
    • 回车键:向下翻一行
    • q:离开
    • ctrl+F:向下滚动一屏
    • ctrl+B:返回上一屏
    • =:输出当前行号
    • :f:输出文件名和当前行号
  • less 要查看的文件
    • less并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
  • :输出重定向

    • ll > 文件:将列表的内容写入文件中(覆盖写)
    • ll >> 文件:将列表内容写入文件中(追加写)
    • cat 文件1 > 文件2:将文件1的内容覆盖到文件2
    • echo 内容 > 文件:将指定内容写入文件中
    • cal >> 文件:将日志写到文件中
  • echo 选项 输出内容:输出内容到控制台
    • 示例:echo $PATH:输出当前环境变量路径
    • 示例:echo “hello”
  • head:用于显示文件的开头部分,默认显示文件的前10行
    • 示例:head /etc/profile
    • head -n 5 文件:指定显示几行内容
    • 示例:head -n 5 /etc/profile
  • tail:用于显示文件的尾部,默认显示后10行
    • tail 文件
    • tail -n 5 文件:显示指定的几行
    • tail -f 文件:实时监测文件更新
    • ctrl + c:退出
  • ln
    • 软连接(符号连接),类似于windows里的快捷方式,主要存放了连接其他文件的路径
    • ln -s 原文件或目录 软连接名(给原文件创建一个软连接)
    • 示例:ln -s /home linktohome
    • 删除软连接:rm linktohome(不加斜杠)
    • 当我们使用pwd指令查看目录时,仍然看到的是软连接所在目录
  • history:查看已经执行过的历史命令

    • history 10:查看最近的10条命令
    • !100:执行编号为100的命令

      时间日期类

      date

  • date:显示当前时间

  • date “+%Y-%m-%d %H:%M:%S”

    cal

  • cal:显示当前日历

  • cal 年份:显示某一年的日历

    搜索查找类

    find

  • find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端

  • find 搜索范围 选项
  • -name:按照指定的文件名查找文件
  • -user:按照属于指定用户名所有文件
  • -size:按照指定的文件大小查找文件
  • 示例:find /root -name hello.java
  • 示例:find / -size +20M:所有大于20M的文件

    locate

  • locate指令可以快速定位文件路径

  • locate指令利用事先建立好的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。
  • locate指令无需遍历整个文件系统,查询速度较快。
  • 为了保证查询结果的准确性,管理员必须定期更新locate时刻
  • locate 搜索文件
  • 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

    grep

  • 过滤查找,管道符,”|”,标示将前一个命令的处理结果输出传递给后面的命令处理

  • cat root_info.txt | grep -n hello(区分大小写)
  • cat root_info.txt | grep -ni hello(不区分大小写)

    压缩

    gzip/gunzip

  • gzip 文件(压缩文件,压缩为.gz文件)

  • gunzip 文件
  • 压缩后不保留原来的文件
  • 可同时压缩多个,压缩后得到相应个数的.gz文件
  • 示例:gzip hello.java root_info.txt

    zip/unzip

  • zip 选项 xxx.zip 要压缩的内容(压缩为.zip文件)

  • unzip 选项 xxx.zip
  • -r :递归压缩,即压缩目录
  • -d 目录:指定解压后文件的存放目录
  • 示例:zip -r hom.zip /home/
  • 示例:unzip -d /opt/temp home.zip

    tar

  • tar指令是打包指令,最后打包后的文件是.tar.gz的文件

  • tar 选项 xxx.tar.gz 打包的内容
  • -c:产出tar打包文件
  • -v:显示详细信息
  • -f:指定压缩后的文件名
  • -z:打包同时压缩
  • -x:解包tar文件
  • 示例:tar -zcvf home.tar.gz /home/
  • 示例:tar -zxvf home.tar.gz -C /opt

RPM和YUM

RPM

  • 一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manger(RedHat软件包管理工具)的缩写,类似windows的setup.exe
  • LInux的分发版本都有采用(suse,redhat,centos)

    rpm包的简单查询指令

  • rpm -qa | grep xx:查询已安装的rpm列表

  • rpm -q 软件包名:查询软件包是否安装
    • rpm -q firefox
    • 结果:firefox-45.0.1-1.el6.centos.x86_64
  • 示例:查询centos有没有安装firefox
    • rpm -qa | grep firefox
    • 结果:firefox-45.0.1-1.el6.centos.x86_64
  • rpm -ql 软件包名:查询软件包中的文件
  • rpm -qi 软件包名:查询软件包信息
  • rpm -qf 文件全路径名:查询文件所属的软件包

    • rpm -qf /etc/passwd
    • 结果:setup-2.8.14-20.el6_4.1.noarch

      rpm包名基本格式

  • firefox-45.0.1-1.el6.centos.x86_64

  • 名称:firefox
  • 版本号:45.0.1-1
  • 适用操作系统:el6.centos.x86_64

    • 如果是i686,i386表示32位系统,noarch表示通用

      rpm包的管理

  • rpm -e 文件包名称:卸载软件包

  • rpm -e —nodeps 文件包名称:强制卸载
  • rpm -ivh 文件包名称:安装文件包
    • -i:install
    • -v:verbose提示
    • -h:hash进度条
  • 安装firefox
    • rpm -e firefox
    • cd /media/CentOS_6.8_Final/Packages/
    • cp firefox-45.0.1-1.el6.centos.x86_64.rpm /opt
    • cd /opt
    • rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm /opt

yum

https://blog.csdn.net/weixin_42104211/article/details/112228242

介绍

  • yum是一个Shell前端软件包管理。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包

    yum的基本指令

  • yum list | grep xx软件列表:查询yum服务器是否有需要安装的软件

    • yum list | grep firefox
  • yum install xxx:安装指定的yum包