跳转至

Linux基本操作笔记

说明

该部分笔记,学习的是韩顺平 一周学会Linux学习笔记,他使用的是Centos7,我是使用的ubuntu20版,在虚拟机实现

B站学习视频链接

找到一个和UP主讲解内容差不多的笔记,直接看这个了

Linux学习手册大全_史莱姆君的博客-CSDN博客

后面针对部分学习添加了一些自己的笔记记录

基础篇

安装VM

在VM的官网下载进行安装,或者网上找其他人的安装包

激活密钥许可证VMware Workstation Pro 15
UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA
VF750-4MX5Q-488DQ-9WZE9-ZY2D6
UU54R-FVD91-488PP-7NNGC-ZFAX6
YC74H-FGF92-081VZ-R5QNG-P6RY4
YC34H-6WWDK-085MQ-JYPNX-NZRA2

激活密钥许可证VMware Workstation Pro 16
ZF3R0-FHED2-M80TY-8QYGC-NPKYF

安装系统

在镜像网站下载系统

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

虚拟机网络连接的3种方式

桥接(VMnet0):和本机共用一个网段,可能会遇到IP地址不够的情况。 该模式下物理网卡和虚拟网卡的IP地址处于同一个网段,子网掩码、网关、DNS等参数都相同。可能需要手动配置IP地址使得网段和主机网段相同,本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,虚拟机和主机位于VMnet0这个虚拟交换机的两端,这个交换机使得两端处在同一个网段中。可联外网,虚拟机ip与主机同网段,可与主机本局域网中的其他真实或虚拟主机进行通讯。

NAT(VMnet8):虚拟机和外部通信,不会造成IP冲突。虚拟机地址不再是以0开头,而是生成1-255之间的数,如192.168.6.1,然后主机会生成一个对应的虚拟网卡如192.168.6.6,两者能通信。这种模式下虚拟机能访问192.168.0.1,由于网段不同,192.168.0.1不能访问虚拟机。可联外网,通过nat转换实现连接外网,虚拟机ip与主机不在同一网段,不可以与主机本局域网中的其他真实或虚拟主机进行通讯。

仅主机模式(VMnet1):一个独立的IP地址,当作一个新的主机。不可联外网,仅可与主机进行通信。仅主机,虚拟机的与主机通过VMnet1连接,VMnet1不提供提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。

虚拟机常用操作

克隆:最简单的方式就是直接复制,但是虚拟机也自带克隆功能,选择克隆到的位置就可以。

快照(重要):保存当前的状态,和git比较相像,可以保存住一个状态下的虚拟机。

迁移删除:可以在虚拟机中删除后直接删除硬盘中的文件夹,也可以直接删除

vmtools

可以做虚拟机和主机的共享文件夹,但是用的比较少了,一般直接用远程上传。

注意:安装vmtools需有gcc ,可以使用gcc -v查看gcc版本

目录结构

/bin : bin是Binary的缩写,这个目录存放着最经常使用的命令。

/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/root:该目录为系统管理员,也称作超级权限者的用户主目录。

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

/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。

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

/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录

/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

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

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

/tmp:这个目录是用来存放一些临时文件的。

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

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

/user/local:软件安装后的目标目录,一般是编译源码的方式安装的程序

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

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

/sbin : s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

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

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

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

/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

/www:存放服务器网站相关的资源

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

实操篇

远程登陆和远程文件传输

他使用的是Xshell6和Xftp6,我是用的finalShell,还可以使用MobaXterm感觉更好

FinalShell的下载、安装及基本使用 - 轻描丨淡写 - 博客园

如果远程登陆不成功,可能是Linux的SSH服务没有打开

#更新源
sudo apt-get update
#安装openssh-server服务
sudo apt-get install openssh-server
#查看SSH服务是否开启
sudo ps -e |grep ssh
#启动SSH服务
sudo service ssh start

vim常用操作

vi、vim都是编辑命令,vim是vi的增强版,它们有三种模式,一般模式,编辑模式(能输入内容),命令模式。

一般模式:输入的内容看不见 编辑模式:可以自由输入内容,可见 命令模式:在文件末尾位置,可见

:wq:保存退出 :q:不保存退出 :q!:强制退出 设置文件行号:输入:后set nu或者set nonu

拷贝:yy(拷贝当前行) 5yy(拷贝当前行向下的5行) p(粘贴) 删除:dd 5dd

文件查找单词:输入/在输入单词回车,输入n就是下一个 快捷移动到最末和最首行:最末行[G],最首行[gg] 撤销:u 光标移动:20+shift+g

关机重启

#立即关机
shutdown -h now
#1分钟后关机
shutdown -h 1
#现在重启
shutdown -r now
#关机
halt
#现在重启
reboot
#把内存的数据同步到磁盘
sync

重启系统和关机前首先要进行sync命令,把内存中的数据写到磁盘中。

登录注销

#更换用户
su -用户名
#注销用户
logout

用户管理

他使用的是useradd 添加用户

ubuntu使用adduser,该命令可以在新建用户的时候修改组和设置密码

删除账户命令:userdel xiaoming(用户名)不会删除家目录

删除账户命令:userdel -r xiaoming(用户名)会删除家目录

passwd 用户名 # 设置密码

id 用户名查看用户信息

查看当前登录用户:who am i

新增组:groupadd 组名

删除组:groupdel 组名

新增用户直接分组:useradd -g 用户组 用户名

修改用户组:usermod -g 用户组 用户名

/etc/passwd 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登陆Shell

/etc/shadow 每行的含义:登陆名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 每行的含义:组名:口令:组标识号:组内用户列表

运行级别

设置工作等级

使用init实现

0:关机

1:单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未使用保留给用户

5:图形界面

6:系统重启

找回ROOT密码

感觉不常用就没看

026_韩顺平Linux_找回root密码_哔哩哔哩_bilibili

1、启动系统,进入开机页面,按e键进入编辑页面

2、光标向下移动,找到以“Linux16”开头的行数,行末输入init=/bin/sh,接着按ctr+x进入单用户模式。

3、在光标闪烁位置输入:mount -o remount,rw /,完成后回车

4、接着输入passwd,完成后回车,输入密码后回车,再次输入密码。修改成功后会显示passwd……

5、接着在光标位置输入:touch /.autorelabel,完成后回车,等待系统重启,新密码就生效了。

帮助指令

man 命令或者配置文件

文件目录指令

pwd

查看当前工作目录的完整路径

pwd

显示出实际路径,而非使用连接(link)路径

pwd -P

ls

查看所有文件和目录包括隐藏文件

ls -a

以列表形式显示信息

ls -l

cd

回到家目录

cd~ 或者 cd

返回上一级目录

cd ..

mkdir

创建一个目录

mkdir 目录名

创建多个目录

mkdir -p /test/one

touch

创建一个文件

touch *

cp

cp [选项] 源文件 目标文件

-r 递归复制整个文件夹

\cp cp -r src dest 强制覆盖不提示

rm

移除文件或目录:rm 【选项】要删除的文件或目录

递归删除文件夹:-r

强制删除不提示:-f

mv

两个文件同一目录会重命名:

mv 旧文件名 新文件名

两文件不同目录会移动:

mv 要移动的文件 移动到的位置

cat

查看文件内容:cat 【选项】要查看的文件

显示行号:-n

cat -n /etc/profile | more

more

操作 功能
空格 翻页
回车 向下一行
ctr+f 向下滚动一屏
ctr+b 返回上一屏
= 输出当前行号
:f 输出文件名和当前行

less

在显示内容的时候,不是等文件加载之后再显示,而是根据显示需要加载内容

操作 功能
空格、pagedown 向下翻页
回车 向上翻页
/字符串 查找字符串内容,n向下找,N向上找

echo

输出内容到控制台:echo 【选项】 【输出内容】

用于显示文件开头部分内容,默认只显示前10行:head 文件

查看文件头5行:head -n 5[数字] 文件

tail

查看文件中尾部的内容,默认显示文件的尾10行内容:tail 文件

查看文件尾5行:tail -n 5[数字] 文件

实时追踪该文档的所有更新:tail -f 文件

>重定向 >>追加

输出重定向(覆盖)>,追加>>

将列表内容覆盖写入文件:ls -l > 文件

将列表内容追加写入文件:ls -al >> 文件

将文件1内容覆盖到文件2:cat 文件1 > 文件2

将内容追加到文件:echo 内容 >> 文件

ln

给源文件创建一个链接:ln -s [源文件或目录] [链接名] 文件软链接

ln -s 文件名 目标地址 

文件夹软链接

ln -s 源地址 目标地址 

-s 是代号(symbolic)的意思。

例:把Linux文件系统rootfs_dir软链接到/home/chi目录下,

ln -s /opt/linux/rootfs_dir /home/chi/rootfs_dir

删除软链接:

rm -rf 目的地址

查看链接文件

ls -al #或者 ls -li

history

查看所有历史命令:history

查看最近5条命令:history 5

执行历史编号为5的命令:#5

时间日期指令

data

显示当前日期:date

显示今年:date +%Y

显示当前月份:date +%m

显示当前天数:date +%d

指定格式显示年月日时分秒:date "+%Y-%m-%d %H:%M:%S"

设置日期:date -s 字符串日期

cal

查看日历:cal 【选项】,不指定选项, 默认当前月日历

查找指令

find

find指令从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端。

find [搜索范围] [选项]

常用选项

-name<查询方式>

按照指定的文件名查找模式查找文件

-user<用户名>

查找属于指定用户名所有文件

-size <文件大小n>

按照指定的文件大小查找文件,+n大于,-n小于,n等于,+单位k,M,G

locate

快速查找指定文件的路径:locate 文件

由于该指令是基于数据库查询,第一次使用必须用updatedb指令创建数据库,

which

查看指令在哪个目录下:which 指令

grep

过滤查找:grep 【选项】 查找内容 源文件

-n:显示匹配行和行号

-i:忽略字母大小写

压缩和解压

gzip和gunzip

压缩文件:gzip 文件,只能将文件压缩为*.gz格式

解压文件:gunzip 需要解压的文件.gz

zip和unzip

项目打包发布时常用命令

压缩文件:zip 【选项】 XXX.zip

常用选项-r:递归压缩目录

解压文件:unzip 【选项】 XXX.zip

常用选项-d 目录:指定解压后文件存放目录

tar

既可打包又可解压,打包后文件后缀是.tar.gz

打包目录:tar 【选项】 XXX.tar.gz

常用选项 功能
-c 产生.tar打包文件
-z 打包同时压缩
-x 解包.tar文件
-v 显示详细信息
-f 指定压缩后的文件名

压缩多文件:tar -zcvf dc.tar.gz /hmoe/bbb/cat.txt /home/bbb/dog.txt

将bbb文件夹压缩成myb.tar.gz:tar -zcvf myb.tar.gz bbb

将文件解压到当前目录:tar -zxvf myb.tar.gz

将myb.tar.gz解压到tom目录下:tar -zxvf myb.tar.gz -C tom

Linux组的介绍

一个文件有个所有者,所有者又归于一个组。

修改所有者:chown 用户名 文件

修改文件所在组:chgrp 组名 文件名

改变用户所在组(需要root的管理权限)

  1. usermod -g 新组名 用户名
  2. usermod -d 目录名 用户名 (改变该用户登陆的初始目录,注意这里的用户需要有进入新目录的权限)

rwx权限

Is -I中显示的内容如下:
d rwx r-x r-x. 2 root root 53 7月 9 20:08 bbb
0-9位说明
1.第0位确定文件类型(d,-,I,c,b)

d是目录,相当于windows的文件夹

-是普通文件

l是链接,相当于windows的快捷方式

c是字符设备文件,如鼠标,键盘

b是块设备,比如硬盘

2.第1- 3位rwx该文件的所有者拥有该文件的权限。——User
3.第4 - 6位r-x所属组的用户拥有该文件的权限。——Group
4.第7 - 9位r-x其他用户拥有该文件的权限——Other

rwx作用:r表示读,w表示写,x表示可执行(作用到文件是可执行,作用到目录是可进入)

其他说明:

数字2 :文件数和子目录数和

第一个root所有者,第二个root所在组

53:文件大小(字节),如果是文件夹,显示4096字节

7月 9 20:08:文件最后修改日期

修改权限

方式一:+、一、=变更权限

u:所有者,g:所有组,o:其他用户,a:所有人

给文件的所有者读写执行权限,给所在组读执行权限,给其他用户执行权限:chmod u=rwx,g=rx,o=x 文件/目录名

给其他人增加写权限:chmod o+w 文件/目录名/所有者/所有组

该文件不让所有人执行:chmod a-x 文件/目录名/所有者/所有组

方式二:数字变更权限

r=4,w=2,x=1

chmod u=rwx,g=rx,o=x 文件/目录名 相当于 chmod 751 文件/目录名

定时任务调度

任务调度:系统在某个时间执行特定的命令或程序。

cron

定时任务的设置 crontab

-e 编辑定时任务 select-editor修改默认的编辑器

-l 查询当前任务调度

-r 删除当前用户所有的定时任务

service crond restart 重启任务调度

crontab -e 回车然后输入 */1 * * * * ls 分 时 天 月 星期

表示任何时间,比如第一个,表示一小时每分钟执行一次

,表示不连续时间,比如“0 8,10 * * * * 命令”,表示每天8点0分,10点0分执行一次命令

-表示连续的时间范围,比如“0 2 * * 1-6 命令”,表示周一到周六凌晨2点执行命令

/n表示每隔多久执行一次,比如“/10 * * * * 命令”,表示没10分钟执行一次命令

at

at命令是一次性定时计划任务 ,at的守护进程atd会以后台模式运行,检查作业队列来运行。默认情况下, atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间四配,则运行此作业。at命令只执行一次。

检测当前进程有哪些:ps -ef

检测acd进程是否在运行:ps -ef | grep atd

命令格式:at 【选项】【时间】,ctr+d两次结束at命令输入,过程中输错命令使用Ctr+Space删除所写

时间的表现方式:

1、hh:mm(小时:分钟)24小时制指定时间,如果该时间已过,会放到第二天执行。

2、使用midnight (深夜), noon (中午), teatime (饮茶时间,一般是下午4点)等模糊词来指定时间。

3、采用12小时计时制,即在时间后面加上am (上午)或pm (下午)来说明是上午还是下午。

4、指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy (月/日/年)或dd.mm.yy

(日.月.年) ,指定的日期必须跟在指定时间的后面。 例如: 09:00 2021-07-1

5、使用相对计时法。指定格式为: now + count time- units , now就是当前时间, time-units是时间单位,这里能够是minutes、hous、days、weeks。count是时间的数量,几天,几小时。例如 : now + 5 minutes

6、直接使用today (今天)、tomorrow (明天)来指定完成命令的时间。

例1:一天后凌晨12点执行 /bin/ls /home

at 12am + 1 day,然后输入/bin/ls /home,接着ctr+d ctr+d

例2 : atq命令来查看系统中没有执行的工作任务

例3 : 2分钟后,输出时间到指定文件内比如/root/date200.log

例4 :删除已经设置的任务, atrm 编号

atrm 1