Linux基础

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指令:查看日历指令
      • 搜索查找类
        • find
        • locate指令
        • 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 组名

文件/目录 所在组

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

你可能感兴趣的:(Linux修炼之路)