Linux学习(重在实操,要把常用指令玩溜)

记:

linux 在服务器领域是最强的;因为他免费、高效、稳定。

作者:是git的开发者。

      linux最开始0.01版本不到一万行

目前主要三种发行版:CentOS,Ubuntu,Redhat

GUN计划!相当于IT界的活雷锋

安装和配置看韩顺平的:细节拉满,这里就不做笔记了

虚拟机root用户密码:123456

liu用户密码:123456

网络连接的三种方式:

给虚拟系统连接网络。
张三,李四,王五在同一网段内,假设ip地址都是192.168.0.x

1、bridged(桥接模式):

	虚拟系统直接与外部系统通信,虚拟系统也是192.168.0.x的ip地址
	这样就占用了该网段的主机号,类似于同一局域网内有多了一台主机
	但是x最多有255种,超过了数量就会造成ip冲突

2、NAT(网络地址转换模式):

nat地址转换
虚拟系统通过本主机与外部系统通信,不造成ip冲突

3、host-only(仅主机模式):

独立的系统,不和外部发生联系

虚拟机克隆

方式一:直接复制拷贝文件

方式二:使用VMware的克隆操作:目的快速构建一个机群

注意:克隆时,需要先关闭linux系统

虚拟机快照(可以用来做实验,缺点是浪费空间)

就是保存当前状态,之后你要是误操作想反悔,回到保存的这个状态就点击快照管理。

当然也可以回到前面状态然后继续创建文件,构成分支。

vmtools工具(用于win和linux共享文件)

安装按钮一键安装:

查看自己是否有gcc,可输入命令  gcc-v

可以通过下面几个步骤访问到windows里面的文件夹!

那如何找到该文件夹呢!

点击:主文件夹->计算机->mnf->hgfs

linux文件目录结构(目的:要背)

linux世界里,一切皆文件。

下面图片文件都要了解是干嘛的。

  1. /
      根目录,位于Linux系统目录结构的顶层,一般根目录下只存放目录,不要存放文件。FHS认为,Linux系统的根目录最为重要,没有之一,原因有2点:

所有目录都是由根目录衍生出来的
根目录与系统的开机、修复、还原密切相关

  1. /home - 普通用户的家目录
      用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的alice、bob何eve。
  1. /root - 超级用户root家目录
      该目录为系统管理员,也称作超级权限者的用户主目录 。普通用户主目录在/home下,root主目录直接在/下。
  1. /etc - 系统配置文件的路径
      etc是Etcetera(等等)的缩写,配置文件保存目录。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等。

注意: 如果更改了该目录下的某个文件可能会导致系统不能启动 。

  1. /usr - 存储系统软件资源
      usr 是 unix shared resources(共享资源) 的缩写,此目录用于存储系统软件资源。FHS建议所有的开发者,应把软件产品的数据合理的放置在/usr目录下的各子目录中,而不是为他们创建单独的目录。
      Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下。

/usr/bin 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin 存放根文件系统不必要的系统管理命令,如多数服务程序,只有root可以使用
/usr/lib 应用程序调用的函数库保存位置
/usr/XIIP6 图形界面系统保存位置
/usr/local 手工安装的软件保存位置。一般建议源码包软件安装在这个位置
/usr/src 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
/usr/share 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/include C/C++ 等编程语言头文件的放置目录
6. /var - 存储动态数据
  var 是 variable(变量) 的缩写,/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。
  系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里 。

/var/lib 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等
/var/run 一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/spool 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
/var/www RPM 包安装的 Apache 的网页主目录
/var/nis和/var/yp NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
/var/tmp 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
7. /opt - 第三方安装的软件保存位置
  opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。第三方安装的软件,手工安装的源码包软件都可以安装到这个目录中。默认是空的 。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件。

  1. /bin - 二进制文件 普通命令
      bin是Binaries(二进制文件)的缩写,存放系统命令,普通用户和root都可以执行。放在/bin下的命令在单用户模式下也可以执行。
  1. sbin - super bin只有root用户才可以使用的命令库
      s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序 。保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
  1. /tmp - 相当于Windows下的回收站
      tmp 是 temporary(临时) 的缩写, 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空。

/tmp: 10天未用的文件,系统重启会清空目录
/var/tmp:30天未用的文件,系统重启会清空目录
/usr/tmp: 已经被众多发行版抛弃的临时文件夹

  1. /dev - Linux device设备(磁盘 光驱)
      dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,设备文件保存位置。在 Linux 中访问设备的方式和访问文件的方式是相同的。
  1. /media - 挂载目录
      挂载目录。系统建议用来挂载媒体设备,如软盘和光盘。linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
  1. /mnt - 临时挂载点
      早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区。
      系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
  1. /lib - 系统调用的函数库
      lib 是 Library(库) 的缩写,系统调用的函数库保存位置。这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  1. /boot - 系统引导程序存放的目录
      系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等,不要轻易对该目录进行操作。
  1. /selinux - Windows下的防火墙
      这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
  1. /srv - 服务数据目录
      服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据。
  1. /sys - 虚拟目录
      虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息。这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
19. /proc - 虚拟目录
  proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的…

  1. /run - 虚拟目录
      是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
  1. /lost+found - 系统异常关闭产生文件
      当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录…

远程登录(目的:公司应用场景)

目的:方便公司各人员对linux系统部署到公网的项目进行管理

工具:Xshell

连之前可以先将俩台电脑ping一下,确认俩台电脑IP是否畅通

Vi和Vim文本编辑器(linux内置vim)

vim就是vi的增强版

常用三种模式:

一般模式:比如你输入vim hello.java 就是说用vim文本模式打开hello.java文件。这个模式你不能编辑

插入模式:按i下面会显示插入模式,这时候你就可以输入内容了

命令行模式:输入esc再输入:,这时候你就可以读取,存盘,离开vim;,

w表示write写入,q表示quit退出

开关机指令

shutdown -h now   立刻关机

shutdown -h 1     “hello,1分钟后关机”

shutdown -r  now  现在重新启动计算机

halt                  关机,作用和上面一样

reboot               现在重启

sync                 把内存数据同步到硬盘

用户管理:

useradd 用户名   //创建用户
passwd  用户名   //给指定用户添加密码
userdel 用户名   //删除用户  但是该指令无法删除家目录
userdel -r 用户名 //删除该用户并删除该用户的家目录

以下为演示代码:

用户之间的关系:

切换用户

su- 用户名  切换到高权限用户
exit 或者 logout 回到上一次用户
who am i 查看首次登录的用户
whoami 查看当前登录用户

指定运行级别

![image-20240227151820536](C:\Users\liuqiang\AppData\Roaming\Typora\typora-user-images\image-20240227151820536.png

Linux系统运行级别:
0:关机
1:单用户【可以找回丢失密码】
2:多用户状态没有网络服务(一般不用,没网络)
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5
切换运行级别命令:init选0-6

找回root密码

帮助指令

-help 查看

文件目录类

pwd 指令 输出绝对路径。

ls 指令

语法:ls 【选项】【目录和文件】

-a 显示当前目录的所有文件和目录,包括隐藏的

-l:以列表方式显示信息

cd  指令  可以切换目录

cd.. 回到当前目录的上一级目录

cd ~回到自己的家目录

cd ~ 或者 cd --->回到当前用户的家目录 
cd ..   --->回到当前目录的上一级目录

案例 1:使用绝对路径切换到 root 目录
	cd /root
	
案例 2:使用相对路径到 root 目录
	比如当前在 /home/tom 
		cd ../../root    ../..回到了根目录,再/root

mkdir 指令

mkdir 指令用于创建目录

基本语法:mkdir [选项] 要创建的目录路径 功能:创建目录 常用选项: -p:创建多级目录

基本语法:rmdir [选项] 要删除的空目录路径
功能:删除一个空目录

rmdir

案例:删除一个目录 /home/dog
rmdir /home/dog

注意:
rmdir 删除的是空目录,如果目录下有内容是无法删除的。
如果需要删除非空目录,需要使用命令:rm -rf 要删除的目录
比如: 删除animal目录
rm -rf /home/animal

touch

基本语法:touch 文件名称 功能:创建空文件 案例::在/home 目录下,创建一个空文件 hello.txt touch /home/hello.txt 或者当前目录是home:touch hello.text

cp

基本语法:cp [选项] 被拷贝的文件 拷贝到哪个地方
功能:拷贝文件到指定目录
常用选项:
-r:递归复制整个文件夹

案例1:将 /home/hello.txt  拷贝到 /home/bbb  目录下
若在根目录下操作:
先创建 bbb目录
mkdir /home/bbb
然后复制
cp /home/hello.txt /home/bbb

案例2:递归复制整个文件夹,比如将 /home/bbb 整个目录,拷贝到 /opt
cp -r /home/bbb /opt

注意:强制覆盖不提示的方法:\cp
\cp -r /home/bbb /opt

rm

基本语法:rm [选项] 要删除的文件或目录
功能:移除文件或目录
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示

案例1:将 /home/hello.txt 删除
rm /home/hello.txt

案例2:递归删除整个文件夹 /home/bbb ,并不提示
rm -rf /home/bbb

注意:强制删除不提示的方法:带上 -f 参数即可

mv

功能:移动文件与目录或重命名 基本语法: mv 原文件名 新文件名     (功能描述:重命名) mv  被移动的文件 移动到哪   (功能描述:移动文件)

less和more=可以分屏查看文件==

压缩和解压

gzip/gunzip 指令
gzip    用于压缩文件
gunzip  用于解压的

基本语法:
gzip 文件	  (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)


案例 1: gzip 压缩,将 /home 下的 hello.txt 文件进行压缩
gzip /home/hello.txt

案例 2: gunzip 解缩,将 /home 下的 hello.txt.gz 文件进行解压
gunzip /home/hello.txt.gz

zip/unzip 指令
zip 用于压缩文件
unzip 用于解压的
(这个在项目打包发布中很有用的)

基本语法:
zip	[选项] XXX.zip 将要压缩的内容    (功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip	              (功能描述:解压文件)

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

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


案例 1:将 /home 下的所有文件/文件夹压缩成 myhome.zip
zip -r myhome.zip /home/	[将 home 目录及其包含的文件和子文件夹都压缩] 

案例 2:将 myhome.zip 解压到 /opt/tmp 目录下
mkdir /opt/tmp
unzip -d /opt/tmp /home/myhome.zip

tar 指令
tar 指令是打包指令,最后打包后的文件是 .tar.gz 的文件。
把一个或者多个文件(夹)用压缩软件进行压缩的过程,一般可称之为打包。

tar指令可以压缩也可以解压。
根据选项来 压缩还是解压。

基本语法:
tar	[选项] XXX.tar.gz 打包的内容	  (功能描述:打包目录,压缩后的文件格式.tar.gz)

选项说明:

网络配置

1.通过ifconfig指令查看Linux虚拟机的ip地址
	192.168.2.131
2.然后在本机DOS命令窗口输入指令ipconfig,查看vmnet8的ip地址
	192.168.2.1
	上两个在同一网段,所以可以通信。
	
3.由第二步骤可以得到本机的无线网络适配器(无线网卡)的ip地址
	192.168.101.8

为什么Linux虚拟机可以连外网(比如打开百度)?
	Linux虚拟机--->本机vmnet8--->本机无线网卡--->教室局域网网关--->外网	

每次开机linux虚拟机的ip地址不一定相同
linux虚拟机的ip地址可以设置

以下:如何编辑虚拟机的网络和修改其ip地址?

vmware--->编辑--->虚拟网络编辑器
这样就可以查看和修改虚拟网络vmnet8的ip地址和网关

通过本机DOS命令窗口,输入指令:ipconfig
	查看vmnet8的网络配置

在xshell或linux终端输入命令:ifconfig
	查看 linux 的网络配置



ping命令 测试主机之间网络连通性
	基本语法:
		ping 目的主机 (功能描述:测试当前服务器是否可以连接目的主机)

应用实例
	测试当前服务器是否可以连接百度
	ping www.baidu.com

进程管理

基本介绍

(1)在 LINUX 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID 号(pid,进程号)。
程序执行之后加载到内存中成为进程。程序是静态的,进程是动态的。

(2)每个进程都可能以两种方式存在:
	前台与后台
	前台进程:是用户目前的屏幕上可以进行操作的。
	后台进程:是实际在操作的,但屏幕上无法看到,通常使用后台方式执行。

(3)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

PS命令,显示正在执行的进程

语法:
	ps [选项]    Process Status
	选项:
		-a		显示当前终端的所有进程信息
		-u		以用户的格式显示进程信息
		-x		显示后台程序运行的参数

一般三个选项一起用:
	ps -aux

显示出如下内容:
	USER 			 执行进程用户名称  
	PID 		     进程号
	%CPU          	 进程占用CPU百分比
	%MEM    	 	 进程占用物理内存的百分比
	VSZ     		 进程占用的虚拟内存大小(单位:KB)
	RSS 		 	 进程占用的物理内存大小(单位:KB)
	TTY     		 终端名称(有时缩写)
	STAT             进程状态:
						 S-睡眠
						 s-表示该进程是会话的先导进程
						 N-表示进程拥有比普通优先级更低的优先级
						 R-正在运行
						 D-短期等待
						 Z-僵死进程
						 T-被跟踪或者被停止等等
	START            进程执行的开始时间
	TIME             CPU 时间,即进程使用 CPU 的总时间
	COMMAND     	 启动进程所用的命令和参数,如果过长会被截断显示

kill 杀掉进程

1.介绍:
若是某个进程执行一半需要停止时,或是已经消耗了很大的系统资源时,此时可以考虑停止该进程。
使用 kill 命令来完成此项任务。

2.基本语法:
kill [选项] 进程号	(功能描述:通过进程号杀死/终止进程)
killall 进程名称	    (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
					 使用killall,会将该进程的所有子进程也都删除/终止。


3.常用选项:
	-9   表示强制终止进程
		 (系统觉得某个程序重要,可能会屏蔽你的kill指令,这时使用选项-9强制终止进程)

防火墙

关闭防火墙:

systemctl stop firewalld

启动docker

systemctl start docker

docker扩展:
docker ps 查看正在运行的进程
docker ps -a 查看所有进程,也就是所谓的后台进程/守护进程
docker start 【id号】 启动某个服务
docker images 查看安装的镜像
docker stop [容器id] 停止容器的运行
  • 26
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值