【技术积累】Linux中的基础知识【二】
Linux的发行版本
Linux是一个开源操作系统,有许多发行版,每个发行版都有自己的特点和优势。以下是一些常见的Linux发行版:
Ubuntu:Ubuntu是最受欢迎的Linux发行版之一,它拥有一个庞大的社区,提供了易于使用的界面和大量的软件。
Debian:Debian是最古老的Linux发行版之一,也是一个非常稳定和可靠的发行版,其软件库非常丰富。
Red Hat Enterprise Linux(RHEL):RHEL是一个商业级Linux发行版,由Red Hat公司开发和支持。
CentOS:CentOS是RHEL的社区版,在企业和开发者之间非常流行。
Fedora:Fedora是由Red Hat公司支持的社区发行版,具有最新的特性和技术支持。
Arch Linux:Arch Linux是一个非常领先的发行版,它强调自定义和精简。它适合高级用户和开发者的需求。
Gentoo:Gentoo是一个源代码驱动的发行版,用户必须从源代码编译安装软件包。它适合有编程经验的用户。
Mint:Mint是一个基于Ubuntu的发行版,提供了易于使用的界面和各种桌面环境。
这些都是Linux发行版本中比较受欢迎的一些,当然还有其他各种不同的版本,用户可以根据自己的需求进行选择。
Linux的应用领域
Linux应用广泛,从服务器到移动设备、桌面和嵌入式系统都有广泛的应用。以下是Linux的主要应用领域:
1.服务器:Linux在服务器领域应用非常广泛,包括Web服务器、邮件服务器、文件服务器、数据库服务器、DNS服务器等等。许多大型互联网公司使用 Linux 作为其主要服务器操作系统,例如谷歌、Facebook、Twitter等等。
2.桌面:虽然Linux的市场份额相对较低,但是在开源社区中,Linux桌面应用程序的生态系统正在快速成长。常见的Linux桌面环境有 GNOME、KDE、Xfce等等。
3.移动设备:Android 操作系统由Linux内核构建,被广泛应用于智能手机、平板电脑等移动设备上。 Android 在智能手机市场占有相当大的份额。
4.嵌入式系统:Linux在嵌入式系统中也被广泛应用,例如网络路由器、智能电视、数字录音机、工业控制设备等等。
5.云计算:Linux是云计算时代的主导操作系统,许多公共云如Amazon Web Services、Microsoft Azure等均基于Linux操作系统。
总之,由于其开源、免费、灵活、安全等优点,Linux在许多领域都有着广泛的应用。
忘记Windows的思维方式
学习Linux需要忘记Windows的思维方式,因为两种操作系统在很多方面存在差异,包括文件系统,命令行和软件安装等。
- 首先,Linux的文件系统与Windows有所不同。Linux采用一种层次化的根目录结构,每个文件和目录都有一个绝对路径,而Windows采用了驱动器字母的方式来表示不同的逻辑分区。在Linux中,文件和目录都被视为文件,无论是硬件或者软件都被视为文件对象,这很不同于Windows。
- 其次,Linux的命令行与Windows有所不同。Linux的命令行被认为是更加高效和强大的,因为在Linux中可以通过组合多个命令来完成更加复杂的任务。而且在Linux中,命令行工具是更加广泛使用的,而Windows则更加依靠GUI。
- 最后,软件安装也是Linux和Windows区别之一。在Windows中,软件通常需要安装程序进行安装,而在Linux中则可以通过软件包管理器进行安装和卸载软件。这些软件包是为特定的Linux发行版打包的,因此需要选择适合自己Linux发行版的软件包。
- 因此,学习Linux需要忘记Windows的思维方式,从Linux的角度去理解和学习这个操作系统。这需要重新设定思考方式,主要是从命令行操作和系统管理的角度进行学习和思考。
Linux大小写问题
在Linux操作系统中,文件和文件夹名称是区分大小写的。这意味着,如果你有两个文件或文件夹的名称仅在大小写上不同,那么Linux将认为它们是两个不同的实体。例如,"file.txt"和"File.txt"在Linux中被视为两个不同的文件。
这种区分大小写的功能对于操作系统的文件系统非常重要,因为它可以帮助保持文件和目录结构的完整性和正确性。而如果没有这种区分大小写的功能,文件和文件夹的名称就会混淆,导致数据混乱,文件找不到,程序无法正常运行等问题。
此外,还有一些编程语言是区分大小写的,例如C语言。在C语言中,例如"Hello"和"hello"是不同的变量名称。因此,在编写Linux下的C语言程序时,需要注意大小写的区别。
Linux扩展名问题
Linux不依赖扩展名
Linux是一种基于Unix的操作系统,与Windows不同的是,它不是通过文件扩展名来判断文件类型的,而是通过文件的属性和内容来进行判断。这种方法有以下好处:
1. 减少误判:由于文件扩展名可以随时更改,而且可能被恶意程序修改,所以文件的扩展名并不是可靠的标识符。相反,Linux利用文件类型'类型标识符'(type identifier)来确定文件类型。在文件系统中,每个文件都有一个文件类型标识符,这个标识符是由文件属性中的信息生成的。
2. 容易扩展:在Linux中新增一个文件类型只需要在文件系统中增加一个对应符号的解析器程序即可。而在Windows中,新增一个文件类型则需要添加一个映射表,再修改几个注册表信息。
举个例子:在Linux系统中,如果文件没加扩展名,可以通过“file <文件名>”命令来查看文件类型。如下所示:
$ file myfile
myfile: ASCII text
上面的命令会告诉我们myfile文件是ASCII文本。
另一个例子是,Linux中的可执行文件可以没有扩展名,但是必须具有可执行权限和正确的格式,例如:
$ ./myprogram
这里的myprogram文件没有扩展名,但是它是一个可执行文件,操作系统可以正确地运行该程序。
扩展名仍然有实用性
虽然Linux不像Windows那样依赖于扩展名来确定文件类型,但是仍然可以在Linux文件名中包含扩展名。这是因为扩展名在一些情况下仍然具有一定的实用性,例如:
文件名的可读性:人们对于文件名的理解和记忆往往是与文件的扩展名相关的。即便文件系统中并不依据扩展名来识别文件类型,给文件名附加一个合适的扩展名仍然能够方便人们对其进行理解和识别。
兼容性:与某些软件和操作系统的兼容性有关。有一些软件在处理文件时依赖于扩展名或者文件名的规范性,因此为了方便与这些软件进行交互,文件名必须包含扩展名,以满足软件和操作系统的要求。例如有些应用程序或者运行环境(如Java虚拟机)可能会需要文件扩展名来正确地执行或识别文件。这就是为什么在Linux系统上,有些文件可能会仍然具有扩展名的原因。
方便性:在Linux中,扩展名并不影响文件的实际内容和处理方式,但是添加文件扩展名可以使文件在命令行工具和文件管理器中更易于识别和访问。例如,在命令行中输入“ls”命令时,文件扩展名可以快速地显示文件类型,这可以帮助用户更轻松地识别文件。
提供默认应用程序:在Linux中,文件扩展名可以用于确定默认应用程序。例如,将.txt文件扩展名添加到文件名后,可以使Linux系统默认使用文本编辑器打开该文件,而不是其他类型的应用程序。
避免文件冲突:在Linux中,不同类型的文件可能具有相同的名称,添加扩展名可以帮助避免文件名冲突和混淆。例如,在Linux中,可以同时存在名为“file”的文本文件和名为“file”的二进制文件,但是添加相应的扩展名可以使它们更易于区分。
总的来说,Linux的文件系统不需要依赖于扩展名来确定文件类型,但是扩展名仍然具有一定的实用性。因此,在实际的使用中,文件名是否包含扩展名,以及扩展名的具体命名方式,可以由用户根据自己的需求和习惯进行选择。
Linux的常用扩展名有哪些
在Linux文件系统中,扩展名虽然不是必须的,但通常为了方便管理和识别文件,人们还是会为文件名添加一个特定的扩展名。以下是一些常用的Linux文件扩展名:
.sh:Bash shell脚本文件。
.py:Python源代码文件。
.c:C语言源代码文件。
.cpp:C++源代码文件。
.java:Java源代码文件。
.pl:Perl脚本文件。
.txt:纯文本文件,例如README、LICENSE等文本文件。
.html/.htm:HTML网页文件。
.xml:XML文件,用于存储数据或配置信息。
.json:JSON文件,用于存储数据。
.tar:tar压缩文件。
.gz:gzip压缩文件。
.zip:zip压缩文件。
.rar:rar压缩文件。
.pdf:Adobe PDF文档。
.doc/.docx:Microsoft Word文档。
.xls/.xlsx:Microsoft Excel电子表格文件。
.ppt/.pptx:Microsoft PowerPoint演示文稿。
.jpg/.jpeg:JPEG图像文件。
.png:PNG图像文件。
.gif:GIF动态图片文件。
.mp3:MP3音频文件。
.mp4:MP4视频文件。
.avi:AVI视频文件。
.svg:SVG矢量图像文件。
Linux的基本命令行【一】
1. 列出当前的进程
可以使用以下命令列出当前所有正在运行的进程:
ps -aux
该命令将显示每个进程的详细信息,包括进程ID(PID)、父进程ID(PPID)、CPU利用率、内存使用量等。
使用ps命令:在命令行输入ps即可列出当前的进程。ps命令的常用参数如下:
- -a 显示所有用户的进程
- -u 显示进程所有者的用户名及其他信息
- -x 显示不与终端有关的所有进程
- -e 与-a选项相同
- -f 显示全格式信息
使用top命令:在命令行输入top即可列出当前正在运行的进程。top命令也可以实时地显示进程信息,可以用于监视系统运行状态。top命令的常用选项如下:
- -p 显示指定PID进程信息
- -u 显示指定用户名的进程信息
- -d 指定刷新时间
2. 查找某个进程
可以使用命令行ps或pgrep来查找某个进程。
使用ps命令:在命令行输入ps | grep keyword即可查找关键字为“keyword”的进程。ps命令的常用参数如下:
- -e 显示所有进程
- -f 显示详细信息
- -C 列出指定命令名的进程
例如,要查找名称中包含“firefox”的进程,可以输入命令。
ps -ef | grep firefox
使用pgrep命令:在命令行输入pgrep keyword即可查找关键字为“keyword”的进程。pgrep命令的常用选项如下:
- -u 指定用户名
- -f 包含命令行参数
例如,要查找名称中包含“firefox”的进程,可以输入命令。
pgrep -u username -f firefox
3. 结束一个进程
可以使用以下命令结束一个进程:
kill <PID>
其中,PID是要结束的进程的进程ID。如果您不知道进程的PID,请先使用ps命令查找它。
还可以使用以下强制结束进程的命令(请谨慎使用):
kill -9 <PID>
上述命令将立即结束指定PID的进程,而不会等待它优雅地退出。
使用kill命令:在命令行输入kill PID即可结束指定PID的进程。
kill命令的常用选项如下:
- -9 强制结束进程
- -15 发送终止信号
例如,要结束PID为123的进程,可以输入命令
kill 123。
使用pkill命令:
在命令行输入pkill process_name即可结束名称为“process_name”的进程。
pkill命令的常用选项与pgrep类似。
例如,要结束名称中包含“firefox”的进程,可以输入命令。
pkill -f firefox
4. 查看系统的磁盘使用情况
可以使用命令行df或du来查看系统的磁盘使用情况。
使用df命令:在命令行输入df即可显示所有磁盘的空间使用情况。
df命令的常用选项如下:
- -h 以人类可读的形式显示
例如,要以人类可读的形式显示系统磁盘的使用情况,可以输入命令
df -h
使用du命令:在命令行输入du directory_name即可显示指定目录的空间使用情况。
du命令的常用选项如下:
- -h 以人类可读的形式显示 -
- s 只显示总计
例如,要以人类可读的形式显示当前目录的空间使用情况,可以输入命令
du -sh
5. 在Linux中压缩和解压缩文件
Linux用户可以使用tar命令压缩和解压缩文件。以下是一些基本命令示例:
压缩文件夹为.tar.gz格式:
tar -czvf <压缩文件名>.tar.gz <要压缩的文件夹名称>
解压缩.tar.gz格式文件:
tar -xzvf <文件名>.tar.gz
其中,选项说明:
-c:创建新的归档文件。
-z:gzip压缩归档文件(.tar.gz)。
-x:解压缩文件。
-v:显示操作进度。
-f:指定文件名。
Linux的基本命令行【二】
如何将多个文件组成一个归档文件?
归档文件是将多个文件合并为一个文件,并压缩存储的文件形式。常见的归档文件格式有.tar,.gz,.zip等。在Linux系统中,使用命令行可以轻松地将多个文件组成一个归档文件。
使用.tar命令创建归档文件
可以使用tar命令将多个文件组合成一个归档文件,并将其压缩。例如,将当前目录下的所有txt文件组合成一个归档文件:
tar -czvf archive.tar.gz *.txt
命令说明:
- -c: 建立新的归档文件
- -z: 对归档文件进行gzip压缩
- -v: 显示归档过程
- -f: 指定归档文件名
使用zip命令创建归档文件
Zip是一种常见的归档文件格式,在Linux系统中,可以使用zip命令打包和压缩文件:
zip archive.zip *.txt
命令说明:
*.txt:表示将当前目录下所有的txt文件打包压缩为archive.zip
如何提取归档文件中的文件?
解压归档文件是常见的操作,Linux系统中,也有对应的命令行工具支持解压归档文件。
1.使用tar命令解压缩归档文件
可以使用tar命令将一个tar包或tar.gz包解压为原文件:
tar -xzvf archive.tar.gz
命令说明:
- -x: 解压缩文件
- -z: 解压缩gzip压缩的文件
- -f: 指定归档文件名
2.使用unzip命令解压缩zip归档文件
可以使用unzip命令将一个zip包解压为原文件:
unzip archive.zip
如何检查文件的完整性?
在将文件进行传输或备份的过程中,很容易发生文件损坏或数据丢失的问题。因此,我们需要检查文件的完整性,确保文件没有被篡改或损坏。
1.使用md5sum命令检查文件完整性
可以使用md5sum命令检查文件的MD5值,来判断文件是否完整:
md5sum file.txt
命令说明:file.txt:待检查完整性的文件。
2.使用sha1sum或sha256sum命令检查文件完整性
可以使用sha1sum或sha256sum命令检查文件的SHA1或SHA256值,来判断文件是否完整:
sha1sum file.txt
sha256sum file.txt
命令说明:file.txt:待检查完整性的文件。
如何对文件进行加密和解密?
在对重要文件进行传输或备份的过程中,往往需要加密文件,保护文件内容不被泄露或篡改。
1.使用openssl命令对文件进行加密
可以使用openssl命令对文件进行加密,生成加密后的文件:
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc
命令说明:
- -aes-256-cbc:使用AES-256位加密算法
- -salt:使用随机盐值进行加密
- -in file.txt:输入要加密的文件
- -out file.enc:输出加密后的文件
2.使用openssl命令对文件进行解密
可以使用openssl命令对加密文件进行解密,生成原文件:
openssl enc -d -aes-256-cbc -in file.enc -out file.txt
命令说明:
- -d:解密加密文件
- -aes-256-cbc:使用AES-256位加密算法
- -in file.enc:输入要解密的文件
- -out file.txt:输出解密后的文件
如何为文件设置备份?
在对文件进行维护或备份时,往往需要设置文件的备份。在Linux系统中,可以使用cp命令或rsync命令进行文件备份。
1.使用cp命令进行备份
使用cp命令可以将一个文件复制到另一个位置,完成备份操作:
cp /src/file.txt /backup/file.bak
命令说明:
- /src/file.txt:源文件
- /backup/file.bak:备份文件
2.使用rsync命令进行备份
rsync是一个强大的文件同步工具,可以将本地或远程文件夹备份到其他位置或服务器。例如,将本地的/home目录备份到/backup目录:
rsync -avz /home /backup
命令说明:
- -avz:同步文件夹内容,并保留文件属性和权限
- /home:源文件夹
- /backup:备份文件夹
Linux的基本命令行【三】
如何将文件内容追加到另一个文件中?
可以使用Linux的“>>”运算符将一个文件的内容追加到另一个文件中。示例代码如下所示:
cat file1.txt >> file2.txt
这将把file1.txt文件的内容追加到file2.txt文件的末尾。
如何在Linux中查找文件?
可以使用Linux的“find”命令来查找文件。示例代码如下所示:
find / -name filename.txt
这将在整个文件系统中搜索名为filename.txt的文件。 /代表要搜索整个文件系统。还可以使用其他参数来指定搜索范围、文件类型等。例如,使用“-type”参数来指定文件类型,使用“-mtime”参数来指定修改日期等。可以使用“man find”命令查看详细信息。
如何使用文本编辑器在Linux中编辑文件?
可以使用Linux中的多种文本编辑器来编辑文件,最常用的包括vi、nano和emacs。以下是使用vi编辑器编辑文件的示例代码:
vi filename.txt
打开文件后,在命令模式下可以使用各种命令来编辑文件,例如删除、复制、粘贴和查找。要保存更改并退出vi编辑器,请使用以下命令:
:wq
如何在命令行中进行带密码的SSH登录?
可以使用Linux的“sshpass”工具在命令行中进行带密码的SSH登录。示例代码如下所示:
sshpass -p 'password' ssh username@hostname
在上面的命令中,“password”代表SSH登录密码,“username”代表要登录的用户名,“hostname”代表要登录的远程主机名。请注意,此方法被视为不安全,因为密码会以明文形式存储在命令历史记录中,建议使用公钥/私钥身份验证方法。
如何查看Linux系统中的网络状态?
可以使用Linux的“netstat”命令来查看系统的网络状态。以下是使用netstat命令查看当前网络连接列表的示例代码:
netstat -a
该命令将列出当前打开的所有网络连接,包括TCP和UDP连接。还可以使用其他参数来过滤结果,例如“-n”参数只显示IP地址和端口号,而不显示域名和服务名称。可以使用“man netstat”命令查看更多选项。
【技术积累】Linux中的基础知识【二】的更多相关文章
- linux运维基础知识
linux运维基础知识大全 一,序言 每一个微不足道的知识,也是未来的铺垫.每一份工作的薪资职位,也是曾经努力的结果. 二,服务器 1,运维人员工作职责: 1)保证数据不丢失:2)保证服务器24小时运 ...
- java 基础知识二 基本类型与运算符
java 基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...
- 第76节:Java中的基础知识
第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...
- 菜鸟脱壳之脱壳的基础知识(二) ——DUMP的原理
菜鸟脱壳之脱壳的基础知识(二)——DUMP的原理当外壳的执行完毕后,会跳到原来的程序的入口点,即Entry Point,也可以称作OEP!当一般加密强度不是很大的壳,会在壳的末尾有一个大的跨段,跳向O ...
- 1)Linux程序设计入门--基础知识
)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...
- Dapper基础知识二
在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. 2,如何使用Dapper? 首先Dapper是支持多种数据库的 ...
- python基础知识(二)
python基础知识(二) 字符串格式化 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 print(' %s is boy'%('tom')) ----> ...
- linux web服务基础知识,dns
#web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx > web server 服务端浏览器 > web client 客户端 #dns解析 ...
- Linux中shell基础、重定向、管道符、环境变量
1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核去执行.起着协调用户与系统的一致性和在用户与系统之间进行交互的 ...
- Java基础知识二次学习--第三章 面向对象
第三章 面向对象 时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...
随机推荐
- day3 函数的定义和调用,练习编写简单的程序(记录2)
一.值传递.指针传递.引用传递 值传递: 在值传递中,函数的形参是由实参的副本初始化的,也就是说,函数内部操作的是实参的一个拷贝.值传递适用于传递简单数据类型(如整数.浮点数.字符等)以及小型结构体等 ...
- 读破万卷,神交古人,突破ChatGPT4096的Token限制,建立自己的垂直领域资料人工智能助理
ChatGPT的泛用性极高,上知天文,下通地理,参考古今,博稽中外,几乎无所不知,无所不晓.但如果涉及垂直领域的专业知识点,ChatGPT难免也会有语焉不详,闪烁其词的毛病,本次我们将特定领域的学习材 ...
- 图与网络分析—R实现(二)
图与网络 网络在各种实际背景问题中以各种各样的形式存在.交通.电子和通讯网络遍及我们日常生活的各个方面,网络规划也广泛用于解决不同领域中的各种问题,如生产.分配.项目计划.厂址选择.资源管理和财务策划 ...
- pandas之统计函数
Pandas 的本质是统计学原理在计算机领域的一种应用实现,通过编程的方式达到分析.描述数据的目的.而统计函数则是统计学中用于计算和分析数据的一种工具.在数据分析的过程中,使用统计函数有助于我们理解和 ...
- 阿里巴巴建议这样遍历Map,今天就用几种方式做个比较一下看那种最好用
今天不举例子了,问一句你开心吗?不开心也要记得把开心的事情放到快乐源泉小瓶子里,偶尔拿出来一一遍历看看. Map在我们Java程序员高频使用的一种数据结构,Map的遍历方式也有很多种,那那种方式比较 ...
- Ubuntu20.04 Docker搭建远程xfce桌面以及ssh教程
简介:本文主要介绍ubuntu20.04容器中搭建xfce远程桌面.C++.Go环境.容器内docker操作配置. 一.创建容器1.创建容器 docker pull ubuntu:20.04docke ...
- 新一代自动化测试神器Playwright
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/4bedb73c.html 你好,我是测试蔡坨坨. 说到WebUI自动化测试,首当其冲的当属Selenium,在很长的一段时间 ...
- 非关系型数据库---Redis安装与基本使用
一.数据库类型 关系数据库管理系统(RDBMS) 非关系数据库管理系统(NoSQL) 按照预先设置的组织机构,将数据存储在物理介质上(即:硬盘上) 数据之间可以做无关联操作 (例如: 多表查询,嵌套查 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(15)-Charles如何配置反向代理
1.简介 在App开发的过程当中,抓包是一个很常见的需求,而有些app的请求不会在网络设置代理时被抓到数据包,这里若是需要抓包就需要搭建反向代理. 2.什么是代理? 什么是代理,来一张图了解一下. 代 ...
- 【Visual Leak Detector】在 VS 高版本中使用 VLD
说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记. 本篇介绍如何在 VS 高版本中使用 vld2.5.1.同系列文章目录可见 <内存泄漏检测工具>目录 目录 说明 1. 使用前 ...