萱仔求职复习系列——2 Linux的常用方法(包含基础进阶高级操作)

由于最近接了一个笔试,发现笔试可能涉及到Linux,我准备临时抱佛脚一下赶紧复习一下Linux的用法哈哈。Linux 的基础用法包含文件系统操作、权限管理、网络配置、进程管理等基本命令;进阶操作包括网络调试、包管理、服务管理和用户管理等;高级操作则涵盖 Shell 脚本编程、计划任务设置、文件系统管理以及日志分析等功能。

一、基础命令

# 文件和目录操作
cd <directory>    # 进入指定目录
cd ..             # 返回上一级目录
cd ~              # 返回 home 目录
pwd               # 显示当前目录路径

ls                # 列出当前目录下的文件和目录
ls -l             # 列出详细信息(权限、拥有者、大小、修改时间等)
ls -a             # 列出所有文件,包括隐藏文件

touch <filename>    # 创建一个空文件
cp <source> <dest>  # 复制文件
mv <source> <dest>  # 移动或重命名文件
rm <filename>       # 删除文件
rm -r <directory>   # 递归删除目录
cat <filename>      # 查看文件内容

chmod 755 <file>    # 修改文件权限,rwx(读写执行)权限
chown <user>:<group> <file>   # 修改文件所属用户和用户组

# 系统状态查看
uname -a          # 查看内核版本及系统信息
df -h             # 查看磁盘使用情况
free -h           # 查看内存使用情况
uptime            # 查看系统运行时间及负载

# 查看进程
ps aux            # 查看所有运行的进程
top               # 实时显示系统资源占用情况
kill <PID>        # 结束指定进程(PID为进程号)

# 压缩与解压缩
tar -cvf archive.tar file1 file2    # 创建tar压缩包
gzip file                           # 压缩为.gz文件
tar -czvf archive.tar.gz directory   # 创建.tar.gz压缩包

tar -xvf archive.tar                # 解压tar包
tar -xzvf archive.tar.gz            # 解压tar.gz包
unzip file.zip                      # 解压.zip文件

 

cd:改变目录。cd <目录>进入某个目录,cd ..返回上一级目录,cd ~返回用户的 home 目录。

pwd:打印当前工作目录的路径。

二、进阶操作
# 网络配置与工具使用
ifconfig         # 查看网络接口配置(常用命令)
ip addr show     # 查看网络接口信息(推荐新版本)
ping <host>      # 测试与目标主机的连通性
netstat -tuln    # 查看当前监听的端口

ssh user@hostname    # 使用 SSH 远程登录到指定主机
scp <file> user@hostname:/path    # 使用 SCP 复制文件到远程主机

# 包管理器使用(以 Ubuntu/Debian 为例)
sudo apt update                    # 更新软件包列表
sudo apt upgrade                   # 升级系统中的软件
sudo apt install <package_name>    # 安装软件包
sudo apt remove <package_name>     # 移除软件包
sudo apt autoremove                # 自动清除无用的软件包

# 权限与用户管理
sudo adduser <username>        # 添加用户
sudo passwd <username>         # 设置或修改用户密码
sudo usermod -aG <group> <user>    # 添加用户到组
sudo deluser <username>        # 删除用户

su <username>     # 切换到指定用户(需要该用户的密码)
sudo -i           # 以root用户身份登录
exit              # 退出当前用户会话

# 服务与进程管理
systemctl status <service>    # 查看某个服务的状态
systemctl start <service>     # 启动服务
systemctl stop <service>      # 停止服务
systemctl restart <service>   # 重启服务

ps aux                         # 查看所有进程
kill -9 <PID>                  # 强制结束某个进程
top                            # 实时查看系统资源占用
htop                           # 交互式查看进程状态(需要先安装)

三、高级操作

# Shell 编程与脚本
nano script.sh                   # 使用nano编辑器创建脚本文件
#!/bin/bash                       # 脚本头,指定脚本解释器
echo "Hello, Linux"               # 脚本内容

chmod +x script.sh                # 赋予执行权限
./script.sh                       # 运行脚本

# 变量与控制结构
name="John"
echo "Hello, $name"

if [ $name == "John" ]; then
    echo "It's John"
fi

for i in {1..5}; do
    echo "Iteration $i"
done

# 定时任务与计划任务(Cron Jobs)
crontab -e    # 编辑当前用户的定时任务列表

# Cron表达式格式
# 分 时 日 月 周 命令
# 示例:每天上午6点执行脚本
0 6 * * * /path/to/script.sh

# 文件系统管理
sudo mount /dev/sda1 /mnt    # 将/dev/sda1分区挂载到/mnt目录
sudo fdisk -l                # 列出所有磁盘的分区信息
df -h                        # 查看已挂载文件系统的使用情况

# 日志管理与分析
cat /var/log/syslog           # 查看系统日志
tail -f /var/log/syslog       # 动态查看日志的最新变化

分类总结!

touch filename.txt  # 创建空文件
mkdir dirname        # 创建新目录

---------------------------------------
# 1.2 查看文件和目录
ls -l                # 列出详细信息
ls -a                # 包括隐藏文件
cat filename.txt     # 查看文件内容
less filename.txt    # 分页查看文件内容

#输出示例

$ ls -l
total 0
-rw-r--r-- 1 user user 0 Oct 11 10:00 filename.txt

$ ls -a
.  ..  filename.txt

$ cat filename.txt
# (假设文件为空)
# (没有输出)

$ less filename.txt
# (文件内容分页显示)

--------------------------------
1.3 复制、移动和删除
cp source.txt destination.txt  # 复制文件
cp -r sourcedir/ destdir/      # 递归复制目录
mv oldname.txt newname.txt     # 移动或重命名文件
mv file.txt /path/to/newdir/   # 移动文件
rm filename.txt                  # 删除文件
rm -r dirname/                   # 递归删除目录
chmod 755 filename.txt          # 更改文件权限
chown user:group filename.txt   # 更改文件所有者
grep "search_term" filename.txt  # 搜索文本
find /path/to/search -name "filename.txt"  # 查找文件
wc filename.txt                   # 计算行数、字数和字节数
du -sh dirname/                   # 查看目录大小
sort filename.txt                 # 对文件内容进行排序
awk '{print $1}' filename.txt     # 打印第一列
sed 's/old/new/g' filename.txt    # 替换文本


#输出示例
$ grep "search_term" filename.txt
# (匹配行内容,假设没有匹配)
# (没有输出)

$ find /path/to/search -name "filename.txt"
# 输出文件路径,比如:
/path/to/search/filename.txt

$ wc filename.txt
# 输出
 0 0 0 filename.txt  # 行数、字数、字节数

$ du -sh dirname/
# 输出
12K	dirname/

$ sort filename.txt
# (文件内容按行排序输出)

$ awk '{print $1}' filename.txt
# (打印文件第一列内容)

$ sed 's/old/new/g' filename.txt
# (输出替换后的内容)
#4 系统管理
uname -a                          # 显示系统信息
top                               # 实时查看系统进程
htop                              # 增强版的 top(需额外安装)
df -h                             # 查看磁盘空间使用情况
du -sh dirname/                   # 查看目录大小
free -h                           # 查看内存使用情况
----------------------------------------------
$ uname -a
Linux hostname 5.4.0-58-generic #64-Ubuntu SMP Tue Oct 13 12:59:19 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        30G   12G   17G  43% /

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7Gi       1.5Gi       4.3Gi       211Mi       1.8Gi       5.7Gi
Swap:          2.0Gi          0B       2.0Gi

 

ifconfig                          # 查看网络接口(较老命令)
ip addr show                      # 现代网络管理命令
ping google.com                   # 检查网络连通性
traceroute google.com             # 跟踪数据包路径
nslookup google.com               # 查询 DNS 记录
curl -O http://example.com/file.txt  # 下载文件

---------------------------------------
$ ifconfig
# 输出网络接口信息,比如:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.2  netmask 255.255.255.0  broadcast 192.168.0.255
        ...

$ ip addr show
# 输出网络接口信息,类似于 ifconfig,但更详细

$ ping google.com
PING google.com (172.217.0.46) 56(84) bytes of data.
64 bytes from lga34s12-in-f14.1e100.net: icmp_seq=1 ttl=116 time=9.80 ms

$ traceroute google.com
traceroute to google.com (172.217.0.46), 30 hops max, 60 byte packets
 1  192.168.0.1  1.154 ms  1.382 ms  1.479 ms
 2  10.0.0.1  2.689 ms  2.710 ms  2.799 ms
 3  ...

$ nslookup google.com
Server:		8.8.8.8
Address:		8.8.8.8#53

Non-authoritative answer:
Name:	google.com
Address:	172.217.0.46

$ curl -O http://example.com/file.txt
# (下载文件,假设文件下载成功)
sudo useradd username             # 添加新用户
passwd username                   # 更改用户密码
sudo groupadd groupname           # 添加新组
usermod -aG groupname username    # 将用户添加到组
tar -cvf archive.tar dirname/     # 创建 tar 归档
tar -xvf archive.tar               # 解压 tar 归档
gzip filename.txt                  # 压缩文件
gunzip filename.txt.gz             # 解压缩文件

----------------------------------
$ tar -cvf archive.tar dirname/
dirname/
dirname/file1
dirname/file2

$ tar -xvf archive.tar
# 输出解压缩的文件
dirname/
dirname/file1
dirname/file2

$ gzip filename.txt
# (压缩成功,filename.txt.gz 被创建)

$ gunzip filename.txt.gz
# (解压缩成功,filename.txt 被恢复)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值