linux------基本操作指令(1)

news2024/11/19 6:19:55

1)JAVA是一个跨平台的编程语言,多线程编程,网络编程在JAVA标准库里面本身就有

2)C++的标准库相比于JAVA的标准库还是要弱一些,网络编程已经不支持了

3)linux是世界上第一大操作系统

李纽克斯

李娜克斯 

李呢克斯

李妮克斯

一:背景知识 

1)内网IP和外网IP

咱们自己写的程序,自己的电脑没有外网IP,我们的电脑可以进行访问其他的有外网IP的主机,但是无法让别的电脑访问到我们的设备

1)世界上的网络,分为Ipv4和Ipv6,Ipv4(IP地址)占4个字节,一共只有42亿个IP,理想状态,本来每一个主机都有一个唯一的地址,但是目前的现状就是不够用,只能有很多个设备共用一个外网IP(NAT机制),在两个不同的局域网中,会有相同的外网IP,外网IP只有一个;内网IP是对应着外网IP,当前我的这台电脑,处于局域网里面,他有一个内网IP,这个内网IP在局域网内是唯一的,但是我们要是再找一个其他的局域网,这个局域网里面可能也有和我一样的内网IP,(内网IP是唯一的),在cmd的命令提示符里面输入ipconfig就可以看到IP地址

2)当我在电脑上面输入IP地址,就可以查到外网IP,这个外网IP并不是给我一个人用的,好多电脑可能附近的上万台机器都共用这一个外网IP,如何让我们自己写的程序被其他人访问到?

买一个外网IP,买一个外网IP,我们只要把咱们自己写的程序部署到带有外网IP的云服务器上面,我们自己写的程序就可以被其他人访问到了,云服务器/工作中的云服务器,一般都用的是linux系统,咱们学习的最主要原因,就是为了可以进行部署操作

3)IPV6这样的地址是唯一的,并且可以在外网进行访问,但是u1s1,你要想访问IPV6的地址,前提是,你自己的网络设备也要支持IPV6,服务器的网络和客户端的网络必须都是IPV6的,虽然在国内,很多运营商都支持了IPV6但是默认都没有进行开启

二:那么什么是linux呢?

1)linux是一个操作系统,完整的来说,linux是操作系统内核,一个完整的系统=内核+配套的应用程序,对下要管理各种硬件设备,对上要给各种软件提供一个稳定的运行环境

2)应用场景:服务器领域,嵌入式设备,比如说路由器,交换机,空调,冰箱;移动端:内核就是linux系统;

3)世界第一大操作系统就是linux,windows只是在桌面领域(个人电脑),我们不想用linux桌面;

三:我们学linux主要学什么?

1)基础操作,基于命令行的操作,因为linux也是有图形化界面的,但是很少会被用到,linux主要的领域里面都不太适合使用图形化,服务器虽然配置高,但是服务器往往在遥远的机房,是通过网络来进行操作的,图形化界面要想通过网络传输,非常卡,对带宽要求就比较高了(非常贵),嵌入式设备,配置非常低,跑一个图形化界面是非常不容易的

我们进行命令操作,最大的好处就是,容易通过脚本的方式,让一些固定的操作,能够批量的进行执行;其实我们在winows上面也是可以通过cmd来进行命令行操作的

2)如何部署JavaWeb程序,系统编程/网络编程,操作系统对下要进行管理各种硬件设备,对上要管理各种软件资源

四:我们如何获取一个linux操作系统?

在我们国内有很多的云服务器厂商,阿里云,腾讯云,华为云,金山云,这个云服务器虚拟机在机房里面,云服务器一般会给你一个外网IP

1)现在有一个2核2G4M是啥意思?

2核就是指2核心的CPU,2G就是指内存是2G

2)系统镜像:选择centos7,尽量不选则带Docker,选择不带Docker

买ESC服务器或者是轻量应用服务器都是可以的

中国电信-天翼云,云网融合,安全可信,专享定制

命令操作要比图形化界面的好处:

1)命令节省网络资源,节省网络带宽,会更流畅(你要是通过图形界面来进行操作的话,网络传递图片之类的,会把网络带宽给吃满),如果是命令行就需要传递一些字符串就可以了

2)命令会更好的执行脚本,批量执行

使用中端程序可以进行远程连接到服务器上面,我们就可以通过命令的方式来进行来链接服务器了,我们使用的终端工具是Xshell

1)Xshell只是支持windows系统,但是mac或者是苹果电脑只能用其他的终端软件了

2)在Xshell官网上面选择免费授权页面,填写邮箱和姓名,在邮箱里面有下载链接

一:使用Xshell连接云服务器:

1)通过ssh+外网IP地址连接linux,我们买云服务器的时候,系统要默认选择centos 7,默认用户名是root 

二:创建会话:

我们在左上角找到工具栏,创建会话,在新建命令里面配置:我们从此创建会话,就可以直接输入用户名和密码了来连接云服务器,就不需要再通过ssh+外网IP地址来进行连接了

当前咱们使用的xshell,是不可以使用crtl+c和crtl+v来进行复制粘贴的,我们经常使用的是

ctrl+fn+insert来进行复制,使用shift+fn+insert来进行粘贴

1)当我们进入到Xshell之后,都会有一个这样的字样:

[root@iZ0jlj3x52ipcniwz9v5yrZ ~]

[root@VM-4-3-centos ~]就做命令提示符,第一个部分表示的是当前的用户名,第二部分表示(@后面)表示的是主机名,不同的机器,主机名可能不一样,第三个部分(空格后面),表示当前的目录,如果是/表示根目录,~表示当前用户的home目录,如果是其他目录,那么也会显示对应的单词;

1.1)当前的root就是用户名,后面的@符号后面的就是主机名字,每一个人的机器名字可能都不一样

1.2)后面的~就是表示当前目录,也就是说是home目录,此时我们用pwd命令就可以看到家目录就是/root,在这里面和~是等价的

 

我们由此可见整个/路径下面的文件路径就类似于这种 

家目录~,是一种特殊的目录,一个用户登陆到这台主机上面的默认的目录

1)假设用户名是tz,那么家目录就是/home/tz

2)如果你的用户名是zhangsan,那么你的家目录就是/zhangsan/tz

3)但是如果说你的用户名是root,那么家目录就是/root,root是linux上面的管理员用户 

绝对路径和相对路径的比较:

绝对路径:以盘符开头的路径,一次向后走找到绝对路径

相对路径是以.或者..开头的,其中这面的.表示当前路径,..表示当前路径的父亲路径或者是当前路径的上一级路径

相对路径就是从基准路径出发,按照一个啥样的路径来进行找到一个对应的文件

bin目录和src.zip是同级路径,java.exe在bin目录下面

1)假设我们以D:\program\jdk\bin为基准目录,要求我们现在找到java.exe

那么我们此时的路径就可以写成./java.exe,此处的.就表示当前目录的基准目录,此时就相当于是可以把.换成D:\program\jdk\bin

2)假设我们还是以D:\program\jdk\bin为基准路径,找到src.zip,此时的路径就可以表示为

../src.zip,我们在这里秉持的一种思想还是说先通过.找到当前的路径,再通过..找到当前路径的上一级路径

..表示的路径就是D:\program\jdk,再从这个路径中找到src.zip这个文件

3)即使是定位同一个文件,如果说基准路径不同,那么此时的相对路径也不同

4)假设我们现在以D:\program\jdk这个目录为基准,去进行查找javac.exe

相对路径就是./bin/java.exe

5)假设我们以D:\program为基准路径,去找javac.exe,那么此时的相对路径就写作:

./jdk/bin/javac.exe

常见的linux命令:

第一个命令:ls

1.1)罗列出当前目录中所包含的文件和目录,它的作用就类似于在我们的windows图形化界面双击某一个目录,把它打开,看看目录里面都有什么文件

1.2)我们这里面的白色的是普通文件,蓝色的是目录

1.3)我们可以在ls后面加上一个路径名,ls .表示罗列出当前路径下面的所有文件,ls /表示罗列出根目录下面的所有文件目录,下面的这些文件都是系统文件,相当于是windows上面的此电脑,整个目录树的根节点,但是我们通过ls命令只能看到一些普通的文件名

实际上在我们的linlsux命令行中,很多都支持选项,在我们的命令后面加上-以及一些特殊的字母或者单词来进行开启一些不同的功能称之为命令行的选项

但是咱们平时一般使用ls,一般都是使用ls -l是以列表的形式来显示内容的

1)ls -l表示我们即将要通过列表的方式来进行罗列出目录里面的内容,我们也可以用ll来进行代替

1.1)ls,  这是最高频使用的命令,主要是罗列出当前目录中,都包含着哪些文件,这个操作类似于好像Windows的文件资源管理器(此电脑)一样(相当于是双击一个目录),就可以看到每一个目录中都有哪些东西

1.2)最终的结果就是说这个列命令可以更详细的展现出所有文件的信息,当我们查看一个目录中的文件,所看到的一行一行的文件就是以列表来进行显式,可以看到文件修改日期,文件类型,文件大小等信息;

常用选项:

1)ls -a:列出该文件下面的所有文件,包括以.开头的隐藏文件

2)ls -d:将目录像文件一样进行显示,而不是显示其下的文件,比如说ls -d 指定目录

3)ls -k:以k字节的形式表示文件的大小,ls -alk 指定目录

4)ls -l:罗列出文件的详细信息

5)ls -r:对目录进行反向排序

6)ls -t:以时间进行排序

7)ls -R:罗列出所有字母下面文件

第一列和第二列表示文件是谁创建的,第二列的数字表示文件的大小,第三列表示文件修改时间,不同颜色表示不同的文件类型,白色表示普通文件,蓝色表示的是目录/文件夹,红色表示压缩包;

在这里面我们还是需要注意一下:

1)ls -a,作用是列出隐藏文件,如果在linux中,文件名以.开头的就是隐藏文件,默认使用  ls -l是不可以进行显示出来的,只有通过ls -a(只显示隐藏文件名和普通文件名)才可以进行实现

2)ls -l -a(显示所有的文件,包括文件类型,文件大小所有信息)

3)ls就类似于windows的文件资源管理器,windows文件资源管理器(图形化界面),就可以通过界面上的路径看到当前的目录是啥,同时也可以鼠标点击,就可以看到不同目录的情况,根据随时一点就可以切换目录,但是在linux只能通过命令来进行查看文件

4)查看根目录中的目录,cd /相当于打开了此电脑,使用ctrl+l来进行清屏

第二个重要命令: pwd

1)我们在进行使用命令行的时候,有的时候目录结构比较复杂,容易记不住自己在哪里了

所以说pwd就是说显示了当前路径所对应的绝对路径,在windows上面,以盘符开头的路径就是绝对路径,那么在linux上面以/开头的就是也就是说以根目录开头的就是绝对路径,但是在linux上面是没有盘符的

2)列出当前目录的绝对路径,linux上面是没有CD盘符的,也没有此电脑(根目录),他的目录结构,是从根路径/开始,构建出的一个树形结构;Windows上面就类似于树形结构,此电脑是根节点,C盘和D盘是两个分支,linux中的/就是windows中的此电脑

第三个重要命令:cd,主要是用来切换目录的,cd功能就是切换到指定路径,我们在cd后面跟上的路径,既可以是绝对路径也可以是相对路径

1)通过鼠标双击目录的操作这其实就是windows上面的切换目录,所以说cd就相当于是鼠标双击目录来进行切换操作,切换目录的操作就类似相当于,在文件资源管理器中,双击不同的目录;

2)cd /或者是cd /root,这就是说切换绝对路径

3)cd ..表示当前路径的上一级路径

4)这就是一个典型的进行相对路径的操作,.表示当前路径,也就是根路径,在这里面也是可以写成cd root(这两种写法是和上面的cd /root的写法是完全相同的)

5)况且在我们进行敲命令的时候,我们是可以使用tab键来进行补全的,不用把每一个字符都输入进去

6)ctrl+c取消当前操作,假设我们再进行输入目录的时候,敲错了,不想继续输入了,我们就可以直接使用ctrl+c进行操作

7)cd ~表示进入到家目录,cd -表示返回最近访问目录

8)cd后面的路径,可以是绝对路径,也可以是相对路径

我们正常在windows上面,以盘符开头的C:\windows\programs这种路径称之为绝对路径,从树根节点一路向下确定的一个路径,但是在linux上面,以/开头的,就是绝对路径,例如/home/tz,也可以cd \,可以cd +(从/这个根路径开始的文件路径)

在windows上面,以.开头,或以..开头的,.表示当前路径,..表示当前路径的上级路径,有的时候.是可以进行省略的;相对路径一定有一个基准路径(工作目录),在linux中,当前所在的位置,就是相对目录;

关于文件操作的指令:

一:touch:创建一个空文件

比如说touch+文件名,touch+Java100.txt,就在当前目录下面创建了一个名字是Java100.txt的文件

-rw-r--r--    1 root root     0 Dec 28 08:41 Java100.txt

如果说我们最终所创建的文件是原来目录中已有的文件,那么touch操作只会影响到文件访问的时间,不会影响到文件里面的具体的内容

二:cat显示文件内容

cat+文件名,就会显示这个文件里面的所有内容

三:echo打印内容到控制台,但是也是可以用来写文件

1)​​​​​​​echo是写文件,echo >表示表示重定向,把本来要显示在控制台里面的内容,给重定向到指定文件里面) echo hello >0219.text,上面这个操作就是把hello字符串给写到0219.txt里面

2)如果说我们使用echo hello,那么这个hello会被打印在控制台上面

1)但是我们上面的三个和文件相关的指令不能进行编辑文件 

2)如果说我们是搞一个简单的小文件,上面的这三个操作是够用了,但是如果说要是搞一个比较大的文件,读也好,写也好,使用上面的操作就比较麻烦了,后续我们使用less来进行读操作,使用vim来进行编辑文件

四:mkdir(make diectory)进行创建目录,在指定目录中创建一个新的目录,所谓的目录就是日常所说的文件夹 

也可以创建多级路径,蓝色表示路径

mkdir aaa

mkdir bbb

mkdir ccc

1)当我们使用mkdir连续创建了很多目录之后,就容易搞不清目录结构,我们可以通过tree这样的命令,来进行直观地看到当前目录下面目录结构是怎么构成的

2)tree,将目录结构按照树形结构来进行表示,因为tree并不是linux原生就有的,我们需要进行额外安装,我们需要在root用户下,使用yum install tree进行这个命令就可以进行安装这个命令

3)yum命令就相当于是应用商店,也被称之为包管理器

五:rm表示删除一个文件或者是删除一个目录

rm+文件名(包含后缀),表示可以删除一个文件

rm+r+目录名字,从本质上来说并不是单单的删除目录,而是还要删除目录中包含的文件以及子目录(一旦删除,啥也没了)

1)注意:rm -r /,这里面的/表示此电脑代表linux上面的根目录,一旦要是执行这个操作,电脑立即报废----压根就别用了,这个-r表示递归的意思

2)比如说有一种情况:
rm -rf  /data我们本来的操作是想要删除根目录下面的一个叫做data的目录,但是当我们敲命令的时候手一滑,多输入了一个空格,变成了rm -r / data,此时的rm就会认为此时你想要删除的是两个目录,一个是data,一个是/

3)rm -rf /data/temp.txt都是十分危险的操作

4)还有一种情况就是说咱们在未来编写linux xshell脚本的时候,也有可能造成一些错误地删除

DIR=abc.txt
此处省略一大段代码
rm -rf/${DIR}

但是如果说此时我们执行到这个代码的时候,DIR因为一些原因没有被定义,那么此处不会报错,而是把DIR这样的变量视为空字符串,仍然会生成rm -rf /这样的命令

3)在我们刚才的删除操作的时候,rm -rf+目录名字,就可以不带提示的进行删除目录了,基于上面可知,我们在其中加上-r选项,就可以直接删除不进行提示

rm -rf /=rm -rf /*(表示只保留一个\,把后面的东西都删除了),相当于是删除linux所有,系统上面所有的启动文件都被删除了

4)删除操作一旦删除不会恢复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/124978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

串口监听:以共享模式打开端口CreateFile,居然无法再打开?但文件可以。

想以共享模式来监听串口 结果打开失败,错误5 拒绝访问。为什么呢? 但是文件却正常 看了两个监听串口的软件bus hound和commMonitor都是需要驱动才能实现 单纯共享打开,可以无法监听串口,那学习一下windows驱动吧。 windows驱动 …

为加快项目开发进度,如何快速合理分配开发任务?

1、对任务进行合理分类 软件开发项目,任务繁多,需要对任务进行分类,以便优先完成重要任务。一般最常规的方法是时间四象限法,即按照重要和紧急程度对任务进行划分:重要紧急、重要不紧急、紧急不重要、不重要不紧急四类…

UE4 Shader 常用函数 学习笔记

Add:快捷键a 将两数相加,也可以将两纹理相加,如下图: append(追加): Subtract(减): 和加相反,特例,如下: Abs&#xff0…

企业需要防范的 6 个常见身份攻击手段|身份云研究院

零信任作为新一代的网络安全防护理念,已经成为全球网络安全管理的基石。零信任的核心是 「安全体系架构从网络中心化走向身份中心化」,「以身份为中心」的网络访问控制理念也逐渐被越来越多企业接受并实践。 然而企业在面向用户身份访问和管理的实践中还…

一文读懂锁、互斥量、原子操作的并发控制策略

前言:在程序设计过程中,难免涉及操作系统、多进程、多线程、数据库等领域。在这些领域内,确保对共享资源的异步操作不出差错,是每个程序开发者必须要考虑的问题。面对并发问题,除了需要谨慎和小心外,引入并…

《图解TCP/IP》阅读笔记(第七章 7.7)——MPLS 多协议标记交换技术

7.7 MPLS 由小而大的讲完了三种路由协议RIP、OSPF、BGP之后,我们来看在转发IP数据包时使用到的另外一种技术——标记交换技术。 路由技术基于IP地址中的最长匹配原则进行转发,而标记交换则对每个IP包都设定一个叫做“标记”的值,根据该标记…

数据结构与算法-堆

什么堆 堆是一种特殊的数据结构,是最高效的优先级队列。可以被看作是一颗完全的二叉树表达的数组对象。 堆的定义 1、必须是一颗完全二叉树 完全二叉树就是子节点必须从左到右都是完整的,没有缺失。 2、用数组表示看作完全二叉树的堆 假设&#xff1a…

基于MYSQL的互联网药品交易系统数据库设计项目实战

说明:这是一个数据库课程设计实战项目(附带代码文档视频讲解),如需代码文档视频讲解可以直接到文章最后获取。 项目背景 疫情期间实体经济收到打击,实体药店经营困难,医院也面临着疫情患者的压力运转着&…

window安装Docker Desktop for Windows(基于WSL2)

目录一 什么是Ducker二 安装Ducker1 window for Linux子系统环境搭建1.1 打开系统虚拟机平台和WSL(适用于Linux的window子系统)1.2安装WSL21.3为什么用wsl2,不用wsl11.4 下载集成支持linux内核的wsl21.5 设置WSL默认版本二、安装Ubuntu20.04LTS1 打开Microsoft Stor…

解析某音短视频X-Bogus

文章目录写在前面目标正向梳理主要加密函数主要算法解析逆向梳理结论测试进阶写在后面写在前面 首先推荐一篇资料: 某音短视频 X-Bogus 逆向分析,JSVMP 纯算法还原 这篇文章介绍了通过插桩日志抠算法的过程,很有参考价值。 文章已经实现的部…

什么是外汇跟单?外汇MT4自动跟单系统靠谱吗?

对于很多刚刚进入外汇市场的新手投资者而言,必须踏踏实实学习基础知识和交易技巧,才能在外汇市场获取盈利,因为在没有任何专业知识的情况下,想要在外汇市场盈利是一件非常艰难的事情。而一些脑洞大开的外汇新手投资者却在思考&…

第7章 分页之模型分页(物理分页)

模型分页主要通过前端页面中的分页控件,向后端指定路由(控制器行为方法),传递相等的参数,然后间接的通过后端程序从数据库指定表中获取一些指定行的数据,然后把这些数据在前端页面渲染显示出来。模型分页的主要用于前端页面与后端…

Java开发 - 数据库索引的数据结构

目录 前言 题外话 什么是索引 索引的使用场景 索引的失效瞬间 索引的数据结构 Tree BTree BTree 索引提高查询效率的原因 索引的分类 innodb的特点 聚簇索引 非聚簇索引 索引操作 创建索引 查询索引 删除索引 外键 结语 前言 上一章中讲解了慢sql优化的方…

快速诊断I/O性能问题

背景客户反馈最近一段时间数据库运行缓慢,磁盘的压力很大,现在有两种不同的分析结论,存储设备性能下降和数据库压力变大,请我们进行系统的分析,给一个结论 现象 登录SQL专家云,进入性能指标页面&#xff0c…

跨境电商小白:一件代发是什么?为什么要选择Starday一件代发?

近两年经济形势比较复杂多变,许多人面临就业难、职场改革、行业转型等困境,而跨境电商行业在此形势下依靠着国家优惠政策以及中国高质量产品在海外市场获得越来越多的份额。随着跨境电商行业发展规模的扩大,越来越多人选择加入到跨境电商赛道…

【实时数仓】省份交易额统计接口、新老访客对比接口、访客分时统计接口

文章目录一 省份交易额统计接口1 Sugar配置(1)图表配置(2)接口地址(3)数据格式(4)执行SQL2 数据接口实现(1)创建地区交易额统计实体类ProvinceStats&#xff…

Kafka基础_2

Kafka系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase …

18-RocketMQ源码解读

NameServer启动 1、功能回顾 NameServer的核心作用 一是维护Broker的服务地址并进行及时的更新。 二是给Producer和Consumer提供服务获取Broker列表。 2、启动流程-源码重点 整个NameServer的核心就是一个NamesrvController对象。这个controller对象就跟java Web开发中的Contr…

3D可视化大屏是如何实现的?

3D可视化是指拥有3D效果的数据可视化,对于所要展示的数据可视化内容还原出真实场景,并实时接入数据,在面对复杂操作时灵活应对,使得整个场景在大屏上的展示更具立体、更具科技感、更具易用性。 物联网时代,可视化大屏的…

【发表案例】传感器网络及电路类,仅1个月26天录用

【期刊简介】IF:1.0-2.0,JCR4区,中科院4区 【检索情况】SCI 在检,正刊 【征稿领域】自主传感器网络的高级接口电路及其应用 【参考周期】2个月左右录用 【截稿日期】2023.1.31 重要时间节点:仅1个月26天录用 2022/12…