欢迎光临散文网 会员登陆 & 注册

【小白入门 通俗易懂】2021韩顺平 一周学会Linux

2023-09-13 08:37 作者:0对抗的打工皇帝  | 我要投稿

Shell:



007_韩顺平Linux_网络连接三种方式 P7 - 00:18


桥接模式:同一个网段下设置IP地址,虚拟系统可以和外部系统通讯。

NAT模式:网络地址转换模式,可以与外部通讯(单向),不造成IP冲突



008_韩顺平Linux_虚拟机克隆 P8 - 00:27


直接复制安装好的虚拟机文件(在VirtualMachine里)

VM内打开.vmx文件


013_韩顺平Linux_目录结构详解 P13 - 15:44


boot 存放启动linux时的核心文件

root 系统管理员的用户主目录

lib 系统开机所需的动态连接共享库

bin 存放经常使用的指令

etc 存放配置文件

usr 存放应用程序和文件

dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储

mnt 临时挂载别的文件系统


016_韩顺平Linux_vi vim快速入门 P16 - 02:21


i 进入编辑模式


017_韩顺平Linux_vi vim快捷键 P17 - 01:41


:q! 强制退出并且不保存


一般模式下(指令不会出现,但可能有提示):

yy 拷贝当前行

5yy 拷贝当前行向下5行

p 粘贴

dd 删除当前行

5dd 删除当前行向下5行

G 定位到文档的最末行

gg 定位到最首行

u 撤销动作

5 shift+g 定位到第5行


命令行下:

/关键字 查找关键字,找到后按n选择找到的内容

:set nu 显示行号

:set nonu 取消显示行号


019_韩顺平Linux_关机重启 P19 - 00:24


shutdown -h now 立即关机 相当于halt

shutdown -h 1 一分钟后关机 -h(halt)

shutdown -r now 重启 相当于reboot

sync 把内存的数据同步到磁盘


020_韩顺平Linux_登录注销 P20 - 00:18


su 登录为root用户


021_韩顺平Linux_用户管理(1) P21 - 01:48


root创建用户,每个用户对应一个目录

useradd jacky 添加用户jacky,该用户的目录在/home/jacky

useradd -d /home/test king 指定目录添加用户

userdel jacky 删除用户jacky

userdel -r jacky 删除用户jacky及其家目录

passwd 用户名 设定密码

pwd 显示当前用户所在目录


022_韩顺平Linux_用户管理(2) P22 - 04:03


who am i 查看当前用户(第一次登录的用户)


023_韩顺平Linux_用户管理(3) P23 - 03:44


groupadd 组名 添加组

groupdel 组名 删除组

useradd -g HGD P 添加用户P,并将其放入HGD组

usermod -g TGD P 将P放入TGD组


023_韩顺平Linux_用户管理(3) P23 - 09:51


/etc/passwd 记录用户信息

/etc/shadow 口令配置文件

/etc/group 组的配置文件



025_韩顺平Linux_运行级别 P25 - 00:19


查看当前默认级别:

systemctl get-default

设定默认级别:

  • 多用户有网络 systemctl set-default multi-user.target
  • 图形界面 systemctl set-default graphical.target



026_韩顺平Linux_找回root密码 P26 - 00:12


  1. 进入开机界面按e进行编辑
  2. 找到linux*16 ...... UTF-8 在后面输入 空格init=/bin/sh,接着输入CTRL+X 进入单用户模式
  3. 在光标闪烁的地方输入: mount -o remount,rw / 回车
  4. 输入passwd回车,然后输入两次新密码(别用小键盘输入),成功的话会显示passwd.........
  5. 输入touch /.autorelabel回车
  6. 输入exec /sbin/init等待



027_韩顺平Linux_帮助指令 P27 - 00:24


man ls 获取关于ls的信息(空格下滑)

ls -a 列出所有文件(包括隐藏)

(linux下隐藏文件以.开头)

ls -l 单列输出(更详细)缩写ll

-a -l 可以组合使用即 -la

ls -la /root 显示root下的内容

help命令(获得shell内置命令的帮助信息)


028_韩顺平Linux_文件目录指令(1) P28 - 00:08


pwd 当前工作目录的绝对路径

绝对路径与相对路径:

cd 回到自己的家目录


029_韩顺平Linux_文件目录指令(2) P29 - 00:11


mkdir -p ~/animal/tiger 创建多级目录

rmdir 删除空目录

rm -rf 强制删除目录 -rf(recursive force递归强制删除不提示)

touch a.txt 创建空文件


030_韩顺平Linux_文件目录指令(3) P30 - 00:12


cp -r source dest 将source下的所有文件拷贝到dest(-r recursive递归复制)

\cp -r source dest 强制覆盖(dest内有source的情况下)


031_韩顺平Linux_文件目录指令(4) P31 - 00:12


mv oldNameFile newNameFile 重命名(同一目录下)

mv 源目录 目标目录 移动整个目录


cat -n 文件名 显示行号查看文件

cat 文件名 | more 显示文件的一部分

more的快捷键



032_韩顺平Linux_文件目录指令(5) P32 - 00:33


less 文件名 分屏查看文件内容


echo $PATH 输出环境变量到控制台


head -5 文件 查看文件前5行(默认10行)

tail -5 文件 显示文件后五行(默认10行)

tail -f 文件 实时监控文件更新


032_韩顺平Linux_文件目录指令(5) P32 - 11:34


echo "hello" > mydata.txt 将显示终端的内容输出到mydata.txt,相当于直接往文件里写入数据(覆盖

echo "hello" >> mydata.txt将显示终端的内容输出到mydata.txt,相当于直接往文件里写入数据(追加


033_韩顺平Linux_文件目录指令(6) P33 - 00:07


ln 软链接即符号链接

ln -s /root /home/myroot 为/root创建软链接myroot(快捷方式)(也可以为文件创建软连接)

rm /home/myroot 删除软链接

history 查看历史命令

history 10 查看最近10条命令

!5 执行历史上的第5条指令


034_韩顺平Linux_时间日期指令 P34 - 00:18


查看日期

设置日期



035_韩顺平Linux_查找指令(1) P35 - 00:07


find 搜索范围 选项

find /home -name hello.txt 在/home下查找按名字查找hello.txt

find / -size +200M 根目录下查找大于200M(M,k,G)的文件(+大于 -小于)


updatedb 更新locate数据库

locate hello.txt 快速定位hello.txt文件


which ls 查看指令ls在哪个目录


036_韩顺平Linux_查找指令(2) P36 - 00:13


cat a.txt | grep -n "hello" 从a.txt中查找hello,grep过滤查找,显示行号

grep -n "hello" /home/hello.txt

上面两条指令相同

选项:



037_韩顺平Linux_压缩和解压(1) P37 - 00:01


gzip 文件 压缩文件(原文件消失)

gunzip 文件.gz 解压文件


zip -r myhome.zip /home/ 压缩目录/home

unzip -d /opt/tmp myhome.zip 将myhome.zip解压到指定目录/opt/tmp


038_韩顺平Linux_压缩和解压(2) P38 - 00:19


tar [选项] XXX.tar.gz 文件 打包文件(原文件仍然存在)

-x, --extract 从存档展开文件

-c, --create 建立新的存档

  • tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt 把pig.txt和cat.txt两个文件压缩为pc.tar.gz
  • tar -zcvf pc.tar.gz /home/ 将/home文件夹压缩成pc.tar.gz
  • tar -zxvf pc.tar.gz 将pc.tar.gz解压到当前目录
  • tar -zxvf /home/myhome.tar.gz -C /opt/tmp2 将myhome.tar.gz解压到目录/opt/tmp2下

想把带.gz的文件解压,就添加选项-z

想把文件压缩为.gz,就添加选项-c

压缩命令总结与对比:



040_韩顺平Linux_linux组的介绍 P40 - 04:15


上图中的①②③对应了下图的权限①②③

分别是

所有者对该文件的权限

所属组对该文件的权限

其他用户对该文件的权限



041_韩顺平Linux_所有者 P41 - 00:29


ls -ahl 查看文件所有者

-a 列出所有文件

-h 以KB MB GB来显示文件大小

-l 显示详细信息

三个选项可以重叠使用


chown tom a.txt 将a.txt的所有者改为tom(tom必须存在)


042_韩顺平Linux_所在组 P42 - 00:15


groupadd monster 创建组monster

useradd -g monster fox 创建用户fox并将其放入组monster

chgrp monster a.txt 将a.txt的组修改为monster


043_韩顺平Linux_修改所在组 P43 - 01:01


usermod -g monster cat 将用户cat修改到组monster

usermod -d /home/fox cat 改变用户cat登录的初始目录为/home/fox (用户需要有进入到新目录的权限)


044_韩顺平Linux_rwx权限 P44 - 00:58


删除一个文件的前提是对该文件所在的目录有写权限w

目录权限:

x 可以对目录中的文件内容进行修改

ll 显示的内容



047_韩顺平Linux_修改所有者和所在组 P47 - 00:21


chown tom /home/abc.txt 将文件所有者修改为tom

chown -R tom /home/kkk 将目录kkk下所有文件的所有者都修改为tom

chgrp john abc.txt 将文件abc的组修改为john


049_韩顺平Linux_权限管理应用实例(2) P49 - 00:08


  1. groupadd sx, groupadd yg
  2. useradd -g sx ts, useradd -g yg wk, useradd -g yg bj, useradd -g sx ss
  3. passwd ts ts

  4. vim monkey.java
  5. chmod 760 monkey.java
  6. vim monkey.java
  7. usermod -g yg ss
  8. vim monkey.java


050_韩顺平Linux_权限管理应用实例(3) P50 - 09:36



3、直接将文件命名为aa,在4中运行./aa会直接执行aa中的文本


定时重复执行命令


052_韩顺平Linux_crond快速入门 P52 - 01:11


定时重复执行程序

crontab -e

在打开的文件中输入:

*/1 * * * * ls -l /etc/ > /tmp/to.txt

每隔1分钟往to.txt文件中写入(覆盖)目录etc的内容

时间规则如下:

每个占位符这样写 */n ,n为数字

特殊符号:


P54

1、*/1 * * * * date >> /tmp/mydate

每隔1分钟,就将当前日期信息追加到/tmp/mydate文件中

2、定时执行脚本:

在脚本文件my.sh中写入(注意执行权限)

date >> /home/mycal

cal >> /home/mycal


crontab -e

*/1 * * * * /home/my.sh

每隔1分钟

3、crontab -e

0 2 * * * mysqldump -u root -proot testdb > /home/db.bak

每天凌晨2点将mysql数据库testdb备份到文件db.bak中

crontab -l 列出任务调度

crontab -r 终止任务调度



055_韩顺平Linux_at任务调度机制 P55 - 00:05


一次性定时计划任务(每60s )

ps -ef 检测当前运行的进程

-e 显示所有进程 -f 全格式显示进程

ps -ef | grep atd 检测atd是否在运行

at命令格式:

at [选项] [时间]

Ctrl + D 结束at命令的输入(按两次)

选项:

多种设定时间的方式:


056_韩顺平Linux_at任务调度实例 P56 - 02:41


at now + 2 minutes (按两次Ctrl+D)

/root/my.sh

2分钟后执行脚本my.sh

案例:



058_韩顺平Linux_磁盘分区机制 P58 - 01:11


lsblk 查看设备挂载情况

一块硬盘的三个分区sda1 sda2 sda3分别挂载到三个挂载点/boot [SWAP] /

lsblk -f 更详细的信息


linux硬盘分类:



059_韩顺平Linux_增加磁盘应用实例 P59 - 02:59


  • 虚拟机添加磁盘
  • 为磁盘分区:

fdisk /dev/sdb

输入:

n以添加新分

p主分区

1 1个分区

回车

回车

w 写入 退出

  • 格式化新分区

mkfs -t ext4 /dev/sdb1

  • 挂载(临时,重启后失效)

mkdir newdisk (自己选择目录)

mount /dev/sdb1 /newdisk


卸载硬盘:

umount /dev/sdb1 或

umount /newdisk


永久挂载:

vim /etc/fstab 进入fstab

yy p 拷贝一份



060_韩顺平Linux_磁盘情况查询 P60 - 00:06


df -h 查看磁盘使用情况

du -h /home 查看/home的磁盘占用情况



061_韩顺平Linux_磁盘实用指令 P61 - 00:15


ls -l /opt | grep "^-" 只显示以-开头,这样就筛选出了目录中的所有文件

ls -l /opt | grep "^-" | wc -l 统计目录中的文件数量


ls -l /opt | grep "^d" | wc -l 统计目录中的目录数量


ls -lR /opt | grep "^-" | wc -l 统计目录中文件的个数,包括子目录的下的文件


ls -lR /opt | grep "^d" | wc -l 统计目录中文件的个数,包括子目录的下的文件


tree /home 以树状显示目录

yum install tree 安装tree指令


第十三章 网络配置



064_韩顺平Linux_网络配置指令 P64 - 00:26


虚拟网络编辑器设定虚拟机IP

同一个网段能ping通,则两台主机能通讯

想从虚拟机ping虚拟网卡,需要关闭防火墙


065_韩顺平Linux_网络配置实例 P65 - 00:08


  • 自动获取IP:

每次自动获取的IP可能不一样

  • 指定IP(将ip改为192.168.200.130):

编辑:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改虚拟网络编辑器


066_韩顺平Linux_主机名和hosts映射 P66 - 00:24


vim /etc/hostname 修改主机名

如何ping主机名

  • Windows

在C:\Windows\System32\drivers\etc\hosts文件中指定

192.168.200.130 CentOS777

  • Linux

在/etc/hosts文件中指定

192.168.200.1 Hasee-laptop

(虚拟网卡的ip)


066_韩顺平Linux_主机名和hosts映射 P66 - 10:40


DNS:Domain Name System 域名和IP的映射

主机名解析按以下顺序进行:

浏览器缓存→DNS缓存→hosts文件→DNS服务器



第十四章 进程管理


068_韩顺平Linux_进程基本介绍 P68 - 02:47


运行起来的程序就是进程

占有屏幕的进程:前台

否则:后台


069_韩顺平Linux_ps指令详解 P69 - 00:51


ps -aux | more 显示详细信息

ps详解



070_韩顺平Linux_父子进程 P70 - 00:11


案例:以全格式显示当前所有的进程,查看进程的父进程

ps -ef 全格式显示当前所有进程

-e 显示所有进程 -f 全格式

ps -ef | grep sshd 查看sshd及其父进程

上图中进程间的关系(父→子):

1→1115→1781

systemd→sshd→root@pts/0(xshell)


071_韩顺平Linux_终止进程 P71 - 00:33


kill [选项] PID

killall 进程名称 (该操作会终止子进程)

选项: -9 强迫进程立即停止

案例

  1. killall gedit 终止文本编辑器
  2. kill 11421 踢掉进程号为11421的远程登录用户
  3. kill sshd 终止sshd服务 /bin/systemctl start sshd.service 重启sshd服务
  4. ps -aux | grep bash 查询bash进程号 kill -9 10487 强制终止终端


072_韩顺平Linux_pstree指令 P72 - 00:44


pstree 以树状的形式显示进程

pstree -p 以树状的形式显示进程(带PID)

patree -u 以树状的形式显示进程(带UID)


073_韩顺平Linux_服务管理(1) P73 - 04:00


服务(service)的本质就是进程,但是是运行在后台的,通常会监听某个端口,等待其他程序的请求,比如mysqld, sshd等,因此又称之为守护进程。

服务即守护进程及其端口号:


service管理指令:

service network stop 关闭网络,端口监听也会关闭(xshell失效)


查看系统自启服务

ll /etc/init.d


074_韩顺平Linux_服务管理(2) P74 - 00:40


Linux开机流程:



075_韩顺平Linux_服务管理(3) P75 - 00:05


chkconfig 设定服务在不同运行级别的自启动



076_韩顺平Linux_服务管理(4) P76 - 04:01


systemctl status firewalld 查看防火墙状态

systemctl start firewalld (临时)启动防火墙自启

systemctl stop firewalld (临时)关闭防火墙自启

systemctl disable firewalld (永久)关闭防火墙自启

以上设定全部立即生效


077_韩顺平Linux_服务管理(5) P77 - 00:21


打开防火墙的指定端口

netstat -anp | more 查看端口信息


078_韩顺平Linux_动态监控系统(1) P78 - 00:31


动态监控进程top

top 默认3s刷新进程


zombie僵死进程:没有释放内存的已结束进程


079_韩顺平Linux_动态监控系统(2) P79 - 00:09


在监控中按键以排序

u 选择特定用户

k 终止指定进程


080_韩顺平Linux_监控网络状态 P80 - 00:50


netstat -an 查看系统网络情况,结果按一定顺序排列输出

选项:-p 显示更多信息,如PID,进程名

netstat -anp | grep sshd 查看进程sshd的信息

Local Address 本地地址

Foreign Address 外部地址




089_韩顺平Linux_安装配置mysql5.7 P89 - 00:08




第17章 Shell编程


091_韩顺平Linux_shell编程快速入门 P91 - 05:17


#!/bin/bash 开头


执行脚本的方法:

  1. 给脚本设定+x权限,然后./hello.sh
  2. sh + 脚本执行


092_韩顺平Linux_shell变量 P92 - 00:08


set 查看系统变量

unset 撤销变量

readonly B=2 设定静态变量,该变量不能被unset


A=$var 在.sh文件中引用系统变量


Shell变量不能用数字开头,等号两侧无空格,变量一般为大写



093_韩顺平Linux_设置环境变量 P93 - 00:16


export TOMCAT_HOME=/opt/tomcat 将shell变量输出为环境变量(全局变量),TOMCAT_HOME代表了路径/opt/tomcat

source 配置文件 让修改后的配置信息生效


TOMCAT_HOME可以在其他.sh文件中使用,输出TOMCAT_HOME:

echo "tomcat_home=$TOMCAT_HOME"


shell脚本的多行注释:

:<<!

ABC

ACB


094_韩顺平Linux_位置参数变量 P94 - 00:54


位置参数变量,获取执行脚本时,输入的参数,例:

./var.sh 100 200

100和200就是执行脚本时输入的参数,如何获得此参数?

在脚本中这样表示:

$1 $2.... $9 第一个参数,第二个参数...第9个参数

$0 代表命令本身

另外:

$* $@都表示所有的参数

$# 表示所有参数的个数

位置参数的例子,在var.sh中输入:

执行var.sh文件:



095_韩顺平Linux_预定义变量 P95 - 00:04


Shell设计者事先定义好的变量

使用案例:



096_韩顺平Linux_运算符 P96 - 00:54


基本语法:

  1. $((运算式))
  2. $[运算式]
  3. expr m + n 运算符前后的空格不能省略A=`expr n + m`,运算符:- \* / %


097_韩顺平Linux_条件判断 P97 - 00:07


基本语法:

[ condition ] 中括号内非空返回true

[ condition ] && echo OK || echo notok condition满足,则执行echo OK || echo notok


第一题:

if [ "ok" = "ok" ]

then

echo "equal"

fi

第二题:

if [ 23 -ge 22 ]

then

echo "大于"

fi

第三题:

if [ -f /root/shcode/aaa.txt ]

then

echo "存在"

fi


098_韩顺平Linux_单分支多分支 P98 - 01:43


if [ 判断式 ]

then

代码

elif [ 判断式 ]

then

代码

fi

编写一段代码:

输入的参数大于等于60,输出及格了,小于60,输出没及格


099_韩顺平Linux_case语句 P99 - 00:10


case语法:

案例:当命令行参数为1时,输出周一,是2,则输出周二,其他情况输出other


100_韩顺平Linux_for循环 P100 - 03:30


  • 语法1
  • 语法2


  • 案例1
  • 案例2




101_韩顺平Linux_while循环 P101 - 02:22


while [ 判断式 ]

do

程序

done

案例:



102_韩顺平Linux_read获取输入 P102 - 01:22


read读取控制台输入:

案例:

read -p " " NUM

read -t 10 -p " " NUM2


103_韩顺平Linux_系统函数 P103 - 00:41


basename 返回完整路径最后/的部分,常用于获取文件名(可以直接写在终端中)

语法:

案例:返回/home/aa/test.txt的test.txt的部分

dirname 返回路径

dirname /home/aaa/test.txt


自定义函数,基本语法:

function无中括号,值无中括号

案例:



105_韩顺平Linux_定时备份数据库(1) P105 - 00:16






106_韩顺平Linux_定时备份数据库(2) P106 - 02:52



Ubuntu


110_韩顺平Linux_ubuntu的root P110 - 01:08


sudo passwd 设定root用户初始密码


112_韩顺平Linux_APT原理机制图 P112 - 09:08




113_韩顺平Linux_APT更新源和实例 P113 - 00:10


sudo apt-get update 更新源

sudo apt-get install package 安装包

sudo apt-get remove package 删除包

sudo apt-get source package 下载该包的源代码

sudo apt-get remove vim 卸载vim

sudo apt-cache show vim 获取vim信息


  • 更新源服务器列表(换源):

echo ' ' > /etc/apt/sources.list 清空(先备份)

复制镜像地址到sources.list


apt是apt-get的改进版,但

sudo apt install vim 和sudo apt-get install vim运行结果没有区别


114_韩顺平Linux_ubuntu远程登录和集群 P114 - 00:52


netstat -anp | more 查看端口情况

SSH:

ubuntu上要手动安装ssh:

sudo apt install openssh-server

启动ssh服务端:

service sshd restart


不同ubuntu相互登录:

ssh john@192.168.157.133

登出:

exit或logout


第二十三章 Linux内核


130_韩顺平Linux_阅读Linux内核源码技巧 P130 - 01:00


操作系统:进程管理、内存管理、文件系统、(驱动程序和网络)

内核源码:

main.c :



































【小白入门 通俗易懂】2021韩顺平 一周学会Linux的评论 (共 条)

分享到微博请遵守国家法律