Linux基础

    技术2023-07-03  104

    Linux基础

    基础篇Linux的目录结构 实操篇vi和vim编辑器基本介绍Vi和Vim的三种常见模式正常模式插入模式/编辑模式命令行模式 开机、重启基本介绍 用户登录和注销基本介绍 用户管理基本介绍添加用户指定密码或修改密码删除用户查询用户信息指令切换用户查看当前用户/登录用户 用户组基本介绍 新增用户组删除组添加用户时直接加上组修改用户组 用户和组的相关文件实用指令指定运行级别基本介绍 找回密码帮助指令文件目录类pwd 指令:显示当前工作目录的绝对路径ls指令cd指令:切换到指定目录mkdir指令 :用于创建目录(make directory)rmdir指令:删除空目录touch 指令:创建空文件cp 指令:拷贝文件到指定目录rm 指令:删除文件或目录mv指令:移动文件与目录或者重命名cat 指令:查看文件内容,是以只读的方式打开文件more指令:以全屏的方式按页显示文件的内容less 指令;分屏显示文件内容>指令和>>指令echo 指令:输入内容至控制台head 指令:用于显示文件的开头部分内容tail指令:用于输出文件中尾部的内容ln 指令history指令:查看已经执行过的历史命令,也可以执行历史命令 时间日期类date指令-显示当前日期date指令-设置日期cal指令:查看日历指令 搜索查找类findlocate指令grep指令和管道符号 | 压缩和解压类gzip/gunzip指令zip和unzip指令tar 指令 组管理和权限管理Linux组基本介绍文件/目录 所有者查看文件的所有者修改文件所有者‘ 组的创建文件/目录 所在组

    基础篇

    Linux的目录结构

    具体的目录结构 /bin [重点] (/usr/bin、/usr/local/bin) 是Binary的缩写,这个目录存放着最经常使用的命令/sbin (/usr/sbin、/usr/local/sbin) s是Super User的意思,这里存放的是系统管理员使用的系统管理员程序/home [重点] 存放普通用户的主目录。在Linux中的每个用户有一个自己的目录,一般该目录名是以用户的账号命名的。/root [重点] 该目录为系统管理员,也称为超级权限者的用户主目录/boot[重点] 存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件/proc 存放的是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息/srv service缩写,该目录存放一些服务启动之后需要提取的数据/sys 这是Linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统/tmp 这个目录是用来存放一些临时文件的/dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储/media linux系统自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下面/mnt 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部存储挂载在/mnt/上。然后进入该目录就可以查看里面的内容了/opt 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空。/usr/local 这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序/var[重点] 这个目录中存放着在不断扩充的东西,习惯将经常被修改的目录放在这个目录下。包括日志文件。/selinux SElinux是一种安全子系统,它能控制程序只能访问特定文件。

    实操篇

    vi和vim编辑器

    基本介绍

    所有的Linux系统都会内建vi文本编译器

    Vim具有程序编辑的能力,可以看作是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富。

    Vi和Vim的三种常见模式

    正常模式

    在正常模式下,我们可以使用快捷键 以Vim打开一个文档就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用[上下左右]按键来移动光标,可以使用[删除字符]或[删除整行]来处理档案内容,也可以使用[复制、粘贴]来处理文件数据。

    插入模式/编辑模式

    在模式下,可以输入内容: 按下i、I、o、O、a、A、r、R任何一个字母之后才会进入编辑模式,一般按i较多

    命令行模式

    在这个模式当中,可以提供相关指令,完成读取、存盘、替换、离开Vim、显示行号等的动作,则是在此模式中达成的。

    开机、重启

    基本介绍

    shutdown -h now 立刻进行关机 shutdown -h 1 "hello ,1分钟后会关机了!" shutdown -r now 现在重新启动计算机 halt 关机。 reboot 现在重新启动计算机 sync 把内存的数据同步到磁盘

    不管是重启系统还是关闭系统,首先是要运行sync命令,把内存中的数据写到磁盘中

    用户登录和注销

    基本介绍

    1)登录时尽量少用root账号登录,因为他是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用su-用户名命令来切换成系统管理员身份。 2)在提示符下输入logout即可注销用户

    logout 注销指令在图像运行级别无效,在运行级别3下有效。

    用户管理

    基本介绍

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

    添加用户

    基本语法:useradd 用户名

    指定密码或修改密码

    基本语法:passwd 用户

    细节说明

    当创建用户成功后,会自动的创建和用户名同名的家目录可以通过useradd -d 指定目录新的用户名,给新创建的用户指定家目录

    删除用户

    基本语法:userdel 用户名

    (1)删除用户,但是保留家目录 userdel 用户名 (2)删除用户以及用户主目录 userdel -r 用户名

    查询用户信息指令

    基本语法:id 用户名 [root@localhost /]# id root uid=0(root) gid=0(root) 组=0(root)

    uid—用户id gid—组的id 组—组名

    当用户不存在时,返回“五无此用户”

    切换用户

    语法:su - 切换用户名

    查看当前用户/登录用户

    基本语法:whoami/who am I

    用户组

    基本介绍

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

    新增用户组

    语法:groupadd 组名

    删除组

    语法:groupdel 组名

    添加用户时直接加上组

    语法:useradd -g 用户组 用户名

    修改用户组

    语法:usermod -g 用户组 用户名

    用户和组的相关文件

    /etc/passwd 文件 用户(user)的配置文件,记录用户的各种信息/etc/shadow 文件 口令的配置文件 每行的含义:登录名;加密口令;最后一次修改时间;最小时间间隔;最大时间间隔;警告时间;不活动时间;失效时间;标志。/etc/group 文件 组的配置文件,记录Linux包含的组的信息。 每行含义:组名;口令;主标识号;组内用户列表。

    实用指令

    指定运行级别

    基本介绍

    运行级别说明

    0:关机1:单用户【找回丢失密码】2:多用户状态没有网络服务3:多用户状态有网络服务4:系统未使用保留给用户5:图形界面6:系统重启

    常用运行级别是3和5,要修改默认的运行级别可改文件:/etc/inittab

    命令:init [0-6]

    找回密码

    进入单用户模式,然后修改密码。因为单用户模式,root不需要密码就可以登录。

    步骤: 1、开机,在引导时输入回车键 2、看到界面时输入e 3、看到一个新的界面时,选中第二行(编辑内核) 4、再输入e,在这一行的最后输入 1 5、再次输入b,这时就会进入到单用户模式 6、使用passwd指令修改root密码

    帮助指令

    man 获取帮助信息 语法:man [命令或配置文件] help指令:获取shell内置命令的帮助信息 语法:help

    文件目录类

    pwd 指令:显示当前工作目录的绝对路径

    语法:pwd

    ls指令

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

    常用选项 -a:显示当前目录所有的文件的信息和目录,包括隐藏的 -l:以列表的形式显示信息

    cd指令:切换到指定目录

    语法:cd [参数]

    常用参数:绝对路径和相对路径

    mkdir指令 :用于创建目录(make directory)

    语法:mkdir [选项]

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

    rmdir指令:删除空目录

    语法:rmdir [选项] 使用细节: 删除的是空目录,如果目录下有内容则无法删除。如果需要删除非空目录,需要用rm -rf删除目录。

    touch 指令:创建空文件

    语法:touch 文件名称

    cp 指令:拷贝文件到指定目录

    语法:cp [选项] source dest cp aaa.txt bbb/

    常见选项

    -r:递归复制整个文件夹

    递归复制整个文件夹

    cp -r test/ zwj/

    强制覆盖不提示的方法:\cp

    rm 指令:删除文件或目录

    语法:rm [选项]

    常用选项

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

    mv指令:移动文件与目录或者重命名

    语法: mv oldName newName (功能:重命名) mv /oldPath /newPath (功能:移动文件)

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

    语法:cat [选项] 要查看的文件

    常用选项

    -n:行号

    cat 只能浏览文件,不能修改文件,为了浏览文件,一般会带上管道命令:| more,即 cat 文件名 | more [分页浏览]

    more指令:以全屏的方式按页显示文件的内容

    more 指令是一个基于VI编译器的文本编译器,它以全屏幕的方式按页显示文件的内容。more指令中内置了多个快捷键

    语法:more 要查看的文件

    快捷键列表

    操作功能说明空格键代表向下翻一页Enter代表向下翻「一行」q代表立刻离开more,不再显示该文件内容ctrl+F向下滚动一屏ctrl+B返回上一屏=输出当前的行号:f输出文件名和当前行的行号

    less 指令;分屏显示文件内容

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

    语法:less 要查看的文件 操作功能说明空格键向下翻动一页「pagedown」向下翻动一页「pageup」向上翻动一页/字串向下搜索「字串」的功能,[n:向下查找;N:向上查找]?向下搜索「字串」的功能,[n:向下查找;N:向上查找]q离开less这个程序

    >指令和>>指令

    基本介绍

    > 指令重定向:会将原来的文件的内容覆盖。 >> 不会覆盖原来的文件内容,而是追加到文件的尾部。

    语法:ls -l > 文件 (功能:列表的内容写入到文件中「覆盖写」)

    将ls -l的显示内容覆盖写到文件中,如果文件不存在,就创建该文件

    ls -al >>文件 (功能描述:列表的内容追加到文件的末尾)

    echo 指令:输入内容至控制台

    语法:echo [选项][输出内容]

    head 指令:用于显示文件的开头部分内容

    (默认情况下)head指令显示文件的前10行内容

    head 文件(查看文件头10行内容) head -n 5 文件 (查看文件头5行内容)

    tail指令:用于输出文件中尾部的内容

    (默认情况下tail指令显示文件的后10行内容)

    - tail 文件 (查看文件后10行内容) - tail -n 5 文件(查看文件后5行内容) - tail -f 文件(实时追踪该文档的所有更新)

    ln 指令

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

    ln -s[原文件或者目录][软链接名](功能:给原文件创建一个软链接) ln -s /root linkToRoot

    删除软链接 linkToRoot

    rm -rf linkToRoot

    当我们使用pwd指令查看目录时,看到的仍然时软链接所在目录

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

    - history 显示所有的历史命令 - history 10 显示=最近使用过的10个指令 - !命令编号 执行历史命令

    时间日期类

    date指令-显示当前日期

    - date 显示当前时间 - date +%Y 显示当前年份 - date +%m 显示当前月份 - date +%d 显示当前是哪一天 - date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒

    date指令-设置日期

    date -s 字符串时间 例如:设置系统当前时间:date -s "2018-10-10 11:22:22"

    cal指令:查看日历指令

    cal [选项] 不加选项,显示本月日历 例如:cal 2020 显示2020年日历

    搜索查找类

    find

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

    语法:find[搜索范围][选项] 选项功能-name<查询方式>按照指定的文件名<查找模式>查找文件-user<用户名>查找属于指定用户名所有文件-size<文件大小>按照指定的文件的大小查找文件 - 按文件名:例如,根据名称查找/home目录下的hello.txt: find /home -name hello.txt - 按拥有者:查找/opt目录下,用户成为nobody的文件 find /opt -user nobody - 查找整个Linux系统下大雨20M的文件(+n 大于,-n小于,n等于) find / -size 20M - 查询`/`目录下,所有.txt的文件 find / -name *.txt

    locate指令

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

    语法:locate 搜索文件

    由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

    grep指令和管道符号 |

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

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

    常用选项

    选项功能-n显示匹配行及行号-i忽略字母大小写 例如:在hello.txt文件中,查找“yes”所在行,并且显示行号 cat hello.txt | grep -n yes

    压缩和解压类

    gzip/gunzip指令

    gzip 用于压缩文件,gunzip用于解压文件

    语法:gzip 文件(压缩文件,只能将文件压缩为*.gz文件) gunzip 文件.gz(解压缩文件命令)

    使用gzip对文件进行压缩后,不会保留原来的文件

    zip和unzip指令

    zip 用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用处。

    语法:zip [选项]XXX.zip 将要压缩的内容(功能描述:压缩文件合格目录的命令) unzip [选项] XXX.zip(功能描述:解压缩文件) zip 常用选项 -r:递归压缩,集压缩目录unzip 常用选项 -d<目录>:指定解压后文件的存放目录 例如: 将/home下的所有文件进行压缩成`mypackage.zip` zip -r mypackage.zip /home/ 将`mypackage.zip`解压到/opt/tmp目录下 unzip -d /opt/tmp/ mypackage.zip

    tar 指令

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

    语法:tar [选项] XXX.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)

    选项说明

    选项功能-c产生.tar打包文件-v显示详情信息-f指定压缩后的文件名-z打包同时压缩-x解包.tar文件

    例如:压缩多个文件,将/home/a1.text和/home/a2.txt压缩成a.tar.gz

    tar -zcvf a.tar.gz a1.txt a2.txt

    将a.tar.gz 解压到当前目录

    tar -zxvf a.tar.gz

    将myhome.tar.gz解压到/opt/目录下

    tar -zxvf myhome.tar.gz -C /opt/ 指定解压到的目录,事先要存在才能成功,否则会报错。

    组管理和权限管理

    Linux组基本介绍

    在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、所在组、其他组的概念。

    文件/目录 所有者

    一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

    查看文件的所有者

    语法:ls -ahl

    修改文件所有者‘

    chown 用户 文件名

    组的创建

    语法:groupadd 组名

    文件/目录 所在组

    当某个用户创建了个文件后,默认这个文件的所在组就是该用户所在的组。 ####查看文件/目录所在组

    Processed: 0.012, SQL: 9