为什么要掌握Linux基础知识?
- 开放源代码:Linux是一个开源操作系统,这意味着其源代码对所有人开放。这为开发者提供了极大的灵活性,他们可以访问、修改甚至重新分发代码,以满足特定的需求。国内信创领域很多国产化操作系统都是基于Linux进一步创新研发的。
- 安全性高:与Windows等其他操作系统相比,Linux被认为更安全。它的安全模型要求每个程序都需要管理员权限才能执行,这大大降低了恶意软件的传播风险。
- 成本效益:Linux是免费的,这为企业节省了软件成本。此外,Linux可以帮助复兴旧的计算机系统,将这些设备作为防火墙、路由器或服务器等再次投入使用。
- 稳定性强:Linux以其稳定性而闻名,它可以满足各种开发需求,并能够很好地支持多种编程语言和开发工具。
- 社区支持:Linux拥有一个庞大的开源社区,提供丰富的资源和工具,这对于解决问题和技术创新非常有帮助。
- 自定义性强:Linux允许用户根据自己的需求定制操作系统,这种灵活性使得它能够适应各种不同的应用场景和开发环境。
- 兼容性好:Linux支持广泛的硬件平台,从个人电脑到大型服务器,都可以运行Linux,这使得它在IT基础设施中具有很高的适用性。
- 性能优异:Linux系统经过优化,可以高效地运行在各种硬件上,特别是在服务器和云计算环境中,性能优势明显。
- 多用户和多任务:Linux天生支持多用户和多任务,这使得它在需要同时处理多个任务和用户请求的环境中表现出色。
- 网络能力强:Linux的网络功能非常强大,它支持各种网络标准和服务,是许多网络服务器和嵌入式系统的首选操作系统。
总的来说,使用Linux部署程序可以为开发者和企业带来诸多好处,包括成本节约、高安全性和稳定性、以及强大的自定义和社区支持等。这些优点使得Linux成为许多专业领域的首选操作系统。
如何学习Linux操作系统?
纸上得来终觉浅,绝知此事要躬行。学习Linux也是如此,宜动手实操,忌眼勤手懒。如果你有一台Linux系统的服务器,请跟着文章把命令敲起来。
1.查看系统参数
sysctl -a
: 显示所有系统参数及其当前值。这个命令会列出大量的系统配置信息,包括内核参数和网络设置等。cat /proc/sys/parameter_name
: 查看特定系统参数的值。你需要将parameter_name
替换为你想要查看的具体参数名称。lscpu
: 显示CPU架构信息,包括其类型、核心数量、线程数等详细信息。hostnamectl
: 获取主机名、操作系统、系统内核、机器架构等信息。这是一个非常方便的命令,可以快速查看系统的基本信息。
2.用户/用户组操作
- 添加新用户:使用
useradd
命令可以创建新用户账号。在添加时,可以为新用户分配用户号、主目录、登录Shell等资源。 - 删除用户:使用
userdel
命令可以删除不再需要的用户账号。 - 修改用户信息:使用
usermod
命令可以修改现有用户的信息,如更改主目录、登录Shell、密码过期时间等。 - 设置密码:使用
passwd
命令可以为用户设置或更改密码。 - 添加用户组:使用
groupadd
命令可以创建新的用户组。 - 修改用户组:使用
groupmod
命令可以修改用户组的属性,如组名或组ID。 - 查询用户信息:使用
id
命令可以查看用户的UID和GID,以及所属的用户组信息。 - 查看当前用户:使用
whoami
命令可以显示当前登录的用户。 - 查看已登录用户:使用
w
和who
命令可以查看哪些用户已经登录系统以及他们在做什么。
通过定义用户组,Linux系统简化了对用户的管理工作,并且可以通过组成员身份控制文件访问权限。每个用户都有一个用户ID(UID)和一个组ID(GID),这些信息存储在/etc/passwd
文件中。需要注意的是,在进行这些操作时,可能需要具备相应的系统管理权限,通常需要使用sudo
命令来执行。
3.权限操作命令
Linux中关于文件和目录权限的操作命令主要包括chmod、chown、chgrp、umask、ls、su、sudo和passwd等。
- chmod:用于修改文件或目录的访问权限。可以通过符号模式(如 u+x, g-w, o-rwx)或数字模式(如 644, 755)来设定权限。
- chown:用于更改文件或目录的所有者。需要指定新的所有者和组,格式为
chown user:group file
。 - chgrp:用于改变文件或目录所属的用户组。使用
chgrp group file
命令将文件的所属组改为指定的组。 - umask:设置新建文件或目录的默认权限掩码。例如,
umask 022
会设置新创建的文件权限为 644,目录为 755。 - ls:通过
ls -l
命令可以查看文件或目录的详细权限信息,包括所有者、群组和其他用户的权限。 - su:允许用户切换到其他用户的身份,需要输入目标用户的密码。
- sudo:以超级用户身份执行命令,通常用于获取管理员权限执行特定操作,如安装软件或修改系统文件。使用时需输入当前用户的密码。
- passwd:用于修改用户密码,可以使用
passwd username
命令来为指定用户设置新密码。
4.查看系统资源命令
top
: 实时显示系统中各个进程的资源占用状况,如CPU和内存使用率。htop
: 相比top
命令,htop
提供了更多功能和更友好的界面。free
: 显示系统的总内存、已使用内存和空闲内存等信息。df
: 显示磁盘分区的容量、已用空间和可用空间等信息。ps
: 结合aux
或elf
参数查看当前运行的所有进程及其资源占用情况。ifconfig
: 查看网络接口的配置信息。netstat
: 查看网络统计信息,包括传输的数据量和错误数。kill
: 强行终止僵尸进程或同时终止所有子进程。sar
: 查看历史CPU使用情况。iotop
: 监控磁盘I/O使用情况。
5.查看网络命令
- 查看网络配置:
- 使用
ifconfig
命令可以查看网络接口信息,包括IP地址、子网掩码和广播地址等。 - 使用
hostname
命令可以查看或设置系统的主机名称。 route
命令用于查看路由表条目,帮助理解数据包是如何在网络中传输的。netstat
命令可以显示网络连接情况,包括活动的TCP连接、监听的服务器等。ss
命令提供socket统计信息,是netstat
的替代工具,能够更快速地获取相关信息。
- 使用
- 测试网络连接:
- ping:检查网络是否通畅,测试网络连接速度。常用格式:
ping 目标IP或域名
- telnet:探测指定IP地址是否开放指定的端口。尝试建立到指定主机和端口的TCP连接。常用格式:
telnet 目标IP 端口号
。示例:telnet www.example.com 80
。 - curl:查看接口可用情况,模拟HTTP行为。向指定的URL发送HTTP请求,并接收服务器的响应。常用格式:
curl http://域名或者IP
(默认80端口),curl https://域名或者IP
(默认443端口)。示例:curl www.example.com
。 - traceroute:命令用于跟踪数据包从源到目的地的路径,可以帮助诊断网络故障点。
- nslookup:命令用于进行DNS域名解析,可以查询域名对应的IP地址。
- ping:检查网络是否通畅,测试网络连接速度。常用格式:
- 使用网络:
ip
命令是Linux中用于配置网络的强大工具,可以用来配置IP地址、子网掩码和网关等。例如,使用ip addr
可以查看网络接口和它们的IP地址,使用ip route
可以添加或删除路由表项。ifconfig
命令除了查看网络接口信息外,也可以用来临时配置IP地址,但这种配置在重启计算机或网络服务后会失效。
6.文件夹/文件操作命令
- 切换目录:使用
cd
命令来切换到不同的目录。例如,cd /
将切换到根目录,cd ~
或cd
将切换到用户的主目录。 - 查看目录内容:
ls
命令用于列出目录中的文件和子目录。pwd
命令显示当前工作目录的完整路径。 - 创建目录:使用
mkdir
命令创建新的目录。如果需要创建多级目录,可以使用-p
选项,如mkdir -p a/b/c
。 - 删除目录:要删除空目录,可以使用
rmdir
命令;如果要删除包含文件的目录,可以使用rm -r
命令。 - 复制文件或目录:
cp
命令用于复制文件或目录。复制目录时,需要加上-r
选项以递归复制。 - 移动或重命名文件或目录:使用
mv
命令可以移动文件到另一个目录或对文件/目录进行重命名。 - 查看文件内容:如
cat
用于显示文件内容,可以同时查看多个文件或将它们合并成一个文件。more
和less
则用于分页显示文件内容,尤其适合查看较长的文件。 - 目录操作:
ls
列出当前目录下的文件和子目录;cd
切换当前工作目录;pwd
显示当前工作目录的路径;mkdir
创建新目录;rmdir
删除空目录。 - 文件复制、移动和删除:
cp
用于复制文件或目录,mv
可以移动或重命名文件或目录,而rm
则用于删除不需要的文件或目录。 - 修改文件或目录权限:
chmod
用于改变文件或目录的访问权限,chown
用来修改文件或目录的所有者。 - 查找和搜索:
find
命令在目录中搜索文件,并执行指定的操作。grep
用于在文件中搜索指定的字符串。 - 文本处理:
cut
移除文件的部分内容,sort
自动分类文本,uniq
移除已分类文本中的重复 - 创建链接文件:
ln
命令用于创建硬链接或符号链接(软链接)。 - 删除文件:使用
rm
命令删除文件。小心使用该命令,因为它会永久删除文件。
7.必备文件编辑命令
- 打开或新建文件:通过输入
vi filename
来打开名为filename的文件,如果文件不存在则会创建一个新文件。 - 进入编辑模式:在打开文件后,按
i
、a
或o
键可以进入插入模式(Insert mode),这时可以开始输入或修改文本。 - 保存文件:要保存文件,首先按
Esc
键返回到命令模式(Command mode),然后输入:w filename
将更改保存到指定文件,或者输入:wq
来保存并退出vi编辑器。 - 快速复制粘贴一行:
- 首先,确保你处于
vi
或vim
的命令模式(Command mode)。按Esc
键可以确保你处于此模式。 - 将光标移动到要复制的行。
- 输入
yy
来复制当前行。 - 将光标移动到你要粘贴的位置。
- 输入
p
来粘贴刚才复制的内容。
- 首先,确保你处于
- 删除行:在命令模式下,可以使用
dd
命令删除当前行,或者dNd
删除当前行及其下的N行。 - 恢复和重做:在命令模式下,输入
u
可恢复上一次的操作,而输入p
则可以重做之前被撤销的操作。 - 移动光标:在命令模式下,
h
或Ctrl+p
用于向上移动,j
或Ctrl+n
向下移动,w
向右移动,b
向左移动。 - 翻页查看:使用
Page Up
和Page Down
键可以上下翻页查看文件内容。 - 退出不保存:如果想放弃所有更改并退出编辑器,可以在命令模式下输入
:q!
然后回车。 - 其他命令:除了
vi
,还有如cat
,more
,head
,tail
等命令用于查看文本内容,其中cat
用于显示短的纯文本文件,more
用于分页查看较长的文件,head
用于查看文件的前几行,而tail
用于查看文件的最后几行或实时刷新文件内容。
8.压缩解压文件命令
- zip和unzip:
- 压缩:
zip [选项] 压缩包名 源文件或源目录
。例如,zip myfile.zip myfile.txt
将myfile.txt文件压缩成myfile.zip。 - 解压缩:
unzip [选项] 压缩包名
。例如,unzip myfile.zip
将myfile.zip文件解压。
- 压缩:
- tar:
- 打包:
tar cvf FileName.tar DirName
。例如,tar cvf mytar.tar mydir/
将mydir目录打包成mytar.tar。 - 解压:
tar xvf FileName.tar
。例如,tar xvf mytar.tar
将mytar.tar文件解压。
- 打包:
- gzip和gunzip:
- 压缩:
gzip FileName
。例如,gzip myfile.txt
将myfile.txt文件压缩成myfile.txt.gz。 - 解压缩:
gunzip FileName.gz
或gzip -d FileName.gz
。例如,gunzip myfile.txt.gz
将myfile.txt.gz文件解压。
- 压缩:
- bzip2和bunzip2:
- 压缩:
bzip2 -z FileName
。例如,bzip2 -z myfile.txt
将myfile.txt文件压缩成myfile.txt.bz2。 - 解压缩:
bzip2 -d FileName.bz2
或bunzip2 FileName.bz2
。例如,bunzip2 myfile.txt.bz2
将myfile.txt.bz2文件解压。
- 压缩: