前言
本文参考视频【黑马程序员-linux从入门到精通】 https://www.bilibili.com/video/BV1Sp411o7Dx
参考教程java3y的linux
参考菜鸟教程linuxhttps://www.runoob.com/linux/linux-tutorial.html
本文基于ubuntu server 20.
推荐一个好用的linux命令查询的网站https://man.linuxde.net/
一.linux的历史
二.linux系统的特点
单用户:一个用户。在登录计算机(操作系统)时,只能允许同时登录一个用户。 单任务:一个任务。允许用户同时进行的操作任务数量为一。 多用户:多个用户。在登录计算机(操作系统)时,允许同时登录多个用户进行操作。 多任务:多个任务。允许用户同时进行的操作任务为多个。
三.linux常见的分支
实际上Linus Torvalds所创建的是linux内核,而linux内核至今只发行了几个版本,变化并不是很大。但围绕着linux内核,不同的开发商开发出了很多linux系统(在linux内核上加入一些应用软件),这些linux系统就称为linux的分支。
在这里插入图片描述
linux有非常多的分支,常见的分支有CentOs,Ubuntu,RedHat等。
在这里插入图片描述
四.linux系统的安装
目前主要采用虚拟机安装,常见的虚拟机有vmware出品的vmware workstation、oracle 出品的virtual Box.但vmware的性能比virtual Box好一点。
具体的安装方式百度一下教程。
这里注意一下VMware的备份功能,合理使用可以提高效率。VMware的备份方式有两种:克隆和快照。
快照:又称还原点,就是保存在拍快照时候的系统的状态(包含了所有的内容),在后期的时候随时可以恢复。【侧重在于短期备份,需要频繁备份的时候可以使用快照,做快照的时候虚拟的操作系统一般处于开启状态】
克隆:就是复制的意思。【侧重长期备份,做克隆的时候是必须得关闭】
五.linux系统文件与目录
1.linux中一切皆文件
2.linux的 目录结构
#### 第一步
在这里插入图片描述
相对/绝对路径
linux的工作路径分为两种:相对路径和绝对路径。
对文件目录结构的分析
在这里插入图片描述
上面蓝色的表示文件夹,白色的表示文件,绿色表示拥有所有权限,红色表示压缩包 。
bin : 全称binary(二进制),该目录中存储的都是一些二进制文件,文件都是可以被运行的。
boot: 这里存放一些启动linux时使用的核心文件,包括一些连接文件以及镜像文件。
dev :该目录中主要存放的是外接设备,例如盘,其他的光盘等。其中的外接设备不能直接被使用,需要挂载(类似Windows下的分配盘符)
etc : 主要存储系统管理所需的一些配置文件。
home : 表示“家”,存储除了root用户以外其他所有用户,类似于Windows下的user/用户。在linux中,每个用户都有自己的家目录,一般该目录名以用户的账号命名。
在这里插入图片描述
在这里插入图片描述
proc :全称process(进程),该目录存储linux运行时的进程。【这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器: 】
1 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
lib :全称library(库),存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
lost+found : 这个目录一般是空的,当系统非法关机后,会存放一些文件。
media :linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下
mnt : 当外接设备要挂载时,挂载到此目录下。可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了
opt : 全称optional(可选的),在系统中安装额外的软件(例如数据库)所摆放的位置。默认是空的。
root :该目录是root用户的家目录,拥有超级权限。
run :该目录临时存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除
sbin : 全称super binary,存储系统管理员使用的二进制系统管理程序
srv : 存一些服务启动之后需要提取的数据。
sys : 这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
tmp : 全称temporary(临时的),当系统运行时产生的临时文件会在这个目录下。
usr : 全称unix shared resources(共享资源), 存放的是用户的应用程序和文件。类似于Windows下的program files.
在这里插入图片描述
usr/bin : 存放系统使用的文件程序。
usr/sbin :存放超级用户使用的比较高级的管理程序和系统守护程序
usr/src :内核源代码默认放置位置。
var : 存放程序/系统的日志文件
其中重要的目录有如下几个(上面加粗的)
在这里插入图片描述
六.linux的基本指令
linux指令的格式:
1 $ 指令主体(空格)[选项](空格)[操作对象]
其中指令可以包含多个选项和空格
linux基础指令
1. ls指令
ls : 列出当前工作目录下的所有文件和文件夹名称
ls 路径 :列出指定路径下的所有文件和文件夹的名称。在home目录下直接访问dev目录下的所有文件,文件夹
在这里插入图片描述
ls -l 路径 :以详细列表的形式展示对应路径下的文件,文件夹。
ls -la 路径 :显示所有文件,文件夹(包括隐藏文件,文件夹)
在这里插入图片描述
1 5. `ls -lh 路径` : 以可读性较高的形式显示 文件,文件夹
在这里插入图片描述
2. pwd指令
pwd :显示当前工作目录
3. cd指令
cd 路径 : 切换当前工作目录到指定目录。
cd / :切换到根目录
cd ~ :切换到当前用户的家目录
cd .. : 返回上一级目录
cd :切换到当前用户的家目录
在这里插入图片描述
4. mkdir指令
mkdir 文件夹名称 :创建一个文件夹 (可以在前面加上文件夹的绝对路径)mkdir /usr/helloworld :在usr目录里创建一个helloworld文件夹
mkdir 文件夹1 文件夹2 文件夹3 … :一次性创建多个文件夹,中间用空格隔开。
5. touch 指令
touch 文件名 :创建文件
touch 文件名1 文件名2 文件名3 … : 一次性创建多个文件,中间用空格隔开。
6. cp指令
cp 文件路径 要复制到的路径 :复制文件到指定位置。
在这里插入图片描述
在这里插入图片描述
注意这里是相对路径
注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
cp -r 文件夹路径 文件夹要去的路径 :复制文件夹到指定位置。 -r 表示递归复制,否则复制失败
7. mv指令
在这里插入图片描述
8. rm 指令
rm 文件 : 删除文件
rm -f 文件 :强制删除文件,不提示是否删除。-f 表示强制(force)
rm -r 文件夹 :删除文件夹。-r表示递归
rm -rf 文件夹 :删除文件夹,并且不需要进行删除确认询问。
rm -rf 文件1 文件2 文件3 … :删除多个文件或文件夹
9. 输出重定向
执行的指令 > 文件路径 :覆盖输出,会覆盖掉原先的文件内容。
执行的指令 >> 文件路径 :追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
如果在指定的路径中文件不存在,会自动新建一个。
10. cat指令
cat 文件路径 在指定路径打开一个文件。
cat 文件路径1 文件路径2 … > 文件路径x:文件文件路径1 文件路径2 …的内容全部转到文件路径x 【配合输出重定向使用】
11. clear / ctrl + L指令
12 .history 指令
13.有关ctrl的快捷键操作
14. .tra.gz文件的解压缩及相关操作
参考链接:Ubuntu 常用解压与压缩命令:https://blog.csdn.net/songbinxu/article/details/80435665
tar -zxvf FileName.tar.gz # 解压
tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩
tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径
n. shift + PgUp/PgDn
shift + PgUp :向上翻页
shift + PgDn :向下翻页
linux进阶指令
1. df指令
2.free指令
在这里插入图片描述
3.head指令
查看t.txt文件的前四行:
在这里插入图片描述
4.tail指令
5.less指令
6.wc指令
wc 文件路径 :统计文件内容的行数,单词数,字节数。
wc -l 文件路径 :统计文件内容的行数。-h表示lines,行数。
wc -w 文件路径 :统计文件内容的单词数,依据空格来判断单词数量。-w 表示words,单词数。
wc -c 文件路径 :统计文件的字节数。-c表示bytes,字节数。
在这里插入图片描述
7.date指令
在这里插入图片描述
date +%F 或者 date "+%Y-%m-%d"
在这里插入图片描述
date "+%F %T" 或者 date "+%Y-%m-%d %H:%M:%S"
在这里插入图片描述
date -d "-1 day" "+%Y-%m-%d %H:%M:%S" 获取之前或者之后的某个时间,其中的可选值:+,-,day , month , year .
在这里插入图片描述
1 %F:表示完整的年月日2 %T:表示完整的时分秒
%Y:表示四位年份 %m:表示两位月份(带前导0) %d:表示日期(带前导0) %H:表示小时(带前导0) %M:表示分钟(带前导0) %S:表示秒数(带前导0)
8.cal指令
cal : 输出当前月份日历
cal -3 :输出上+本+下三个月
cal -y 年份 :输出某一年的日历。
在这里插入图片描述
在这里插入图片描述
9.管道指令
在这里插入图片描述
linux高级指令
1.hostname指令
2.id指令
3.whoami 指令
4.ps -ef指令
UID: 该进程执行的用户id PID:进程id PPID:该进程的父进程id,如果一个程序的父级进程找不到,该程序的的进程称为僵尸进程。 C:cpu的占用率,其形式是百分数。 TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起; TIME:进程的执行时间 CMD:该进程的名称或者对应的路径;
5.top指令
top :查看服务器的进程占的资源(q指令退出)
对top指令结果的操作: M:将结果按内存从高到低进行降序排列 P:表示将结果按照CPU使用率从高到低进行降序排列; 1:当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息;
在这里插入图片描述
表头含义: PID:进程id; USER:该进程对应的用户; PR:优先级; VIRT:虚拟内存; RES:常驻内存; SHR:共享内存; 计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR) S:表示进程的状态status(sleeping,其中S表示睡眠,R表示运行); %CPU:表示CPU的占用百分比; %MEM:表示内存的占用百分比; TIME+:执行的时间; COMMAND:进程的名称或者路径;
6.du -sh 指令
du -sh 文件路径 :查看文件的真实大小
在这里插入图片描述
7.find 指令
8.service指令
9.kill指令
10.ifconfig
11.reboot指令
12.shutdown 指令
13.uptime 指令
14.uname指令
15.man指令
16. 防火墙指令
Linux原始的防火墙工具iptables比较繁琐,ubuntu默认提供了一个基于iptable之上的防火墙配置工具ufw,使管理iptables更简单。
查看防火墙当前状态:sudo ufw status
开启防火墙:sudo ufw enable
关闭防火墙:sudo ufw disable
查看防火墙版本:sudo ufw version
默认允许外部访问本机:sudo ufw default allow
默认拒绝外部访问本机:sudo ufw default deny
允许外部访问端口33:sudo ufw allow 53
拒绝外部访问端口33:sudo ufw deny 53
允许某个IP地址访问本机所有端口:sudo ufw allow from 192.168.0.1
17.ping命令
ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
七.vim编辑器
1. 简单了解vim
2. vim的三种模式
命令模式:即用vim打开文件后默认的模式,在该模式下是不能对文件直接编辑的,但可以通过快捷键进行一些操作,常见的操作:删除行,复制行,移动光标,粘贴等。
编辑模式:在该模式下可以对文件的内容进行编辑。
末行模式:可以在末行输入命令来对文件进行操作,常见的操作:搜索,替换,保存,退出,撤销,高亮等。
3.命令模式的常用操作
光标移动到行首:^ 光标移动到行尾:$ 光标移动到第一行:gg 光标移动到最后一行:G 向上翻屏:PgUp 向下翻屏:PgDn
复制 :先ctrl +v然后通过↑↓←→选择复制内容,最后用y复制 粘贴:p
剪切/删除光标所在行(删除之后下一行上移):dd ----这里注意dd严格来说是剪切命令,如果剪切后不用p粘贴就是删除。
剪切/删除光标所在行及以下指定的行 :数字n dd
操作4 :撤销,恢复 撤销::u 恢复:ctrl+r
操作5:光标的移动 光标的左右上下移动:↑ ↓ ← → 光标移动到指定n行:nG
4.末行模式的常用操作
5.编辑模式常用操作
在命令模式下,使用命令i或者a进入
退出方式:按下esc
6.三个模式之间的关系图
在这里插入图片描述
关于命令模式向终端的一些退出方式说明:q :未对文件做任何修改退出:q!:强制退出,不保存修改:wq:保存修改并退出:wq! :保存修改并强制退出:x : 在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出;
注意1::x与:wq的区别 如果文件没有被修改,但是使用wq进行退出的话,则文件的修改时间会被更新;但是如果文件没有被修改,使用x进行退出的话,则文件修改时间不会被更新的;主要是会混淆用户对文件的修改时间的认定。 *注意2:X表示对文件加密,x表示文件的退出
7.vim的异常退出
在这里插入图片描述
八. apt软件管理包
快速了解
常用命令
安装软件:sudo apt install
删除软件包:sudo apt remove
清理不再使用的依赖和库文件 :sudo apt autoremove
更新软件包:sudo apt update
移除软件包及配置文件: sudo apt purge
显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
在这里插入图片描述
升级软件包:sudo apt upgrade
在这里插入图片描述