已经有很长很长一段时间没有更新帖子了,一眨眼2023 已经过半,这些日子里,有太多太多事情要做了,今年只更新了几篇,这几天刚好有空,浅浅更新一篇叭!~~~
首先,Linux是一种开源的操作系统,广泛应用于服务器和嵌入式设备中。学习Linux基础知识对于提升计算机技能和扩展职业发展具有重要意义。
1.Linux的基本概念
- Linux是一个类Unix的操作系统,具有多用户、多任务和多线程的特性。
- Linux内核是操作系统的核心部分,负责管理硬件和软件资源。
- Linux发行版是基于Linux内核的完整操作系统,包括系统工具、库文件和应用程序。
2.Linux的文件系统
- Linux使用树形结构的文件系统,以根目录(/)为起点,包含各种目录和文件。
- 常见的文件系统目录包括/bin(可执行文件)、/etc(配置文件)、/home(用户主目录)等。
- 使用命令行界面(Shell)可以浏览、创建、删除和修改文件和目录。
每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录。
普通用户的HOME目录,默认在:/home/用户名
root用户的HOME目录,在:/root FinalShell
登陆终端后,默认的工作目录就是用户的HOME目录
相对路径、绝对路径
- 相对路径,非/开头的称之为相对路径 相对路径表示以当前目录作为起点,去描述路径,如test/a.txt,表示当前 工作目录内的test文件夹内的a.txt文件
- 绝对路径,以/开头的称之为绝对路径 绝对路径从根开始描述路径
特殊路径符
.,表示当前,比如./a.txt,表示当前文件夹内的a.txt文件
..,表示上级目录,比如/表示上级目录,../../表示上级的上级目录
~,表示用户的HOME目录,比如cd ~,即可切回用户HOME目录
3.Linux的基本命令
- ls:列出目录内容。
功能:列出文件夹信息 语法:ls [-l -h -a] [参数]
参数:被查看的文件夹,不提供参数,表示查看当前工作目录
-l,以列表形式查看
-h,配合
-l,以更加人性化的方式显示文件大小
-a,显示隐藏文件
- cd:切换目录。
功能:切换工作目录
语法:cd [目标目录]
参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录
- pwd:显示当前所在目录。
功能:展示当前工作目录
语法:pwd
- mkdir:创建新目录。
功能:创建文件夹 语法:mkdir [-p] 参数
参数:被创建文件夹的路径
选项:-p,可选,表示创建前置路径
- rm:删除文件或目录。
功能:删除文件、文件夹
语法:rm [-r -f] 参数参数
参数:支持多个,每一个表示被删除的,空格进行分隔
选项:-r,删除文件夹使用
选项:-f,强制删除,不会给出确认提示,一般root用户会用到
rm命令很危险,一定要注意,特别是切换到root用户的时候。
在Linux中以.开头的,均是隐藏的。
默认不显示出来,需要-a选项才可查看到。
- cp:复制文件或目录。
功能:复制文件、文件夹
语法:cp [-r] 参数1 参数2 参数1,被复制的 参数2,要复制去的地方
选项:-r,可选,复制文件夹使用
示例:
cp a.txt b.txt,复制当前目录下a.txt为b.txt cp a.txt test/,复制当前目录a.txt到test文件夹内 cp -r test test2,复制文件夹test到当前文件夹内为test2存在
- mv:移动文件或目录。
功能:移动文件、文件夹
语法:mv 参数1 参数2
参数1:被移动的
参数2:要移动去的地方,参数2如果不存在,则会进行改名
- cat:显示文件内容。
功能:查看文件内容
语法:cat 参数
参数:被查看的文件路径
- grep:在文件中查找指定的文本。
grep命令 功能:过滤关键字
语法:grep [-n] 关键字 文件路径
选项-n,可选,表示在结果中显示匹配的行的行号。
参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使 用””将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
参数文件路径,可以作为管道符的输入
- echo:输出内容
echo命令 功能:输出内容 语法:echo 参数 参数:被输出的内容
- touch:创建文件。
功能:创建文件
语法:touch 参数
参数:被创建的文件路径
- more:查看文件。
功能:查看文件,可以支持翻页查看
语法:more 参数
参数:被查看的文件路径
在查看过程中: 空格键翻页 q退出查看
- which:查看命令的程序文本文件路径
功能:查看命令的程序本体文件路径
语法:which 参数 参数:被查看的命令
- head:查看文件头部
功能:查看文件头部内容
语法:head [-n] 参数
参数:被查看的文件 选项:-n,查看的行数
- find:搜索文件
功能:搜索文件 语法1按文件名搜索:find 路径 -name 参数
路径,搜索的起始路径
参数,搜索的关键字,支持通配符*, 比如:*test表示搜索任意以test结尾 的文件
- tail:查看文件尾部
功能:查看文件尾部内容
语法:tail [-f] 参数
参数:被查看的文件
选项:-f,持续跟踪文件修改
- wc:统计
功能:统计 语法:wc [-c -m -l -w] 文件路径
选项,-c,统计bytes数量
选项,-m,统计字符数量 选项,-l,统计行数
选项,-w,统计单词数量
参数,文件路径,被统计的文件,可作为内容输入端口
参数文件路径,可作为管道符的输入
- 管道符 |
写法:|
功能:将符号左边的结果,作为符号右边的输入
示例: cat a.txt | grep itheima,将cat a.txt的结果,作为grep命令的输入, 用来过滤itheima关键字
可以支持嵌套: cat a.txt | grep itheima | grep itcast
- 反引号`
功能:被两个反引号包围的内容,会作为命令执行
示例: echo `pwd`,会输出当前工作目录
- 重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>,表示覆盖输出 ,
>>,表示追加输出
- chmod:修改文件或目录的权限。
4.Linux的用户和权限管理
Linux的用户和权限管理是操作系统中至关重要的部分,它允许系统管理员控制用户对系统资源的访问权限。
- Linux支持多用户的操作环境,每个用户有自己的用户名和密码。
- 使用sudo命令可以提升普通用户的权限,执行需要管理员权限的操作。
- 使用chmod命令可以设置文件和目录的权限,包括读、写和执行权限。
- 用户账户:
- 每个Linux系统都有一个root账户,它是具有最高权限的管理员账户。root账户应该谨慎使用,以免对系统造成损坏。
- 普通用户账户是在系统上创建的其他用户账户,它们具有较低的权限,用于日常操作。
- 使用
useradd
命令可以创建新用户账户,使用passwd
命令可以设置用户密码。
-
用户组:
- 用户组是一组具有相似权限的用户的集合。用户可以属于一个或多个用户组。
- 用户组可以用于简化权限管理,通过将权限分配给用户组而不是单个用户,可以更方便地管理多个用户的权限。
- 使用
groupadd
命令可以创建新用户组,使用usermod
命令可以将用户添加到用户组中。
-
权限:
- Linux系统中的文件和目录具有权限属性,用于控制对它们的访问。
- 权限被分为三个类别:所有者、群组和其他人。对于每个类别,权限可以分为读、写和执行。
- 使用
chmod
命令可以修改文件和目录的权限。例如,chmod u+r file.txt
将允许所有者读取文件。
-
文件所有权:
- 每个文件和目录都有一个所有者和一个所属用户组。
- 所有者是创建文件或目录的用户,而所属用户组是文件或目录的所有者所属的用户组。
- 使用
chown
命令可以更改文件和目录的所有者,使用chgrp
命令可以更改所属用户组。
-
sudo权限:
- sudo是一种命令,允许普通用户以root用户的身份执行特权命令。
- 通过将用户添加到sudoers文件中,可以允许他们使用sudo命令。
- 使用
visudo
命令可以编辑sudoers文件,添加或修改用户的sudo权限。
5.Linux的软件管理
在Linux系统中,软件管理是非常重要的一部分,它涉及到安装、更新和删除软件包。Linux提供了多种包管理工具,常见的包括apt、yum和pacman等,它们可以帮助用户轻松地管理软件包。
- Linux使用包管理器来安装、更新和删除软件包。
- 常见的包管理器有apt(Debian/Ubuntu)、yum(CentOS/Fedora)和pacman(Arch Linux)。
- 使用包管理器可以轻松地安装和管理各种软件包,包括应用程序、库文件和系统工具。
-
软件仓库:
- 软件仓库是存储软件包的服务器,用户可以从仓库中获取软件包进行安装和更新。
- 不同的Linux发行版通常有自己的软件仓库,例如Debian和Ubuntu使用apt软件管理工具,CentOS和Fedora使用yum软件管理工具,Arch Linux使用pacman软件管理工具。
-
软件包的安装和更新:
- 使用包管理工具可以方便地安装和更新软件包,这些工具会自动解决依赖关系并下载所需的软件包。
- 安装软件包的命令通常是
apt install <package>
(apt)、yum install <package>
(yum)或pacman -S <package>
(pacman)。 - 更新软件包的命令通常是
apt update
和apt upgrade
(apt)、yum update
(yum)或pacman -Syu
(pacman)。
-
软件包的搜索和查询:
- 包管理工具提供了搜索和查询软件包的功能,可以通过关键字查找特定的软件包。
- 搜索软件包的命令通常是
apt search <keyword>
(apt)、yum search <keyword>
(yum)或pacman -Ss <keyword>
(pacman)。 - 查询已安装软件包的信息的命令通常是
apt show <package>
(apt)、yum info <package>
(yum)或pacman -Qi <package>
(pacman)。
-
软件包的卸载和删除:
- 软件包不再需要时,可以通过包管理工具进行卸载和删除。
- 卸载软件包的命令通常是
apt remove <package>
(apt)、yum remove <package>
(yum)或pacman -R <package>
(pacman)。 - 删除软件包及其配置文件的命令通常是
apt purge <package>
(apt)、yum erase <package>
(yum)或pacman -Rs <package>
(pacman)。
-
第三方软件源:
- 除了官方软件仓库,还可以添加第三方软件源来获取更多的软件包。
- 第三方软件源提供了额外的软件包和更新,但需要注意选择可信的软件源以确保软件的安全性。
6.Linux的网络管理
Linux的网络管理
- Linux支持各种网络协议和服务,如TCP/IP、HTTP、SSH等。
- 使用ifconfig命令可以查看和配置网络接口的信息。
- 使用ping命令可以测试与其他主机之间的网络连接。
- 使用ssh命令可以远程登录到其他Linux主机。
-
网络接口管理:
- 使用
ifconfig
命令可以查看和配置网络接口的信息,如IP地址、子网掩码、MAC地址等。 - 使用
ip
命令可以提供更高级的网络接口管理功能,如配置虚拟接口、修改路由表等。
- 使用
-
网络连接管理:
- 使用
ping
命令可以测试与其他主机之间的网络连接,以检查网络的可用性和延迟。 - 使用
traceroute
命令可以跟踪网络数据包在网络中的传输路径。 - 使用
netstat
命令可以查看当前系统上的网络连接和监听端口。
- 使用
-
网络服务管理:
- Linux系统提供了各种网络服务,如HTTP服务器(如Apache)、SSH服务器、FTP服务器等。
- 使用
systemctl
命令可以启动、停止和管理系统服务,如systemctl start apache2
用于启动Apache服务器。 - 使用
firewall-cmd
命令(CentOS/Fedora)或ufw
命令(Ubuntu)可以配置防火墙规则,以保护网络安全。
-
远程登录管理:
- 使用
ssh
命令可以远程登录到其他Linux主机,以执行命令和管理远程系统。 - 使用
scp
命令可以在本地主机和远程主机之间进行安全的文件传输。 - 使用
rsync
命令可以在本地主机和远程主机之间进行文件同步和备份。
- 使用
-
网络诊断工具:
- Linux提供了许多网络诊断工具,如
ping
、nslookup
、dig
和tcpdump
等,用于排查网络故障和分析网络流量。
- Linux提供了许多网络诊断工具,如