linux 学习记录
周瑜 Lv2

Linux学习记录

一、Linux基础篇

1.Linux介绍

  • Linux是一款操作系统,免费,开源,安全,高效,处理高并发非常强悍,现在很多的企业级项目都部署到Linux服务器上。

2.Linux的目录结构

​ Linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下在创建其他的目录。

深刻理解Linux树状文件目录是非常重要的,在Linux世界中,一切皆文件

image-20210313133827488

  • 目录结构的具体介绍

    image-20210313133940934

image-20210313134026240

image-20210313134102561

  • Linux目录总结
    1. Linux的目录中有且只有一个根目录/
    2. Linux的各个目录存放的内容都是规划好的,不能乱放文件
    3. Linux是以文件的形式管理我们的设备,因此Linux系统,一切皆为文件
    4. Linux的各个文件目录下存放什么内容,必须要有一个认识
    5. 学习后,脑海中应该有一颗Linux目录树

3.Linux远程操作

  • 我用Windows10安装Ubuntu桌面子系统每次连接都要重启xrdp服务
1
sudo /etc/init.d/xrdp restart 

4.ubuntu设置中文

  • 下载中文语音包

    1
    sudo apt-get install language-pack-zh-han*
  • 设置中文

    1
    export LC_ALL=zh_CN.UTF-8
  • 输入locale 将显示出来的内容备份

    1
    2
    3
    4
    5
    6
    7
    8
    C
    C.UTF-8
    en_US.utf8
    POSIX
    zh_CN.utf8
    zh_HK.utf8
    zh_SG.utf8
    zh_TW.utf8

二、Linux实操篇

1.使用Xshell远程连接

  • 使用Xshell远程连接,然后发现他说无法连接

    1
    2
    Connecting to 192.168.100.104:22...
    Could not connect to '192.168.100.104' (port 22): Connection failed.
  • ping了一下网络是能ping通的

    1
    ping 192.168.100.104
  • 然后关闭防火墙说报错

  • image-20210313142208017

  • 然后在终端查看ssh进程,输入ps -e|grep ssh,如果有安装openssh-client只会出现ssh -agent,不会出现sshd

    image-20210313142133227

  • 要想开放本机SSH服务以便其他系统登陆访问,就必须安装openssh-server;在终端中输入sudo apt-get install openssh-server,然后输入自己的root密码就可以了;

image-20210313142323225

  • 然后启动ssh-server服务即可

    image-20210313142538586

  • 验证是否开启成功,出现sshd表示开启成功

    image-20210313142626340

  • 然后xshell连接又出现密码框为灰色的问题

    image-20210313144601051

  • 然后百度说服务器端设置问题,输入vi /etc/ssh/sshd_config修改sshd配置文件(要用root权限修改)将图中的属性改为yes(打开文件输入s进入编辑模式,按Esc退出编辑模式,在末尾输入:wq保存并退出)

    image-20210313150134134

  • 然后在重新启动sshd服务

    1
    sudo /etc/init.d/ssh restart

2.远程上传下载文件Xftp5

  • xftp5是一款基于Windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp以后,Windows用户能安全的在UNIX/Linux和WindowsPC之间传输文件。

3.vi 和vim编辑器

  • vi和vim的三种常用模式

    • 正常模式

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

      • 在模式下,可以输入内容
      • 按下i,s等字母后会进入编辑模式,一般来说按i即可
    • 命令行模式

      • 这个模式,可以使用相关命令,完成读取,存盘,替换,离开vim,显示行号等动作
      • :q是退出,:wq是保存并退出,:q!是不保存并退出,:wq!是保存并强制退出
  • vi 和 vim快捷键 的使用案例

    • 拷贝当前行 yy,拷贝当前行向下的n行 nyy,并粘贴(p)
    • 删除当前行 dd 删除当前行向下的n行 ndd
    • 在文档中查找某个单词 【命令行下 /关键字,回车查找,输入n查找下一个 N查找上一个】
    • 设置文件的行号 || 取消文件的行号 【命令行下 :set nu || :set nonu】
    • 快捷到文档末行 G 首行 gg
    • 撤销 u 类似于Ctrl+Z
    • 导航到第N行 shift+g
      • 第一步:显示行号:set nu
      • 第二步:输入n
      • 第三步:输入Shift+g

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

  • 关机&重启命令
    • shutdown

      • shutdown -h now:表示立即关机
      • shutdown -h 1:表示一分钟后关机
      • shutdown -r now:立即重启
    • halt (直接使用,效果等价于关机)

    • reboot(就是重启系统)

    • syn :把内存的数据同步到磁盘(我们关机或重启时,先执行,把内存写入磁盘,防止数据丢失)

  • 用户登录与注销

    • 登录时尽量少用root账号登录,root是最高权限,避免失误,可以利用普通用户登录,登陆后再用”su -用户名”命令来切换成系统管理员身份
    • 在提示符下输入logout即可注销用户

5.用户管理

1.说明

  • Linux系统就是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先像系统管理员申请一个账号,然后以这个账号的身份进入系统。
  • Linux的用户需要至少要属于一个组。

2.添加用户

  • 添加用户
    • useradd –添加用户不用输入密码 注:在Ubuntu下不会创建用户目录,需要用useradd -m
    • adduser –添加用户需要输入密码 在Ubuntu下也会创建用户目录
    • useradd -d 目录 新用户:–给新建的用户添加目录 注:在Ubuntu下也不会创建文件夹
    • useradd -g 用户组 用户名 :–添加用户时指定用户组
  • passwd 用户名 :给用户设置密码

3.删除用户

  • userdel 用户名 只删除用户
  • userdel -r 用户名 注:会同用户目录一起删除

4.查询用户信息

  • id 用户名:–查询用户

5.切换用户

  • su - 用户名:–切换用户
  • exit :–返回到上一个用户
  • 注意:从权限高的用户切换到权限低的用户,不需要输入密码,反之需要

6.用户组 –类似于角色,系统可以对又共性的多个用户统一管理

  • groupadd 组名 :–添加组
  • groupdel 组名:–删除组
  • usermod -g 用户组 用户名:–修改用户的组

7.用户和组的相关文件

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

8.实用指令(Ubuntu系统不一样)

  • 运行级别说明,常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault这一行中的数字

  • image-20210314133707233

  • init[012356] :–切换到指定运行级别

  • 面试题:找回root密码

    • image-20210314135422944

    • image-20210314135503877

9.帮助指令

  • 当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法。
  • man 命令或配置文件 :– 获得帮助信息
  • help 命令 : –获得shell内置命令的帮助信息

10.文件目录类的指令

  • pwd :–显示当前目录的绝对路径

  • ls :–显示目录 ls -l :–以列表的方式显示信息 ls -al:–显示所有的文件和目录

  • cd的几种用法

    • cd 绝对路径 :–去到当前路径
    • cd&cd~ :–回到家目录
    • cd - 返回上一个工作目录
    • cd .. 返回上一级目录
  • mkdir指令用于创建目录

    • mkdir 要创建的目录(/home/aa) :–创建一个目录
    • mkdir -p 要创建的目录(/home/aa/bb):–创建多级目录
  • rmdir 不能删除非空目录

    • rmdir 要删除的目录:–删除一个空目录
    • rm -rf 要删除的目录 :–可以删除非空目录
  • touch 文件名称 :–创建空文件(可创建多个,用空格隔开)

  • cp指令用法

    • cp 要拷贝的文件 粘贴的目录 :–拷贝单个文件夹
    • cp -r 要拷贝的文件 粘贴的目录 :–可以拷贝整个文件夹
    • \cp 强制覆盖
  • rm删除指令用法

    • rm 要删除的文件 :–删除单个文件
    • rm -r 要删除的文件:–可以删除整个文件夹
    • rm -f 要删除的文件:–强制删除不提示 不加-r也只能删文件
  • mv移动文件指令用法

    • mv 旧文件名 新文件名 :–将文件重命名
    • mv 文件名 要移动的目录 :–将文件移动到指定的目录下
  • cat指令用法(以只读的方式打开文件)

    • cat 要查看的文件 : –查看文件
    • cat -n 要查看的文件:–查看文件并显示行号
    • cat -n 要查看的文件 |more :–查看文件并分页 按空格翻页
  • more指令(以全屏幕的方式按页显示文本文件的内容)

    • image-20210314172646169
  • less指令(跟more效果一样,比more功能强大,不是一次加载全部内容,而是根据显示需要加载内容,对于显示大文件具有较高的效率)

    • image-20210314173341001
  • >(输出重定向) 和 >>(追加)指令

    • ls -l > 文件 :–将前面的内容写入到后面的文件中(覆盖写)
    • ls -l >> 文件 :–将前面的内容追加到后面的文件中
    • cat 文件1 > 文件2 :–将文件1的内容覆盖到文件2中
    • echo 内容 >> 文件 将内容追加到文件中
  • echo 输出内容 :输出内容到控制台

  • head指令 head用于显示文件开头部分的内容,默认显示前10行

    • head 文件 :–查看头10行内容
    • head -5 文件 : –查看前五行内容
  • tail指令的用法

    • tail 文件 :–查看文件后10行
    • tail -5 文件 :–查看文件后5行
    • tail -f 文件 :–实时监控文件 有更新就会看到
  • ln指令(相当于Windows的快捷方式)

    • ln -s 原文件或目录 软链接名 : –给原文件创建一个软链接相当于快捷方式
    • rm -rf 软链接名 :–删除软链接
    • 注意 :我们用软链接去到root目录后,用pwd查看,发现还是在软链接所在的目录image-20210314190654181
  • history指令用法 (查看历史执行过的指令)

    • history :–显示所有的历史指令
    • history 10 :–显示最近的10个指令
    • !n :–执行编号为n的指令(注:是直接执行,不是查看)

11.时间日期类的指令

  • date时间指令用法

    • date :–显示当前时间
    • date +%Y :–显示当前年份
    • date +%m :–显示当前月份
    • date +%d :–显示当前是哪一天
    • date “+%Y-%m-%d %H:%M:%S” :–显示年月日时分秒
    • date -s 字符串时间 :–设置系统时间
  • cal日历指令

    • cal :–显示本月日历
    • cal 年份 :–显示指定年份的日历

12.搜索查找类的指令

  • find指令用法

    • find 搜索范围(不加默认在当前文件夹下) -name 文件名 :–查找指定文件名的文件
    • find 搜索范围 -user 用户名 :–查找指定用户名的所有文件
    • find 搜索范围 -size (+/-/等于不写)文件大小(兆:M KB:k):– 查找指定文件大小的文件
  • locate指令用法

    • 介绍:locate数据库实现快速定位给定的文件,查询速度较快
    • 由于locate指令基于数据库进行查询,所有第一次查询前,必须使用updatedb指令创建locate数据库
    • locate 文件名 :–快速查找指定的文件
    • bug记录:当我执行updatedb指令时,弹出下图问题,说未找到命令’updatedb’,但可以与以下命令一起安装:安装第二个个指令就能用了
    • image-20210315102900499
  • grep指令和管道符号|

    • 介绍:grep过滤查找,管道符,”|“:表示将前一个命令的处理结果输出传递给后面的命令处理
    • cat 文件名 | grep -n 查找的内容 :–打开指定文件名的文件由管道符|交给后面的过滤指令过滤出指定内容并显示行号,不加-n不显示,区分大小写
    • cat 文件名 | grep -ni 查找的内容 :–打开指定文件名的文件由管道符|交给后面的过滤指令过滤出指定内容并显示行号,不加-n不显示,不区分大小写
    • image-20210315104956167

12.压缩和解压缩指令

  • gzip/gunzip指令 注:使用gzip压缩文件后,不会保留原来的文件

    • gzip 文件 :–压缩文件
    • gunzip 文件.gz : –解压缩文件
  • zip/unzip指令

    • zip -r(不加只能压缩单个文件) xxx.zip 要压缩的内容 :–压缩文件和目录
    • unzip -d(不加默认解压到当前目录) 解压的目录 xxx.zip :–解压缩文件
    • 出现下图提示就是没安装zip安装一下就好了
    • image-20210315110508195
  • tar打包指令 打包后的文件是.tar.gz的文件

    • tar -zcvf xxx.tar.gz 需要打包的文件 :–打包文件,可以是目录也可以是多个文件
    • tar -zxvf 需要解压的文件:–解压文件到当前目录
    • tar -zxvf 需要解压的文件 -C 解压后的目录 :–解压文件到指定的目录

13.组管理和权限管理(P35)

  • Post title:linux 学习记录
  • Post author:周瑜
  • Create time:2021-03-15 11:36:55
  • Post link:https://xinblog.github.io/2021/03/15/Linux-md/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments