Linux入门

阅读目录

  • 一、Linux
    • 1、什么是Linux
    • 2、Linux目录结构
    • 3、根目录下必须存在的目录
    • 4、绝对路径、相对路径
  • 二、vi、vim
    • 1、什么是vi?
    • 2、什么是vim?
    • 3、vi与vim的三种常见模式
    • 4、常用快捷键(命令)的使用
  • 三、重启、关机、用户注销命令
    • 1、shutdown
    • 2、halt
    • 3、reboot
    • 4、sync
    • 5、logout
  • 四、用户管理
    • 1、基本介绍
    • 2、添加用户
    • 3、指定用户密码
    • 4、删除用户
    • 5、查询用户信息
    • 6、切换用户
    • 7、查看当前登录的用户
    • 8、用户组
    • 9、用户和组的相关文件

一、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:暂时挂载某些额外的设备,类似于/media。

(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),会进入一个编辑状态,此时可以修改文件。

(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

(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 组名 用户名   #在创建用户的同时指定用户组
【修改(切换)用户的用户组】usermod -g 组名 用户名    #修改用户的用户组

9、用户和组的相关文件

/etc/password     #用户的配置文件,记录用户的各种信息    包含:用户名、口令(密码)、用户标识号、组标识号、注释性描述、主目录。    /etc/shadow       #口令(密码)的配置文件    包含:登录名、加密口令、最后一次修改时间、最小时间间隔、最大时间间隔、警告时间、不活动时间、失效时间、标志。
/etc/group        #组的配置文件,记录Linux的组的信心    包含:组名、口令、组标识号、组内用户列表。

本文分享自微信公众号 - 阿冬的运维技术栈(gh_fa71be5df518),作者:Double冬

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ZABBIX 对接 LDAP实现用户登陆统一认证

    注意:实现LDAP用户账户统一认证需要AD和ZABBIX共有用户帐号并且保证LDAP设置中 Test authentication 选项中用户和密码和AD中的相...

    用户6641876
  • 在K8S平台部署Spring Cloud微服务项目

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件

    用户6641876
  • Zabbix自动发现、自动注册、下线自动注销

    网络发现是zabbix最具特色的功能之一,它能能够根据用户事先定义的规则自动添加监控主机或服务等,Zabbix的网络发现功能可以基于:

    用户6641876
  • geotools等值线生成

    前文中,提到了等值面的生成,后面有人经常会问等值线的生成,本文在前文的基础上做了一点修改,完成了等值线的geotools生成。

    lzugis
  • Linux系统的用户和用户组管理

    用户在系统中是分角色的,在Linux系统中,由于角色的不同,权限和所完成的任务也不同; 值得注意的是用户的角色是通过UID和GID识别的; 特别是UID,在运维...

    剑行者
  • Web安全实战

    前言 本章将主要介绍使用Node.js开发web应用可能面临的安全问题,读者通过阅读本章可以了解web安全的基本概念,并且通过各种防御措施抵御一些常规的恶意攻击...

    wangxl
  • CSS

    CSS的四种引入方式: 一、行内样式 <div style="background-color: blue;color: brown">cairui</div>...

    用户1173509
  • 使用adb连接Mumu模拟器

    3)找到mumu安装目录下的MuMu\emulator\nemu\vmonitor\bin目录

    流柯
  • 使用inferCNV分析单细胞转录组中拷贝数变异

    inferCNV用与探索肿瘤单细胞RNA-seq数据,分析其中的体细胞大规模染色体拷贝数变化(copy number alterations, CNA), 例...

    生信技能树jimmy
  • [日常] 当前项目前端版本管理的情况

    1.线上环境静态文件存放于前端CDN静态池,有一个专门的发布系统可以上传文件.在发布文件的时候需要创建url路径,因为CDN的缓存原因,在路径中增加了版本号,最...

    陶士涵

扫码关注云+社区

领取腾讯云代金券