Linux基本操作笔记
说明¶
该部分笔记,学习的是韩顺平 一周学会Linux学习笔记,他使用的是Centos7,我是使用的ubuntu20版,在虚拟机实现
找到一个和UP主讲解内容差不多的笔记,直接看这个了
后面针对部分学习添加了一些自己的笔记记录
基础篇¶
安装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
安装系统¶
在镜像网站下载系统
虚拟机网络连接的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命令,把内存中的数据写到磁盘中。
登录注销¶
用户管理¶
他使用的是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,完成后回车,等待系统重启,新密码就生效了。
帮助指令¶
文件目录指令¶
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 【选项】 【输出内容】
head¶
用于显示文件开头部分内容,默认只显示前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 [源文件或目录] [链接名] 文件软链接
文件夹软链接
-s 是代号(symbolic)的意思。
例:把Linux文件系统rootfs_dir软链接到/home/chi目录下,
删除软链接:
查看链接文件
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的管理权限)
- usermod -g 新组名 用户名
- 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




