1. Linux基础

1.1 Linux目录结构

image.png

具体介绍

image.png
image.png
image.png
image.png
image.png

1.2 远程操作工具

首先,需要Linux系统开启sshd服务
查看本人的Linux系统是否开启该服务

  1. systemctl list-unit-files|grep enable

image.png
image.png
或者

  1. service sshd status

image.png
发现,连接到22号端口

Xshell(远程登录到Linux)

image.png
image.png
image.png

Xftp(远程上传下载文件)

image.png
解决中文乱码问题
image.png

1.3 Vi和Vim编辑器

image.png

三种常用模式

  • 正常模式

image.png

  • 插入模式/编辑模式

image.png

  • 命令行模式

image.png

模式切换

image.png
尝试编辑一个Hello.java源文件

  1. vim Hello.java

image.png

常用快捷键

image.png

1.4 关机、重启和用户登录注销

image.png
image.png

1.5 用户管理

image.png

添加用户

image.png

指定/修改密码

image.png

删除用户

image.png

  1. # 删除用户xiaoming,但是保留家目录
  2. userdel xiaoming
  1. # 删除用户xiaohong及用户主目录
  2. userdel -r xiaohong

查询用户信息

image.png
image.png

切换用户

image.png
image.png

查看当前用户/登录用户

  1. # whoami
  2. # who am i

组的管理

  • 新增组

image.png

  • 删除组

image.png

  • 增加用户时加上组

image.png

  • 修改用户的组

image.png

  • 用户和组的配置文件

image.pngimage.pngimage.png
image.png
/etc/passwd
image.png
/etc/group
image.png

1.6 实用指令

运行级别

image.png
image.png
然而在CentOS 8系统中,/etc/inittab已被弃用
可采用systemctl指令进行操作

  • 查看存在哪些运行级别

    1. ls -ll /usr/lib/systemd/system | grep 'runlevel[0-6].*target$'

    image.png

  • 查看当前用户的默认启动级别

    1. systemctl get-default

    image.png

  • 切换当前用户的默认启动级别

    1. systemctl set-default xxx
    2. # xxx可为 runlevel3.target
    3. # xxx可为 multi-user.target

    找回root密码

    image.png

    帮助指令

    image.png

    文件目录类指令

    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

  • pwd

image.png

  • ls

    1. ls -a

    image.png

    1. ls -l

    image.png

  • cd

image.png

  1. # 回到当前目录的上一级目录
  2. cd ..
  1. # 回到家目录
  2. cd
  3. # 或者
  4. cd ~
  • mkdir

image.png

  1. mkdir -p /home/animal/tiger
  • rmdir

image.png

  • touch ```shell

    创建一个文件

    touch hello.txt

创建多个文件

touch hello2.txt hello3.txt

  1. - cp
  2. ```shell
  3. # 将 /home/aaa.txt文件拷贝到 /home/bbb文件夹下
  4. cp aaa.txt bbb

image.png

  1. # 将 /home/test目录整个拷贝到 /home/zwj目录下
  2. # 如果在/home目录下时
  3. cp -r test zwj
  • rm

    1. # 将/home/aaa.txt文件删除
    2. rm aaa.txt

    image.png

    1. # 递归删除整个文件夹bbb
    2. rm -r bbb

    image.png

  • mv

    1. # 将/home/aaa.txt重命名为pig.txt
    2. mv aaa.txt pig.txt

    image.png

    1. # 将/home/pig.txt移动到/root目录下
    2. mv pig.txt /root

    image.png

  • cat

    1. cat -n /etc/profile | more
  • more

image.png

  • less

image.png

  • 重定向 >

image.png

  1. # 重定向(也就是覆盖整个文件)
  2. ls -ll > a.txt

image.png

  • 追加 >>

image.png

  1. # 追加(也就是 将内容追加到文件末尾)
  2. ls -ll >> a.txt

image.png

  • echo

    1. # 输出环境变量
    2. echo $PATH
    3. # 输出:hello world
    4. echo 'hello world'
  • head

    1. # 查看/etc/profile文件的前5行
    2. head -n 5 /etc/profile

    image.png

  • tail ```shell

    查看/etc/profile文件最后5行

    tail -n 5 /etc/profile

实时监控mydate.txt

tail -f mydate.txt

  1. - ln
  2. ```shell
  3. # 在/home目录下创建一个linkToRoot软链接,链接到/root目录
  4. ln -s /root linkToRoot
  5. # 删除软链接linkToRoot
  6. rm linkToRoot

image.png
image.png

  • history ```shell

    显示所有历史指令

    history

显示最近执行过的10个指令

history | tail -n 10

执行历史编号为5的指令

!5

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1695828/1638345203065-ea01c8ac-3f6e-433d-9f69-236cbfdc0d0a.png#clientId=udc3b8475-c5e4-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=uda7cf30a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=255&originWidth=783&originalType=binary&ratio=1&rotation=0&showTitle=false&size=12754&status=done&style=none&taskId=uf861fc8d-e6c6-408e-8003-6d18d03af74&title=)
  2. <a name="BcZmT"></a>
  3. #### 时间日期类指令
  4. - date
  5. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1695828/1638345261994-437f1287-e9df-43cb-a5a5-7df948aa873e.png#clientId=udc3b8475-c5e4-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=ua4bd6fe3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=425&originWidth=801&originalType=binary&ratio=1&rotation=0&showTitle=false&size=248122&status=done&style=none&taskId=u703d1d9a-254a-4d8d-8349-e13a9434019&title=)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/1695828/1638346474910-30d15c91-de52-4f6f-a9e8-8f713860b110.png#clientId=udc3b8475-c5e4-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u3d3eb19b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=205&originWidth=776&originalType=binary&ratio=1&rotation=0&showTitle=false&size=93365&status=done&style=none&taskId=ua142dc40-56f2-46f7-8583-7ddab7acef9&title=)
  6. ```shell
  7. # 显示当前时间
  8. date
  9. # 显示当前时间:xxx年xxx月xxx日
  10. date '+%y年%m月%d日'
  11. # 显示当前时间:xxx年xxx月xxx日 xxx时xxx分xxx秒
  12. date '+%y年%m月%d日 %H时%M分%S秒'
  • cal

image.png

  1. # 显示当前日历
  2. cal
  3. # 显示2020年日历
  4. cal 2020

搜索查找类指令

  • find

image.png

  1. # 根据名称查找/home目录下的hello.txt文件
  2. find /home -name hello.txt
  3. # 查找/opt目录下,用户名称为nobody的文件
  4. find /opt -user nobody
  5. # 查找整个Linux系统下大于20M的文件
  6. find / -size +20M
  • locate

image.png

  1. # 使用locate指令快速定位hello.txt文件所在的目录
  2. updatedb
  3. locate hello.txt
  • grep指令和管道符号|

image.png

  1. # 在hello.txt文件中,查找"yes"所在行且显示行号
  2. cat helo.txt | grep -n yes

image.png

压缩和解压缩类指令

  • gzip/gunzip

image.png

  1. # gzip压缩,将/home下的hello.txt文件进行压缩
  2. gzip hello.txt
  3. # gunzip压缩,将/home下的hello.tar.gz文件进行解压缩
  4. gunzip hello.txt.gz
  • zip/unzip

image.png

  1. # 将/home下的所有文件进行压缩呈mypackage.zip
  2. zip -r mypackage.zip /home/*
  3. # 将mypackage.zip解压到/opt/tmp目录下
  4. unzip -d /opt/tmp mypackaage.zip
  • tar

image.png

  1. # 压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
  2. tar -zcvf a.tar.gz a1.txt a2.txt
  3. # 将/home的文件夹 压缩成myhome.tar.gz
  4. tar -zcvf myhome.tar.gz /home/*
  5. # 将a.tar.gz解压到当前目录
  6. tar -zxvf a.tar.gz
  7. # 将myhome.tar.gz解压到/opt/tmp2目录下
  8. tar -zxvf myhome.tar.gz -C /opt/tmp2

1.7 组管理和权限管理