1. Linux 入门概述
1.1 Linux和Windows区别
Linux 是典型的多用户、多任务系统;其设计哲学是一切皆文件。
1.2 Linux 目录结构
Linux 系统中一切皆文件,最顶层的根目录用 / 表示。常见的重要目录包括:
/bin&/sbin:存放经常使用的命令可执行文件。/sbin中的s表示 Super User,存放系统管理员使用的系统管理程序。/home:普通用户的家目录。每个普通用户都有自己的目录,一般以账号命名。/root:超级管理员(系统管理员)的用户主目录。/etc:所有的系统管理所需要的环境配置文件和子目录。/usr:用户的很多应用程序和文件都放在这个目录下,类似于 Windows 下的 Program Files 目录。/tmp:存放一些临时文件,过一段时间会自动清除。/opt:主要用于安装可选的或第三方应用程序(如 MySQL 数据库等)。/var:存放经常变动的文件,包括各种日志文件。/mnt:用于临时挂载别的文件系统(如 U 盘、移动硬盘等)。
2. APT 软件包管理器
APT(Advanced Packaging Tools)是 Debian/Ubuntu 系列自带的软件包管理器,可以自动下载、配置、安装二进制或者源代码格式的软件包。
基本命令与实操:
- 更新可用软件包列表:
sudo apt update - 安装软件包:
# 比如安装 net-tools 包(包含 ifconfig 等命令) # -y 参数表示不确认直接安装 sudo apt install net-tools -y - 卸载软件包:
# -y 参数表示不确认直接卸载 sudo apt remove net-tools -y - 搜索软件包:
sudo apt search net-tools - 显示软件包细节:
sudo apt show net-tools
3. 常用基本命令
3.1 帮助命令
man(Manual Packages):获取命令用法、程序功能、配置文件规范等说明。- 语法:
man [页编号] [命令或配置文件] - 举例:
man ls(查看 ls 帮助)、man 2 write(查看系统调用 write 帮助)。
- 语法:
help:获取 Shell 内建命令(如 cd、echo等没有单独可执行文件的命令)的帮助信息。- 语法:
help [内建命令] - 举例:
help cd
- 语法:
3.2 常用快捷键
Ctrl + L/clear:清屏。Ctrl + C/Q:停止进程 / 退出当前命令。TAB键:命令补全或路径提示,防止敲错。上下方向键:查找执行过的历史命令。Ctrl + U:清除当前行敲击的命令。
3.3 文件与目录操作
pwd:显示当前工作目录的绝对路径。zxf@ubuntu:~/桌面$ pwd /home/zxf/桌面ls:列出目录的内容。- 选项:
-a显示全部文件(连同隐藏档);-l长数据串列出包含属性与权限(简写为ll);-R递归列出子目录。
zxf@ubuntu:~/桌面$ ls -al # 或者直接使用 ll zxf@ubuntu:~/桌面$ ll- 选项:
cd:切换目录。cd /bin/:绝对路径跳转。cd ~或cd:回到自己的家目录。cd -:回到上一次所在的目录。cd ..:回到当前目录的上一级。cd -P:跳转到软连接对应的实际物理路径。
mkdir:创建新的目录。- 选项:
-p创建多层目录(如果父目录不存在会自动创建)。
zxf@ubuntu:~/桌面$ mkdir test zxf@ubuntu:~/桌面$ mkdir -p test/b/bb/bbb- 选项:
touch:创建空文件。zxf@ubuntu:~/桌面$ touch test/a/note.txtcp:复制文件或目录。- 选项:
-r递归复制整个文件夹。
zxf@ubuntu:~/桌面$ cp test/a/note.txt test/b/ zxf@ubuntu:~/桌面$ cp -r test/b/ ./- 选项:
rm:删除文件或目录。- 选项:
-r递归删除目录及其内容;-f强制删除不提示。
zxf@ubuntu:~/桌面$ rm b/note.txt zxf@ubuntu:~/桌面$ rm -r b/- 选项:
mv:移动文件与目录 或 重命名。# 重命名 zxf@ubuntu:~/桌面$ mv test/a/note.txt test/a/note2.txt # 移动文件 zxf@ubuntu:~/桌面$ mv test/a/note2.txt ./
3.4 文件内容查看与编辑
cat:查看整个文件内容。- 选项:
-n显示所有行的行号。
zxf@ubuntu:~/桌面$ cat -n /etc/passwd- 选项:
tail:输出文件尾部内容。- 选项:
-n <行数>输出尾部n行;-F实时追踪/监视文件的新增追加内容。
zxf@ubuntu:~/桌面$ tail -n 2 /etc/passwd zxf@ubuntu:~/桌面$ tail -F note.txt- 选项:
echo:输出内容到控制台。- 选项:
-e支持反斜线控制字符转换(如\n换行,\t制表符)。
zxf@ubuntu:~/桌面$ echo -e "hello\nworld"- 选项:
>与>>:输出重定向。>:覆盖写入(原内容丢失)。>>:追加写入(追加到文件末尾)。
zxf@ubuntu:~/桌面$ ls -l > note.txt zxf@ubuntu:~/桌面$ echo hello >> note.txt
3.5 软链接与历史命令
ln -s:创建软链接(相当于 Windows 的快捷方式)。zxf@ubuntu:~/桌面$ ln -s test/a/note.txt ./ # 删除软链接时注意不要加尾部的 / zxf@ubuntu:~/桌面$ rm note.txthistory:查看执行过的所有历史命令。zxf@ubuntu:~/桌面$ history
4. VI/VIM 编辑器
VIM 是在 Linux 中非常强大的文本编辑器。
- 模式切换:打开文件默认进入一般模式。按
i/a/o进入编辑模式,按Esc退出编辑回到一般模式。在一般模式下按:、/进入命令模式。
4.1 一般模式(常用快捷键)
yy:复制当前行;y数字y(如y3y):复制从当前行向下3行。p:粘贴到光标所在行的下方。dd:删除当前行;d数字d(如d3d):删除光标后3行。u:撤销上一步操作。shift + 6(^):移动到当前行的行头。shift + 4($):移动到当前行的行尾。shift + g(G):跳转到文件的最后一行;1 + shift + g跳转到第一行。
4.2 编辑模式
i:在当前光标前插入;a:在光标后插入。o:在当前光标的下一行新建一行插入。
4.3 命令模式
:w:保存。:q:正常退出(未修改时)。:q!:强制退出,放弃保存修改的内容。:wq或:wq!:强制保存并退出。:set nu/:set nonu:显示行号 / 关闭行号。/%s/old/new/g:全局替换匹配到的old内容为new。/关键字:查找指定词,按n找下一个,N找上一个。
5. 用户与用户组管理命令
5.1 用户管理
- root 用户:系统的超级管理员,具有最高权限。Ubuntu 默认锁定 root 密码。
- 设置 root 密码:
sudo passwd root - 切换用户:
su 用户名(不改变环境变量),su - 用户名(切换且获取完整环境变量)。 - sudo:允许普通用户临时以 root 权限执行命令(推荐用法)。
- 设置 root 密码:
useradd:添加新用户。- 选项:
-m自动创建用户家目录;-g加入特定组。
root@ubuntu:~# useradd -m tangseng- 选项:
passwd:设置用户密码。root@ubuntu:~# passwd tangsengid:查看用户是否存在及用户 uid、gid 组信息。root@ubuntu:~# id tangsenguserdel:删除用户。- 选项:
-r删除用户的同时删除其主目录及相关文件。
root@ubuntu:~# userdel -r tangseng- 选项:
usermod:修改用户信息。- 选项:
-l修改用户名;-d修改家目录。
root@ubuntu:~# usermod -l pengyuyan huge- 选项:
5.2 用户组管理
groupadd:新增组。root@ubuntu:~# groupadd xitianqujinggroupdel:删除组。root@ubuntu:~# groupdel xitianqujinggroupmod:修改组信息。- 选项:
-n新组名 老组名。
root@ubuntu:~# groupmod -n xitian xitianqujing- 选项:
usermod -g:修改用户所属的主组。root@ubuntu:~# usermod -g xitian zhubajie
6. 文件权限管理
6.1 文件属性理解
使用 ll(ls -l)查看时,首列显示的 10 个字符代表权限:
比如 -rwxr-xr--
- 第 1 位表示类型:
-代表文件,d代表目录,l代表软链接。 - 第 2-4 位:属主(Owner/User)权限。
- 第 5-7 位:属组(Group)权限。
- 第 8-10 位:其他人(Other)权限。
权限字母含义:
r(读,权重为4):文件可查看;目录可以ls查看内容。w(写,权重为2):文件可修改;目录内可新建/删除/重命名文件。x(执行,权重为1):文件可作为程序执行;目录可以cd进入。
6.2 改变权限 (chmod)
- 字符修改法:
u所有者,g所有组,o其他人,a所有人。+添加,-减少,=直接赋予。
zxf@ubuntu:~/桌面$ chmod u+x passwd # 给属主增加执行权限 zxf@ubuntu:~/桌面$ chmod u-x,o+x passwd # 剥夺属主执行权限,给其他人加上 - 数字修改法(最常用):r=4, w=2, x=1
zxf@ubuntu:~/桌面$ chmod 765 passwd # u=7(rwx), g=6(rw), o=5(rx) zxf@ubuntu:~/桌面$ chmod -R 777 test/ # -R 递归,赋予文件夹下所有文件最高权限
6.3 改变所有者与所属组 (chown / chgrp)
chown:改变文件所有者。zxf@ubuntu:~/桌面$ sudo chown root note.txt zxf@ubuntu:~/桌面$ sudo chown -R root:root test/ # 同时改变属主和属组并递归chgrp:单纯改变文件所属组。zxf@ubuntu:~/桌面$ sudo chgrp zxf tt.txt
7. 搜索查找命令
7.1 find (递归查找文件)
- 语法:
find [搜索范围] [选项]- 按名称:
-name - 按属主:
-user - 按大小:
-size(+n 大于,-n 小于)
# 在当前目录查找所有 txt 文件 zxf@ubuntu:~/桌面$ find ./ -name "*.txt" # 查找当前目录下大小超过 200 字节的文件 zxf@ubuntu:~/桌面$ find ./ -size "+200c" - 按名称:
7.2 grep 与 管道符 |
- 管道符
|:将前一个命令的输出结果交给后一个命令处理。 grep:文本内容过滤搜索。- 选项:
-n显示匹配行号。
zxf@ubuntu:~/桌面$ cat passwd | grep -n "wu" zxf@ubuntu:~/桌面$ ll | grep "zx"- 选项:
8. 压缩和解压类 (tar)
Linux 常用的打包格式为 .tar.gz。
- 打包并压缩:
-zcvf(z=gzip格式,c=打包,v=显示过程,f=指定文件名)# 将 tt.txt 和 tt2.txt 压缩为 tt.tar.gz zxf@ubuntu:~/桌面$ tar -zcvf tt.tar.gz tt.txt tt2.txt - 解压:
-zxvf(x=解包提取)# 解压到当前目录 zxf@ubuntu:~/桌面$ tar -zxvf test.tar.gz # -C 选项用于指定解压到的目标目录 zxf@ubuntu:~/桌面$ tar -zxvf test.tar.gz -C ./work
9. 磁盘与网络类命令
9.1 磁盘空间查看 (df / du)
df(disk free):查看系统磁盘整体挂载和使用情况。# -h 人性化单位(GB/MB/KB)显示 atguigu@ubuntu:~$ df -hdu(disk usage):查看特定目录或文件的磁盘占用大小。# -a 显示目录下所有的文件及子目录大小 atguigu@ubuntu:~$ du -a /opt/software/
9.2 网络配置与测试
ifconfig:查看当前服务器的网络接口和 IP 信息。atguigu@ubuntu:~$ ifconfigping:测试与目标主机的网络连通性。atguigu@ubuntu:~$ ping www.baidu.comhostname:查看或临时修改服务器主机名。atguigu@ubuntu:~$ hostname
10. 进程线程管理
10.1 查看进程 (ps / top)
ps:进程状态查询。ps -aux:侧重查看系统中所有进程的 CPU占用率 和 物理/虚拟内存占比。ps -ef:侧重查看 进程的父子关系 (PPID、PID)。
zxf@ubuntu:~/桌面$ ps -aux zxf@ubuntu:~/桌面$ ps -ef | grep tailtop:动态实时查看系统健康状态与进程负载(相当于 Windows 任务管理器)。top -d 1:每隔 1 秒更新一次。- 交互指令:
P(按CPU排序),M(按内存排序),q(退出)。
10.2 杀死进程 (kill / killall)
kill:通过进程 ID (PID) 杀掉进程。# -9 表示强迫进程立即停止 zxf@ubuntu:~/桌面$ kill -9 3976killall:通过进程名称批量杀掉所有匹配的进程。zxf@ubuntu:~/桌面$ killall tail
10.3 内存与端口查看
free -m:以 MB 为单位查看服务器总内存、已用、空闲和缓存大小。zxf@ubuntu:~/桌面$ free -mnetstat:网络统计信息和端口占用情况。# 查看某端口号是否被占用 atguigu@ubuntu:~$ sudo netstat -nlp | grep 端口号 # 查看某进程(PID)在调用哪些网络信息 atguigu@ubuntu:~$ netstat -anp | grep 进程号
11. 路径操作与定时任务
11.1 路径名称截取
basename:去掉全路径,提取出文件本身的名称。zxf@ubuntu:~$ basename /home/zxf/note.txt # 输出: note.txt zxf@ubuntu:~$ basename /home/zxf/tt.txt .txt # 也可以切除后缀输出: ttdirname:去掉文件名,提取出绝对路径目录部分。zxf@ubuntu:~$ dirname /home/zxf/banzhang.txt # 输出: /home/zxf
11.2 定时任务 (crontab)
crontab 用于设定按时间周期自动执行的后台任务。
- 编辑任务:
atguigu@ubuntu:~$ crontab -e - 查看任务:
atguigu@ubuntu:~$ crontab -l - 时间格式:五个星号
* * * * *分别代表分 时 日 月 周。- 特殊符号:
*任意时间,,不连续时间,-范围时间,*/n每隔多久。
- 特殊符号:
- 案例应用:
# 每天凌晨 4 点每隔 10 分钟执行一次命令 */10 4 * * * /path/to/command # 每隔1分钟向指定文件追加数字11 */1 * * * * /bin/echo "11" >> /opt/module/bailongma.txt