Linux学习笔记---阿里云

Linux

入门概述

Linux简介

Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学是处于个人爱好而编写的

Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到 业界的认可,目前很多企业级的项目都会部署到Linux/unix系统上。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统

Linux发行版

发行版就是将Linux内核与应用软件做一个打包

Kali linux:安全渗透测试使用

image-20210616171531263

Linux 对比 Windows

微信图片_20210616172421

环境搭建

安装CentOS(本地安装)

  1. 可以通过镜像进行安装

  2. 安装Vmware虚拟机软件;然后打开镜像

    1. VM官网下载:所有下载 (vmware.com)
      1. image-20210616173954495
    2. 安装完成以后界面
      1. image-20210621165223250

在虚拟机上安装CentOS

通过镜像进行安装:mirrors.aliyun.com/cent

Linux磁盘分区的时候注意分区名 ! /boot /home

打开iso镜像的样子:

image-20210621171441039

VMware的使用方式

点击屏幕进入虚拟机、Ctrl + Alt 将聚焦退出虚拟机

开机后的页面:

image-20210625102720501

阿里云服务器

关于阿里云安全组的说明

第一步配置阿里云服务器:

image-20210625141548112

第二步配置安全组:

image-20210625141710287

第三步下载xShell远程连接工具

服务器相关知识

服务器如何购买

学生机

香港服务器可以避免备案,但是尽量不要自己挂vpn

image-20210616133642717

买完服务器之后

  • 在阿里云购买的;需要开通安全组设置;端口映射(端口映射都需要在阿里云的面板)

image-20210616134420186

  • 获取服务器的公网IP地址;修改实例名称和密码;第一次修改需要重启;使用xshell远程连接

两种工具:

第一种Xshell
  • 第一步:下载Xshell:https://www.cr173.com/soft/31864.html?spm=a2c6h.12873639.0.0.72fe5a22ZgN4rI

  • 第二步:打开安装好的Xshell:

    • image-20210616140528401

    • 第三步:

      image-20210616141522741

      image-20210616141303255

    • 第四步:设置密码

      • image-20210616141654555
    • 第五步:连接之后的画面

      • image-20210616141848029
第二种FinalShell:

下载地址:FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本3.9,更新时间2021.5.17 - SSH工具 客户端 (hostbuf.com)

连接方法

安装步骤一路下一步;修改安装位置即可

第一步:启动FinalShell、

image-20210625153954411

第二步:准备连接工作

image-20210625154152300

第三步:输入信息;连接

image-20210625154329178

第四步:连接成功的画面

image-20210625154436536

搭建环境

1、宝塔面板

宝塔面板安装教学:宝塔linux面板,一键安装LAMP/LNMP/SSL/Tomcat (bt.cn)

Centos安装:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

下载完毕以后;就可以得到一个地址:宝塔的管理面板

  • url:

  • username:

  • password:

    • image-20210616143111675
  • 进去面板以后的画面

    • image-20210616151723000

一键部署环境

image-20210616152446352

开启端口

image-20210616152614087

放入网站进行访问

类是tomcat就直接放到webapps目录下

特殊的网站:开源项目,就按照自己操作来

上传文件使用XFTP

注意防火墙问题;网站访问不到;第一Linux服务器防火墙;第二、阿里云安全组面板

war包放到tomcat中运行

jar包直接用java -jar运行

2.命令行安装

两种上传文件方法:
  • 第一种通过工具上传:

  • 第二种直接拖行:

    • image-20210625161315445
  • 第二步:上传好文件之后执行命令进到文件夹下面查看是否已经上传好

    • image-20210625161628044
  • 第四步:执行解压操作

    • image-20210625161751898
  • 第五步:解压好的压缩包;查看目录文件

    • image-20210625161853833

因为tomcat需要Java环境;之后再进行测试

  • 先把刚刚解压好的包删除
    • image-20210625162151210

正式学习Linux

开机

每一台电脑开机都会启动一堆东西;那些东西在windows里面叫做“服务”(service),但是在Linux中叫做“守护进程”(daemon)

用户登录有三种方式:

  • 命令行登录
  • ssh登录
  • 图形界面登录

root用户为最高权限的;相当于windows中的管理员用户(还要再高一点)

关机

命令行关机指令:shutdown;

sync # 将数据由内存同步到硬盘中

shutdown # 关机指,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机

shutdown -h 10 # 这个命令;计算机将在10分钟后关机

shutdown -h now # 立马关机

shutdown -h 20:25 # 系统会在今天20:25分钟关机

shutdown -h +10 # 十分钟后关机

shutdown -r now # 系统立马重启

shurdown -r +10 # 系统十分钟后重启

reboot # 也是重启命令 功能和 shutdown -r now 一样

halt # 关闭系统,等同于shutdown -h now 和 poweroff

无论是重启系统还是关闭系统;首先要运行sync命令,把内存中的数据写到磁盘中

image-20210628113717196

目录结构

  1. 在Linux中一切都是文件
  2. 根目录/,所有文件都挂载在这个节点下

登录系统以后,在当前命令行输入

ls /

image-20210628134210730

以下是对这些目录的解释:

  • /bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • **/boot:**这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • **/dev :**dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • **/etc:**etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

  • /lib:lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库(基本依赖;不需要动)。

  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(存放一些突然关机的文件)

  • /media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。(不用管)
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv:该目录存放一些服务启动之后需要提取的数据。

  • /sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建

  • /tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。(用完即丢的文件,可以放在这个目录下,安装包!)

  • /usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • **/usr/bin:**系统用户使用的应用程序。

  • **/usr/sbin:**超级用户使用的比较高级的管理程序和系统守护程序 Super超级。

  • **/usr/src:**内核源代码默认的放置目录。

  • /var:var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run==。==

  • /www:存放服务器网站相关的资源,环境,网站的项目

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

image-20210628141022041

常用的基本命令

目录管理

ls(列出目录)

在Linux中ls命令是被使用的最多的

-a参数:all,查看全部的文件,包括隐藏文件

-l参数:列出所有的文件,包含文件的属性和权限;但是不包括隐藏文件

命令可以结合使用;例如想查看全部文件以及权限就可以 ls -al

cd 命令 切换命令

cd 目录名(绝对路径,相对路径)

image-20210628152336538

pwd显示当前用户所在的目录

[root@iZbp1cmrl8z3xkhsf5wstoZ ~]# pwd
/root
[root@iZbp1cmrl8z3xkhsf5wstoZ ~]# cd /bin
[root@iZbp1cmrl8z3xkhsf5wstoZ bin]# pwd
/bin
[root@iZbp1cmrl8z3xkhsf5wstoZ bin]# cd /usr/local
[root@iZbp1cmrl8z3xkhsf5wstoZ local]# pwd
/usr/local
[root@iZbp1cmrl8z3xkhsf5wstoZ local]# 

mkdir 创建一个目录

[root@iZbp1cmrl8z3xkhsf5wstoZ /]# cd home    # 进入目录
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# mkdir test1     # 创建目录
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ls
luo  luoyun  test1  www
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cd test1  
[root@iZbp1cmrl8z3xkhsf5wstoZ test1]# cd ..     # 返回上级
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# mkdir -p test2/test3/test4    # 创建多级目录
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ls
luo  luoyun  test1  test2  www
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cd test2   
[root@iZbp1cmrl8z3xkhsf5wstoZ test2]# ls
test3
[root@iZbp1cmrl8z3xkhsf5wstoZ test2]# cd test3
[root@iZbp1cmrl8z3xkhsf5wstoZ test3]# ls
test4
[root@iZbp1cmrl8z3xkhsf5wstoZ test3]# cd test4

删除目录

rmdir仅能删除空的目录,如果下面存在文件,需要先删除文件。递归删除多个目录 -p 参数即可

[root@iZbp1cmrl8z3xkhsf5wstoZ /]# cd home
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# rmdir test1
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ls
luo  luoyun  test2  www
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# rmdir test2
rmdir: 删除 "test2" 失败: 目录非空
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# rmdir -p test2/test3/test4
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ls
luo  luoyun  www
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# 

cp(复制文件或者目录)

cp 原来的地方 新的地方

[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ls
install.sh  luo  luoyun  www
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cp install.sh  luo    #拷贝文件至目录
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cd luo
[root@iZbp1cmrl8z3xkhsf5wstoZ luo]# ls
install.sh
[root@iZbp1cmrl8z3xkhsf5wstoZ luo]# cd ..
[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cp install.sh  luo     #如果文件重复会提示是否覆盖 同意就是(y) 放弃就是(n)
cp:是否覆盖"luo/install.sh"? y

rm(移除文件或者目录)

-f 忽略不存在的文件,不会出现警告,强制删除

-r 递归删除目录

-i 互动,删除询问是否删除

rm -rf /*     # 切记不能使用 系统中的文件就被删除了,删酷跑路就是这么操作的
[root@iZbp1cmrl8z3xkhsf5wstoZ luo]# lsinstall.sh[root@iZbp1cmrl8z3xkhsf5wstoZ luo]# rm -rf install.sh [root@iZbp1cmrl8z3xkhsf5wstoZ luo]# ls

mv 移动文件或者目录 重命名文件

-f 强制

-u 只替换已经更新过得文件

[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsinstall.sh  luo  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# mv install.sh  luo    #移动文件[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsluo  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cd luo[root@iZbp1cmrl8z3xkhsf5wstoZ luo]# lsinstall.sh[root@iZbp1cmrl8z3xkhsf5wstoZ luo]# cd ..[root@iZbp1cmrl8z3xkhsf5wstoZ home]# mv luo luo1     # 重命名文件夹[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsluo1  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ^C
基本属性

文件属性

Linux是一种典型的多用户系统,不同的用户处于不同得地位,拥有不同的权限,为了保护系统的安全性,Linux对于不同的用户的权限做了不同的规定

可以使用 ll 或者 ls -l 命令来显示一个文件的属性和文件所属的用户和组

image-20210630141729438

在Linux中第一个字符代表这个文件是目录,文件或链接文件等等:

  • 当为[d]则是目录
  • 当为[-] 则是文件
  • 当为 [ l ] 则表示为链接文档
  • 当为 [ b ] 则表示为装置文件里面的可供存储的接口设备(可随机存储装置)
  • 当为 [ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

接下来的字符中;以三个为一组,且均为 【 rwx 】的三个参数的组合

其中,【 r 】代表可读(read)、【 w 】代表可写(write)、【 x 】代表可执行(execute)

这三个权限的位置不会改变,如果没有权限;就会出现减号 【 - 】

image-20210630142222480

第0位确认文件类型,第1-3位确认属主(该文件的所有者)拥有该文件的权限。第4-6位去人属组(所有者的同组用户)拥有该文件的权限,第7-9位确认其他

用户拥有该文件的权限

其中:

第1、4、7位表示读权限,如果用“r”字符表示,则有读权限,如果用“-”字符表示,则没有读权限

第2、5、8位表示写权限,如果用“w”字符表示,则有写权限,如果用“-”字符表示,则没有写权限

第3、6、9位表示可执行权限,如果用“x”字符表示,则有执行权限,如果用“-”字符表示;则没有执行权限

对于文件来说;他都有一个特定的所有者,也就是对该文件具有所有权的用户

同时,在linux中,用户是按组分类的,一个用户属于一个或多个组

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户

因此在Linux系统中文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限

image-20210630143854978

修改文件属性

1、chgrp:更改文件属组

chgrp [-R] 属组名  文件名

-R:递归更改文件属主,也可以同时更改文件属组

2、chown:更改文件属主;也可以同时更改文件属组

chown [-R] 属主名  文件名chown [-R] 属主名:属组名   文件名

3、chmod:更改文件9个属性(必须要掌握)

chmod [-R] xyz  文件或者目录

Linux文件属性有两种设置方法,一种是数字,一种是符号

Linux文件的基本权限就有九个,分别是owner/group/oters 三种身份各有自己的read/write/execute权限

文件权限的字符为:【 -rwxrwxrwx 】,这九个权限是三个三个一组;可以使用数字来代表各个权限;分别是:

r:4   w: 2   x:1可读可写不可执行   rw-   6可读可写可执行     rwx   7chmod 777    文件赋予所有用户可读可执行可写

每种身份(owner/group/oters)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx—]分数则是:

  • owner = rwx = 4 + 2 + 1 = 7
  • group = rwx = 4 + 2 + 1 = 7
  • others = — = 0 + 0 + 0 = 0
chmod  770 filename

image-20210630151814346

文件内容 查看

Linux系统中使用以下命令来查看文件的内容

  • cat由第一行开始显示文件内容,用来读文章,或者读取配置文件,都使用cat
  • tac从最后一行开始显示,可以看出tac 是cat 的倒着写
    • image-20210630160356010
  • nl 显示的时候,顺道输出行号
    • image-20210630160512185
  • more 一页一页的显示文件内容(空格翻页查看、回车enter 一行行查看、:f 显示当前所在行)
    • image-20210630161204567
  • less 与more 类似,但比more更好的是,它可以往前翻页(也是空格下翻页;上下键代表翻动页面;退出是q命令;pageDown,pageUp键代表翻动页面;查找字符串/要查询的字符向下查询向上查询 ? 要查询的字符串 ,n 继续搜寻下一个,N 上寻找)
    • image-20210630161725427
    • 查找字符串/要查询的字符向下查询
    • image-20210630162319792
    • 向上查询 ? 要查询的字符串
    • image-20210630162553658
  • head 只看头几行(通过 -n 参数指定查看几行)
    • image-20210630161801838
  • tail只看尾巴几行(-n 参数 要查看几行)
    • image-20210630161910382

man 命令查看各个命令的使用文档,如 : man cp

网络配置目录:cd etc/sysconfig/network-scripts/

image-20210630155903921

ifconfig 查看网络信息

Linux链接的概念

Linux的链接分为两种:硬链接、软链接

**硬链接:**A–B,假设B是A的硬链接,那么他们两个指向了同一个文件!允许一个文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删

**软链接:**类似Windows下的快捷方式,删除的源文件,快捷方式也访问不了

创建连接 ln 命令

touch 命令创建文件

echo 输入字符串,也可以输入到文件中

[root@iZbp1cmrl8z3xkhsf5wstoZ /]# cd home[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsluo1  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# touch f1    # 创建文件[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsf1  luo1  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ln f1 f2    #创建硬链接[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsf1  f2  luo1  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ln -s f1 f3   # 创建软链接(符号链接)[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsf1  f2  f3  luo1  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# ll总用量 12-rw-r--r-- 2 root root    0 6月  30 16:38 f1-rw-r--r-- 2 root root    0 6月  30 16:38 f2lrwxrwxrwx 1 root root    2 6月  30 16:38 f3 -> f1drwxr-xr-x 2 root root 4096 6月  28 17:08 luo1drwxr-xr-x 2 root root 4096 6月  28 14:09 luoyundrwx------ 3 www  www  4096 6月  16 15:41 www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# echo "xiaohonghong" >> f1     往文件里面加入字符串[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsf1  f2  f3  luo1  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cat f1    查看 f1xiaohonghong[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cat f2   		查看 f2xiaohonghong[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cat f3			查看 f3xiaohonghong

删除f1之后,查看f2和f3的区别

[root@iZbp1cmrl8z3xkhsf5wstoZ home]# rm -rf f1[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsf2  f3  luo1  luoyun  www[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cat f2     f2 硬链接还在xiaohonghong[root@iZbp1cmrl8z3xkhsf5wstoZ home]# cat f3     f3 (软链接、符号链接)快捷方式失效cat: f3: 没有那个文件或目录
Vim编辑器

Vim编辑器

Vim是从Vi发展出来的一个文本编辑器;

简单来说;Vi是老式的文字处理器,不过功能已经很齐全,但是还是有可以进步的地方

vim则可以说是程序开发者的一项很好用的工具。

所有的Unix Like系统都会内建Vi文书编辑器,其他的文书编辑器则不一定会存在

Vim官方网站welcome home : vim online

Vim键盘图

01095639_LM7N

三种使用模式

基本上Vi/Vim共分为三种模式;分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。这三种模式的作用

命令模式

用户刚刚启动Vi/Vim,便会进入了命令模式

image-20210701105124737

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如按下i ,并不会输入一个字符,i 被当做了一个命令

以下是常用的几个命令:

  • i切换输入模式,以输入字符
  • x删除当前光标所在处的字符
  • **:**切换到底线命令模式,以在最底一行输入命令

若想要编辑文本:启动Vim,进入命令模式,按下 i 切换输入模式

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令

输入模式

在命令模式下按 i 就进入了输入模式

image-20210701101405761

在输入模式中,可以使用以下按键

  • 字符按键以及Shift组合输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。光标自动定位到最后一行

image-20210701103559472

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多

在底线命令模式中,基本的命令有(省略冒号): 保存并退出 wq

  • q 退出程序
  • w 保存文件

按ESC 键可随时退出底线命令模式。

再次进入文件;不存在则会新建文件;如果存在则会修改这个文件

image-20210701104902847

Vi工作模式

image-20210701105247680

Vim工作模式

image-20210701105316417

演示说明

新建或者编辑文件,按 i 进入编辑模式,编写内容,编写完成后退出编辑模式,esc ,退出之后进入底线命令模式 : wq 保存退出

此处引用狂神大大的文档内容

Vim 按键说明

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

移动光标的方法
h 或 向左箭头键(←)光标向左移动一个字符
j 或 向下箭头键(↓)光标向下移动一个字符
k 或 向上箭头键(↑)光标向上移动一个字符
l 或 向右箭头键(→)光标向右移动一个字符
[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]屏幕『向下』移动半页
[Ctrl] + [u]屏幕『向上』移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
数字< space>那个 n 表示『数字』,例如 20 。快捷切换光标 数字 + 空格
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
H光标移动到这个屏幕的最上方那一行的第一个字符
M光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
G移动到这个档案的最后一行(常用)
nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg移动到这个档案的第一行,相当于 1G 啊!(常用)
数字< Enter>n 为数字。光标向下移动 n 行(常用)
搜索替换
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
?word向光标之上寻找一个字符串名称为 word 的字符串。
n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
删除、复制与粘贴
x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd删除游标所在的那一整行(常用)
nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$删除游标所在处,到该行的最后一个字符
d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G复制游标所在行到第一行的所有数据
yG复制游标所在行到最后一行的所有数据
y0复制光标所在的那个字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据
p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)
J将光标所在行与下一行的数据结合成同一行
c重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)

第二部分:一般模式切换到编辑模式的可用的按钮说明

进入输入或取代的编辑模式
i, I进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用)
a, A进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
o, O进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用)
r, R进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
[Esc]退出编辑模式,回到一般模式中(常用)

第三部分:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
:! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中看 /home 底下以 ls 输出的档案信息!
:set nu设置行号,代码中经常使用显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu与 set nu 相反,为取消行号!
账号管理

用户账号简介

每个用户都拥有一个唯一的用户名和各自的口令。root账户是最高权限账户;一般需要向系统管理员申请一个账号

用户在登录时输入正确的用户名和口令后,就能进入系统和自己的主目录

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改
  • 用户口令的管理
  • 用户组的管理

用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除

添加用户账号就是在系统中创建一个新的账号,然后为新账号分配用户号、用户组,主目录和登录Shell等资源

useradd 添加账户

useradd  -选项 用户名

-m 自动创建这个用户的主目录

[root@iZbp1cmrl8z3xkhsf5wstoZ home]# useradd -m xy      创建用户[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsluo1  luoyun  www  xy

添加用户就是往某一个文件中写入了用户信息了 /etc/passwd

参数说明:

  • 选项:
    • -c comment 指定一段注释性描述
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用 -m 选项,可以创建主目录
    • -g 用户组 指定用户所属的用户组
    • -G 用户组 , 用户组 指定用户所属的附加组
    • -m 使用者目录如不存在则自动创建
    • -s Shell文件 指定用户的登录Shell
    • -u 用户号 指定用户的用户号,如果同时有-o 选项,则可以重复使用其他用户的标识号
  • 用户名:
    • 指定新账号的登录名

删除用户

userdel -r 用户名 删除用户的时候将他的目录页一并删掉

[root@iZbp1cmrl8z3xkhsf5wstoZ home]# userdel -r xy[root@iZbp1cmrl8z3xkhsf5wstoZ home]# lsluo1  luoyun  www

修改用户

修改用户 usermod 对应修改的内容 修改那个用户

[root@iZbp1cmrl8z3xkhsf5wstoZ home]# usermod -d /home/xiao  xy

修改完毕后记得查看配置文件

切换用户

1.切换用户的命令为:su username 【username是你的用户名哦】

2.从普通用户切换到root用户,还可以使用命令:sudo su

3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

$表示普通用户

#表示超级用户,也就是root用户

image-20210701135139330

image-20210701140053297

hostname 修改的主机名

修改完之后要重新连接服务器

用户的密码设置问题

root创建用户,需要配置密码

Linux输入密码是不会显示的

超级用户修改密码:

[root@xiaohuihui ~]# passwd xy更改用户 xy 的密码 。新的 密码:无效的密码: 密码未通过字典检查 - 过于简单化/系统化重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。

普通用户修改密码:

[xy@xiaohuihui ~]$ passwd更改用户 xy 的密码 。为 xy 更改 STRESS 密码。(当前)UNIX 密码:新的 密码:重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。

锁定账户

passwd -l 用户名    # 锁定之后这个用户就不能登录了passwd -l 用户名    # 没有密码也不能登录

锁定之后

image-20210701141852534

磁盘管理

df (列出文件系统整体的磁盘使用量) du (检查磁盘空间使用量)

df:

image-20210701142544936

du:

image-20210701142947831

检查每个文件所占用的容量

image-20210701143137823

image-20210701143340044

进程管理

Linux中一切皆文件

(文件:读写执行(查看,创建,删除,移动,复制,编辑),权限(用户、用户组)。系统:(磁盘,进程)

基本概念

  1. 在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号
  2. 每一个进程呢,都会有一个父进程
  3. 进程可以两种存在方式:前台!后台运行
  4. 服务是后台运行,基本的程序都是前台运行

命令

ps查看当前系统中正在执行的各种进程信息

ps-xx:

  • -a 显示当前终端运行的所有进程信息
  • -u 以用户的信息显示进程
  • -x 显示后台运行进程的参数
# ps -aux  查看所有的进程ps -aux|grep mysql# | 在Linux中这个叫管道符   A | B#  grep  查找文件中符合条件的字符串 过滤

记住一个命令即可 ps -xx|grep 进程名字 过滤进程信息

ps-ef查看父进程信息

ps -ef|grep mysql     # 看父进程我们一般可以通过目录树结构来查看# 进程树pstree -pu	-p 显示父id	-u 显示用户组

image-20210701150115841

结束进程:杀掉进程

kill -9 进程的id

kill -9 #进程的id
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值