• Linux入门


    一、Linux

    1、什么是Linux

      是一款操作系统,免费、开源、高效、稳定、处理高并发性能强。

    2、Linux目录结构

      Linux目录结构,可以看成是一种树形结构。其中最顶端使用 “/”表示,称为根目录。由于Linux是开放源代码的,不同的公司会根据Linux的核心代码进行修改,如果不对目录的功能进行描述、约束,那么使用者使用不同公司开发的Linux系统时,会崩溃、懵逼的。所以需要对Linux的目录作用有个大概的了解。
    常用目录:
    (1)根目录(/):最重要的目录,相当于Windows系统中的C盘。所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。

    (2)/bin:用于存放一些常用指令的目录。
      比如cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。

    (3)/sbin:用于存放系统管理员才能使用的指令的目录。(系统管理员用其设定系统,其他使用者最多只能用来查询)
      比如:常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

    (4)/home:用于存放普通用户的主(家)目录。
      注:~ :代表当前使用者的家目录,而 ~guest:则代表用户名为guest的家目录。

    (5)/root:用于存放系统管理员的主目录。

    (6)/lib:用于存放开机所需的函数库,所有的应用程序都需要用到这些函数库。
      比如:/lib/modules/这个目录,会放置核心相关的模组(驱动程式)。

    (7)/lost+found:这个目录一般是空的,但是系统非法关机后,这个目录会存放一些文件。

    (8)/etc:用于存放所有的配置文件和子目录。

    (9)/usr:用于存放应用程序的目录。
      注意:不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据。相当于Windows系统中的Program files目录。

    (10)/boot:用于存放启动Linux时使用的一些核心文件,比如一些连接文件以及镜像文件。

    (11)/proc:是一个虚拟的目录,用来存放系统内存的映射,访问这个目录可以获取系统信息。

    (12)/srv:是service的缩写,该目录存放的是一些服务启动后需要提取的数据。

    (13)/sys:与/proc类似,一个虚拟的目录,记录与核心相关的信息。

    (14)/tmp:用来存放临时文件的一个目录。

    (15)/dev:类似于Windows的设备管理器,把所有的硬件用文件的形式存储。

    (16)/media:自动识别媒体设备,比如U盘,光驱等,识别后,会挂载到此目录。

    (17)/mnt:暂时挂载某些额外的设备、文件系统等(比如 vmtools 设置共享目录时会出现在此目录下)。

    (18)/opt:当安装额外的软件时,可以放在该目录下,默认为空,也可放在/usr/local目录下。

    (19)/usr/local:类似于/opt。

    (20)/var:针对动态性文件,比如缓存、日志等经常变化的文件,可以存放在此处。
    注:
      /usr是安装时会占用较大硬盘容量的目录,/var是在系统运作后才会渐渐占用硬盘容量的目录。

    3、根目录下必须存在的目录

      根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去。
    目录:
    (1)/etc:开机所需配置文件。
    (2)/bin:开机所需命令。
    (3)/dev:开机所需要的装置文件。
    (4)/lib:开机所需的函式库与核心所需的模块。
    (5)/sbin:开机所需的系统执行文件

    4、绝对路径、相对路径

    (1)绝对路径:指文件或目录在硬盘上的绝对位置。(以/开头)。 例如: /usr/local
    (2)相对路径:指文件或目录相对于当前工作目录的位置。(不以/开头)。例如:./local
    注:
      . :代表当前的目录,也可以使用 (./ ) 来表示;
      .. :代表上一层目录,也可以 (../ )来代表。

    二、vi、vim

    1、什么是vi?

      vi是一个Linux内嵌的一个文本编辑器。

    2、什么是vim?

      vim可以看成是vi的增强版,具有程序编辑的能力,可以主动以字体颜色区分语法的正确性,方便程序设计、代码补充、编译以及错误跳转等常用编程的功能。

    3、vi与vim的三种常见模式

    (1)正常模式
      即正常打开一个文件,可以使用快捷键进行上下左右移动以及粘贴复制操作,按 :  或者 / 进入命令模式。

    (2)插入模式(编辑模式)
      按下 i, I, o , O, a, A, r, R 中任意一个字母后(一般按 i),会进入一个编辑状态,此时可以修改文件,按 ESC 退出到 正常模式。

    (3)命令模式
      此模式提供相关指令,完成读取、存盘、替换、显示文件行号、离开vim编辑器等操作。

    【举例:新建一个helloWorld.java】
    在终端输入
        vim helloWorld.java         
        #若当前helloWorld.java文件不存在,则会创建一个。
        此时进入 正常模式。
        
        输入 i 可以进入 编辑模式。
        class helloWorld{
            public static void main(String[] args){
                System.out.println("helloWorld");
            }
        }
        
        按下ESC,可以退出编辑模式,进入正常模式。
      按下 : 进入命令模式。 常见命令模式命令: :wq 保存文件并退出 :q 对于未修改的文件,可以直接退出,若已经修改文件,会提示进行 :q
    ! 操作 :q! 强制退出文件,不保存文件。

    4、常用快捷键(命令)的使用

    (1)拷贝、粘贴行
      在正常模式下输入快捷键(命令)。若处于编辑模式,使用ESC退出即可。
    拷贝:
      输入 yy 可以拷贝一行(拷贝光标所在当前行),
      输入 5yy 可以从当前行开始向下拷贝5行。
    粘贴:
      输入 p 可以粘贴拷贝的数据。

    yy
    5yy
    p

    (2)删除行
      在正常模式下输入快捷键(命令)。若处于编辑模式,使用ESC退出即可。
      输入 dd 可以删除一行(删除光标所在当前行)。
      输入 5dd 可以从当前行开始向下删除5行。

    dd
    5dd

    (3)查找某个关键字
      在命令模式下输入快捷键(命令)。若处于编辑模式,使用ESC退出到正常模式,再按 / 进入命令模式。
      输入 /关键字, 然后回车,即可开始查找 关键字。 若有多个数据时,输入 n 即可查找下一个。

     /关键字     比如 : /hello
     n

    (4)设置文件行号、取消文件的行号
      在命令模式下输入快捷键(命令)。若处于编辑模式,使用ESC退出到正常模式,再按  : 进入命令模式。
      输入 :set nu 显示文件行号
      输入 :set nonu 不显示文件行号

    :set nu
    :set nonu

    (5)快速定位到文档首行 或者 尾行。
      正常模式下输入:
      G 快速定位到文档末尾行。
      gg 快速定位到文档首行。

    G
    gg

    (6)快速定位到某行
      非编辑模式下:
      比如定位到 第 20 行,
        step1:可以使用 :set nu 显示行号,
        step2:然后输入 20 这个数。
        step3:按住 shift + g 可以 切换到第 20 行。

    (7)撤销某次编辑操作。
      若某次编辑文件后,想回退回上个版本。
      首先ESC退出编辑,然后输入 u 即可回退回上个版本。


    三、重启、关机、用户注销命令

    1、shutdown

    shutdown -h now         表示立即关机
    shotdown -h 1           表示1分钟后关机
    shotdown -r now         表示立即重启

    2、halt

    halt          表示立即关机
        等价于
    shutdown -h now         表示立即关机

    3、reboot

    reboot        表示立即重启
        等价于
    shotdown -r now         表示立即重启

    4、sync

    sync          表示将内存中的数据同步到磁盘,防止数据丢失。
    注:
        不管是重启系统还是关闭系统,应该首先运行 sync 命令,将内存中的数据写入磁盘。

    5、logout

    logout        表示注销当前用户的登录状态,
    只适用于远程登录(比如使用Xshell5远程连接Linux,在Xshell5中输入logout可以注销当前用户连接)

    四、用户管理

    1、基本介绍

      Linux系统是一个多用户多任务的操作系统(即Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。),任何一个需要使用该系统资源的用户,均需要向系统管理员申请一个账号,然后根据这个账号进入系统。每个账号对应一个 /home/ 目录, 不同的账号登录系统后,会进入不同的 /home/ 。

    2、添加用户

    useradd 用户名           #此时会默认在  /home 下创建一个与 用户名 同名的 文件夹
    useradd -d 指定目录 用户名   #此时会默认在  /home 下创建一个 指定目录名的文件夹
    
    即:
        useradd tom    #此时会默认创建一个  /home/tom
        useradd -d /home/jarry jarry   #此时会创建一个  /home/jarry, 若文件已存在,可能会出现一些问题。

    3、指定用户密码

    passwd 用户名     #给用户指定密码,此时输入密码不可见

    4、删除用户

    userdel 用户名      #删除用户,但不删除家目录
    userdel -r 用户名      #删除用户,同时删除家目录(一般不进行此操作)
    
    即:
        userdel tom    #此时会删除用户,但是仍然存在  /home/tom
        userdel -r tom  #此时会删除用户,且删除 /home/tom

    5、查询用户信息

    id 用户名         #用于查询用户的信息。若用户不存在,则提示无此用户。
    会打印出 uid, gid, 以及 组 的相关信息。
    其中:
        uid:指的是用户的 id 号
        gid:指的是用户所在组的 id 号。
        组: 指的是组的名称

    6、切换用户

      在Linux操作系统中,如果当前用户的权限不够,可以使用 su - 用户名, 来切换到高权限的用户(比如切换到 root 上)。
    注:
      权限高的用户切换到权限低的用户,不需要密码,反之需要。

    su - tom    #切换到tom用户,此时不能访问 /root/ 目录,会有提示信息。
    exit        #退回到原来的用户,比如root,此时可以访问 /root/ 目录。

    7、查看当前登录的用户

    whoami      #用于查看当前用户

    8、用户组

      用户组是具有相同特征用户的逻辑集合。简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有 10 个用户的话,就需要授权 10 次,那如果有 100、1000 甚至更多的用户呢?

      显然,这种方法不太合理。最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。

    groupadd 组名        #创建一个组 
    groupdel 组名        #删除一个组
    
    【在创建用户的同时指定用户组】
    groupadd 组名        #创建一个组 
    useradd -g 组名 用户名   #在创建用户的同时指定用户组
    注:
      useradd 用户名 # 创建用户未指定用户组时,会自动创建一个 与 用户名 同名的 用户组 【修改(切换)用户的用户组】 usermod
    -g 组名 用户名 #修改用户的用户组

    9、用户和组的相关文件

    /etc/password     #用户的配置文件,记录用户的各种信息
        包含:用户名、口令(密码)、用户标识号、组标识号、注释性描述、主目录。
        
    /etc/shadow       #口令(密码)的配置文件
        包含:登录名、加密口令、最后一次修改时间、最小时间间隔、最大时间间隔、警告时间、不活动时间、失效时间、标志。
    
    /etc/group        #组的配置文件,记录Linux的组的信息
        包含:组名、口令、组标识号、组内用户列表。
  • 相关阅读:
    批处理bat命令--获取当前盘符和当前目录和上级目录
    网页切图div+css命名规则
    Css 切换
    JavaScript的编码规范
    JavaScript原型继承添加方法属性
    使用cookie
    常见元素及其相关事件/创建弹出框
    在JavaScript中什么时候使用==是正确的?
    理解Null和Undefined
    Oracle一列的多行数据拼成一行显示字符
  • 原文地址:https://www.cnblogs.com/l-y-h/p/11436870.html
Copyright © 2020-2023  润新知