Linux简介:
Linux 是一种开源的类 Unix 操作系统内核,最初由芬兰程序员 Linus Torvalds 在1991年开发,并在随后的几十年中迅速发展成为一个庞大而多样化的操作系统生态系统。Linux 的核心是其内核,它负责管理计算机的硬件资源(如 CPU、内存、磁盘等),并提供用户空间程序运行的基础环境。
Linux 的开源特性和灵活性使其成为全球范围内广泛应用的操作系统,适用于从个人电脑、服务器、移动设备到嵌入式系统和超级计算机的多种场景。
Linux优点:
①大量可用软件及免费软件
Linux 系统上有着大量的可用软件,且绝大多数是免费的,比如 Apache、Samba、PHP、MySQL 等。
②可移植性及灵活性
Linux 系统有良好的可移植性,它几乎支持所有的 CPU 平台,这使得它便于裁剪和定制。我们可以把 Linux 放在 U 盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。
③稳定性和安全性
因为Linux 开放源代码,将所有代码放在网上,全世界的程序员都看得到,有什么缺陷和漏洞,很快就会被发现,从而成就了它的稳定性和安全注。
④命令行界面
Linux提供了强大的命令行界面(CLI),使用户能够高效地执行复杂的任务。这对于系统管理员和高级用户来说是一个巨大的优势。
⑤强大的网络功能
Linux在网络方面表现出色,支持各种网络协议和服务。它被广泛用于服务器领域,包括Web服务器、文件服务器和数据库服务器等。(呃我后面估计会写网络编程也是基于Linux的)
⑥社区支持
Linux有一个庞大的全球社区,用户可以在其中寻求帮助、分享经验和解决问题。这意味着当遇到问题时,用户通常可以快速找到解决方案。
Linux缺点:
1. 学习曲线
-
对于新手来说,Linux 的学习曲线可能较陡峭,尤其是命令行操作和系统管理。
-
需要一定的时间和精力来熟悉基本的命令和系统架构。
2. 桌面市场份额小
-
Linux 在桌面市场的份额相对较小,与 Windows 和 macOS 相比,桌面应用生态不够丰富。
-
部分商业软件(如 Adobe Photoshop、Microsoft Office 等)可能没有原生的 Linux 版本。
3. 硬件兼容性问题
-
虽然 Linux 支持大多数现代硬件,但某些硬件设备(如某些打印机、显卡驱动等)可能需要额外的配置或驱动程序。
-
部分硬件厂商可能对 Linux 支持不够积极。
4. 缺乏统一的用户界面
-
Linux 有多种桌面环境(如 GNOME、KDE、XFCE 等),不同发行版的用户体验可能有所不同。
-
这种多样性虽然提供了选择,但也可能导致用户在切换发行版时感到困惑。
5. 驱动程序支持有限
-
Linux 的驱动程序支持主要依赖于开源社区和硬件厂商的合作。
-
某些专有硬件(如特定的显卡、无线网卡等)可能需要手动安装驱动程序,或者没有最新的驱动支持。
6. 商业支持有限
-
虽然 Linux 在企业级应用中越来越受欢迎,但与商业软件相比,Linux 的商业支持可能不够完善。
-
需要专业的系统管理员来维护和管理 Linux 系统。
7. 文档和教程的碎片化
-
Linux 的文档和教程虽然丰富,但往往分散在不同的社区、论坛和博客中,缺乏统一的官方文档。
-
对于新手来说,找到合适的资源可能需要花费一些时间。
Linux基本指令:
1. 文件和目录操作
1.1 查看文件和目录
-
ls
:列出目录内容。bash复制
ls # 列出当前目录内容 ls -l # 以长格式显示(显示详细信息) ls -a # 显示隐藏文件(以 . 开头的文件) ls -lh # 以易读格式显示文件大小
-
pwd
:显示当前工作目录的路径。bash复制
pwd
-
tree
:以树状图显示目录结构(需要安装tree
工具)。bash复制
tree
1.2 切换目录
-
cd
:切换目录。bash复制
cd /path/to/directory # 切换到指定目录 cd ~ # 切换到用户主目录 cd - # 返回上一个目录
1.3 创建和删除
-
mkdir
:创建目录。bash复制
mkdir new_directory # 创建一个新目录 mkdir -p dir1/dir2 # 递归创建多级目录
-
rmdir
:删除空目录。bash复制
rmdir empty_directory
-
rm
:删除文件或目录。bash复制
rm file.txt # 删除文件 rm -r directory # 递归删除非空目录 rm -f file.txt # 强制删除文件,不提示
1.4 文件操作
-
cp
:复制文件或目录。bash复制
cp file.txt newfile.txt # 复制文件 cp -r dir1 dir2 # 递归复制目录
-
mv
:移动或重命名文件或目录。bash复制
mv file.txt newfile.txt # 重命名文件 mv file.txt /path/to/destination # 移动文件
-
touch
:创建空文件或更新文件时间戳。bash复制
touch newfile.txt
2. 文件内容查看
-
cat
:显示文件内容。bash复制
cat file.txt
-
less
:分页查看文件内容。bash复制
less file.txt
-
head
:显示文件的前几行。bash复制
head -n 10 file.txt # 显示文件的前10行
-
tail
:显示文件的后几行。bash复制
tail -n 10 file.txt # 显示文件的后10行 tail -f file.txt # 实时查看文件的新增内容(常用于日志)
-
grep
:搜索文件内容。bash复制
grep "pattern" file.txt # 在文件中搜索匹配的行 grep -r "pattern" /path # 递归搜索目录中的文件
3. 系统信息
-
uname
:显示系统信息。bash复制
uname -a # 显示所有系统信息 uname -s # 显示内核名称 uname -r # 显示内核版本
-
df
:显示磁盘空间使用情况。bash复制
df -h # 以易读的格式显示磁盘使用情况
-
du
:显示文件或目录的磁盘占用空间。bash复制
du -sh directory # 显示目录的总大小
-
free
:显示内存使用情况。bash复制
free -h # 以易读的格式显示内存使用情况
-
top
或htop
:显示系统进程和资源使用情况。bash复制
top htop # htop 是更友好的界面,需要安装
4. 用户和权限
-
whoami
:显示当前用户。bash复制
whoami
-
su
:切换用户。bash复制
su - # 切换到 root 用户 su - username # 切换到指定用户
-
chmod
:修改文件或目录权限。bash复制
chmod 755 file.txt # 修改文件权限为 rwxr-xr-x chmod +x script.sh # 为脚本添加可执行权限
-
chown
:修改文件或目录的所有者。bash复制
chown username file.txt
5. 网络操作
-
ifconfig
或ip
:显示网络接口信息。bash复制
ifconfig ip addr show
-
ping
:测试网络连接。bash复制
ping -c 4 8.8.8.8 # 向目标地址发送 4 次 ICMP 请求
-
netstat
或ss
:显示网络连接和端口信息。bash复制
netstat -tuln # 显示所有监听的 TCP/UDP 端口 ss -tuln
-
curl
或wget
:下载文件或访问网络资源。bash复制
curl -O http://example.com/file.zip wget http://example.com/file.zip
6. 其他常用命令
-
history
:显示命令历史。bash复制
history
-
clear
:清屏。bash复制
clear
-
echo
:输出文本。bash复制
echo "Hello, World!"
-
find
:查找文件或目录。bash复制
find /path -name "*.txt" # 查找指定路径下的所有 .txt 文件
-
tar
:打包和解包文件。bash复制
tar -czvf archive.tar.gz file1 file2 # 打包并压缩文件 tar -xzvf archive.tar.gz # 解压文件
7. 管道和重定向
Linux 命令可以通过管道(|
)和重定向(>
和 <
)组合使用,实现更强大的功能。
-
管道:将一个命令的输出作为另一个命令的输入。
bash复制
ps aux | grep "process_name" # 查找特定进程
-
重定向:将命令的输出保存到文件中。
bash复制
echo "Hello, World!" > file.txt # 将输出写入文件 cat file.txt >> newfile.txt # 将输出追加到文件
8. 简单示例
假设你刚刚登录到一个 Linux 系统,以下是一些简单的操作示例:
查看当前目录和文件
bash复制
pwd
ls -lh
创建新目录和文件
bash复制
mkdir my_folder
cd my_folder
touch newfile.txt
echo "Hello, Linux!" > newfile.txt
cat newfile.txt
查看系统信息
bash复制
uname -a
df -h
free -h
查看进程和网络
bash复制
top
ping -c 4 google.com