目录
一、Linux基本认识
1.1 Linux是什么?
Linux是一种开源的类Unix操作系统,基于GNU通用公共许可证(GPL)发布。它最初由Linus Torvalds在1991年开发,如今已成为全球广泛使用的操作系统之一,尤其在服务器、嵌入式系统和桌面环境中。
1.2 Linux的特点
-
开源免费:源代码公开,用户可以自由修改和分发。
-
多用户多任务:支持多个用户同时登录和操作,资源分配合理。
-
稳定性高:系统运行稳定,适合长时间运行的服务器。
-
安全性强:通过用户权限管理、防火墙等技术保障系统安全。
-
兼容性好:支持多种硬件平台和软件应用。
1.3 Linux发行版
Linux有多种发行版,如Ubuntu、Debian、Fedora、CentOS等。Ubuntu是基于Debian的发行版,以易用性和用户友好性著称,适合新手入门。
二、安装Ubuntu
2.1 安装方式
-
桌面版:适用于个人电脑,提供图形界面。
-
服务器版:无图形界面,适合服务器部署。
2.2 安装步骤
-
下载ISO文件
访问 Ubuntu官网 下载最新版本的ISO文件。 -
制作启动盘
使用工具(如Rufus)将ISO文件写入USB闪存盘。 -
启动安装
将USB插入电脑,重启并进入BIOS设置,选择从USB启动。 -
选择安装选项
-
选择“Install Ubuntu”。
-
选择语言和地区。
-
选择安装类型(如“Erase disk and install Ubuntu”或“Something else”)。
-
-
完成安装
-
设置用户名和密码。
-
安装完成后重启电脑。
-
三、更改apt下载源
3.1 什么是apt?
apt(Advanced Package Tool)是Ubuntu的包管理工具,用于安装、更新和卸载软件包。
3.2 更改apt源
默认情况下,apt使用国外的服务器下载软件包,速度可能较慢。可以将源更改为国内的镜像服务器,如阿里云、清华大学等。
-
编辑源列表文件
打开终端,输入以下命令:sudo nano /etc/apt/sources.list
-
替换源地址
将文件中的内容替换为以下内容(以阿里云为例):deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
-
更新软件包列表
保存文件后,运行以下命令更新源:sudo apt update
四、设置中文显示与输入
4.1 设置中文显示
-
安装语言包
打开终端,输入以下命令:sudo apt install language-pack-zh-hans
-
配置语言环境
编辑~/.bashrc
文件,添加以下内容:export LANG=zh_CN.UTF-8 export LANGUAGE=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8
-
重新加载配置
输入以下命令使配置生效:source ~/.bashrc
4.2 设置中文输入法
-
安装输入法
推荐安装fcitx
输入法框架和sunpinyin
拼音输入法:sudo apt install fcitx fcitx-sunpinyin
-
配置输入法
打开“系统设置”->“语言和区域”,选择fcitx
作为默认输入法。 -
切换输入法
使用Ctrl+Space
切换中英文输入。
五、磁盘目录说明
5.1 Linux文件系统结构
Linux采用树形目录结构,根目录为/
,主要目录及其用途如下:
目录 | 用途 |
---|---|
/ | 根目录,所有文件和目录的起点 |
/bin | 存放用户可执行文件(Binary) |
/sbin | 存放系统可执行文件(Superuser Binary) |
/etc | 存放系统配置文件 |
/home | 用户主目录,每个用户都有一个独立目录 |
/usr | 用户程序和文件的存放位置 |
/var | 存放可变数据,如日志文件、邮件等 |
/tmp | 临时文件存放位置 |
/boot | 存放启动文件 |
/dev | 设备文件存放位置 |
/mnt | 临时挂载目录 |
/media | 挂载外部设备(如U盘) |
六、常用指令案例
6.1 mkdir
-
功能:创建目录。
-
语法:
mkdir [选项] 目录名
-
示例:
mkdir testdir # 创建一个名为testdir的目录 mkdir -p a/b/c # 创建多级目录,若父目录不存在则自动创建
6.2 ps
-
功能:显示当前进程状态。
-
语法:
ps [选项]
-
示例:
ps -aux # 显示所有进程的详细信息 ps -ef # 显示所有进程的完整信息
6.3 ls
-
功能:列出目录内容。
-
语法:
ls [选项] [目录]
-
示例:
ls # 列出当前目录内容 ls -l # 以长格式显示目录内容 ls -a # 显示隐藏文件
6.4 cd
-
功能:切换目录。
-
语法:
cd [目录]
-
示例:
cd /home/user # 切换到用户主目录 cd .. # 返回上一级目录 cd ~ # 返回当前用户的主目录
6.5 cp
-
功能:复制文件或目录。
-
语法:
cp [选项] 源文件 目标文件
-
示例:
cp file1 file2 # 复制file1为file2 cp -r dir1 dir2 # 复制目录dir1到dir2
6.6 mv
-
功能:移动或重命名文件或目录。
-
语法:
mv [选项] 源文件 目标文件
-
示例:
mv file1 file2 # 将file1重命名为file2 mv dir1 /home/user # 将dir1移动到用户主目录
6.7 rm
-
功能:删除文件或目录。
-
语法:
rm [选项] 文件或目录
-
示例:
rm file1 # 删除文件file1 rm -r dir1 # 删除目录dir1及其内容
6.8 cat
-
功能:查看文件内容。
-
语法:
cat [文件]
-
示例:
cat file1 # 查看file1的内容
6.9 grep
-
功能:搜索文本内容。
-
语法:
grep [选项] 搜索内容 文件
-
示例:
grep "hello" file1 # 在file1中搜索包含"hello"的内容
6.10 chmod
-
功能:修改文件或目录的权限。
-
语法:
chmod [权限] 文件
-
示例:
chmod 755 file1 # 设置文件权限为755(所有者可读写执行,其他用户可读执行)
6.11 touch
-
功能:创建空文件或更新文件的时间戳。
-
语法:
touch [选项] 文件名
-
示例:
touch file.txt # 创建一个名为file.txt的空文件 touch -t 202301010000 file.txt # 修改文件的时间戳为2023年1月1日00:00
6.12 echo
-
功能:在终端输出文本或变量内容。
-
语法:
echo [选项] [文本或变量]
-
示例:
echo "Hello, World!" # 输出文本 echo $HOME # 输出环境变量HOME的值
6.13 pwd
-
功能:显示当前工作目录的完整路径。
-
语法:
pwd
-
示例:
pwd # 输出当前目录路径,例如:/home/user
6.14 find
-
功能:在指定目录中查找文件或目录。
-
语法:
find [路径] [选项] [表达式]
-
示例:
find /home -name "*.txt" # 在/home目录下查找所有扩展名为.txt的文件 find . -type d -name "test*" # 在当前目录下查找所有以test开头的目录
6.15 grep
-
功能:在文件中搜索匹配的文本。
-
语法:
grep [选项] 搜索内容 [文件]
-
示例:
grep "error" /var/log/syslog # 在/var/log/syslog文件中搜索包含"error"的行 grep -i "hello" file.txt # 在file.txt中搜索包含"hello"的行(忽略大小写)
6.16 sed
-
功能:流编辑器,用于文本替换和编辑。
-
语法:
sed [选项] '命令' [文件]
-
示例:
sed 's/old/new/g' file.txt # 将file.txt中的"old"替换为"new"(全局替换) sed -i 's/old/new/' file.txt # 直接修改文件内容,将"old"替换为"new"
6.17 awk
-
功能:文本处理工具,用于格式化和提取数据。
-
语法:
awk [选项] '模式 {动作}' [文件]
-
示例:
awk '{print $1}' file.txt # 打印file.txt中每行的第一个字段 awk -F: '{print $1, $3}' /etc/passwd # 使用":"作为分隔符,打印用户名称和用户ID
6.18 sort
-
功能:对文件内容进行排序。
-
语法:
sort [选项] [文件]
-
示例:
sort file.txt # 按字典顺序对file.txt中的内容排序 sort -n file.txt # 按数字顺序排序 sort -r file.txt # 按逆序排序
6.19 uniq
-
功能:去除重复行。
-
语法:
uniq [选项] [文件]
-
示例:
sort file.txt | uniq # 去除重复行 uniq -c file.txt # 统计每行出现的次数
6.20 head
和 tail
-
功能:显示文件的前几行或后几行。
-
语法:
head [选项] [文件] tail [选项] [文件]
-
示例:
head -n 5 file.txt # 显示file.txt的前5行 tail -n 10 file.txt # 显示file.txt的最后10行 tail -f /var/log/syslog # 实时查看日志文件的更新
6.21 tar
-
功能:归档和压缩文件。
-
语法:
tar [选项] [文件或目录]
-
示例:
tar -czvf archive.tar.gz dir/ # 压缩目录dir为archive.tar.gz tar -xzvf archive.tar.gz # 解压archive.tar.gz
6.22 df
-
功能:显示磁盘空间使用情况。
-
语法:
df [选项]
-
示例:
df -h # 以易读的格式显示磁盘空间使用情况
6.23 du
-
功能:显示文件或目录的磁盘使用情况。
-
语法:
du [选项] [文件或目录]
-
示例:
du -sh dir/ # 显示dir目录的总大小 du -h --max-depth=1 dir/ # 显示dir目录下每个子目录的大小
6.24 top
和 htop
-
功能:显示系统资源使用情况和运行的进程。
-
语法:
top htop
-
示例:
top # 显示系统资源和进程信息 htop # 更友好的界面,需要安装:sudo apt install htop
6.25 netstat
和 ss
-
功能:显示网络连接和端口状态。
-
语法:
netstat [选项] ss [选项]
-
示例:
netstat -tuln # 显示所有监听的TCP和UDP端口 ss -tuln # 功能类似,但更高效
6.26 ping
-
功能:测试网络连接。
-
语法:
ping [选项] [主机名或IP地址]
-
示例:
ping -c 4 google.com # 向google.com发送4个ICMP请求
6.27 curl
和 wget
-
功能:从网络下载文件或发送HTTP请求。
-
语法:
curl [选项] [URL] wget [选项] [URL]
-
示例:
curl -O https://example.com/file.zip # 下载文件 wget https://example.com/file.zip # 功能类似
6.28 man
-
功能:显示命令的手册页。
-
语法:
man [命令]
-
示例:
man ls # 显示ls命令的手册页
6.29 history
-
功能:显示命令历史记录。
-
语法:
history
-
示例:
history # 显示最近执行的命令
6.30 alias
-
功能:创建命令的别名。
-
语法:
alias [别名]=[命令]
-
示例:
alias ll='ls -l' # 创建别名ll,用于显示长格式列表
七、常用工具
7.1 SSH远程连接
-
功能:通过SSH协议远程连接到服务器。
-
语法:
ssh 用户名@服务器地址
-
示例:
ssh user@192.168.1.100 # 连接到IP为192.168.1.100的服务器
7.2 SCP远程拷贝
-
功能:通过SSH协议安全地拷贝文件。
-
语法:
scp [选项] 源文件 用户名@服务器地址:目标路径
-
示例:
scp file1 user@192.168.1.100:/home/user # 将file1拷贝到远程服务器的/home/user目录
7.3 PyCharm安装
-
下载安装包
访问 PyCharm官网,下载社区版(免费)。 -
安装PyCharm
解压下载的文件,进入解压目录,运行安装脚本:tar -xvf pycharm-community-*.tar.gz cd pycharm-community-* ./bin/pycharm.sh
-
添加启动器
通过图形界面将PyCharm添加到应用启动器。
7.4 Vim文本编辑器
-
安装Vim:
sudo apt install vim
-
基本操作:
-
i
:进入编辑模式。 -
Esc
:退出编辑模式。 -
:wq
:保存并退出。 -
:q!
:强制退出不保存。
-
7.5 虚拟环境与项目部署
-
安装Python虚拟环境工具:
sudo apt install python3-venv
-
创建虚拟环境:
python3 -m venv myenv
-
激活虚拟环境:
source myenv/bin/activate
-
安装项目依赖:
pip install -r requirements.txt
-
部署项目:
-
使用
gunicorn
或uwsgi
部署Flask/Django项目。 -
使用
nginx
作为反向代理服务器。
-
总结
以上是Ubuntu操作系统的入门指南,涵盖从安装到常用工具的使用。希望这些内容能帮助你快速上手Ubuntu。