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

embedded/2024/10/11 4:44:24/

由于最近接了一个笔试,发现笔试可能涉及到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" ]; thenecho "It's John"
fifor i in {1..5}; doecho "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 -htotal        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 1500inet 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 packets1  192.168.0.1  1.154 ms  1.382 ms  1.479 ms2  10.0.0.1  2.689 ms  2.710 ms  2.799 ms3  ...$ nslookup google.com
Server:		8.8.8.8
Address:		8.8.8.8#53Non-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 被恢复)


http://www.ppmy.cn/embedded/125706.html

相关文章

Hive数仓操作(十三)

一、JSON 数据 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;在不同的编程语言之间进行数据传输时非常通用和常用。JSON 格式简单直观&#xff0c;易于阅读和编写&#xff0c;并且可以被大多数编程语言轻松解析和生成。 1.…

大语言模型简介

大语言模型简介 今天我们来聊一聊大语言模型。大语言模型是一种能够处理和理解自然语言的深度学习模型&#xff0c;专门设计用来理解、生成和处理自然语言。 人工智能、机器学习和深度学习 想要理解什么是大语言模型&#xff0c;我们首先要弄清楚几个经常容易被搞混的概念&a…

初级前端面试常见问题(上岸某公司)

一、HTML5CSS篇 1.css隐藏元素方法 display:none position:absolute 移除到可视区域之外 visibility:hidden z-index:负值&#xff0c;用其他元素遮盖 opacity:0 clip/clip-…

【JDK17 | 7】Java 17 深入剖析:基础概述与新特性实战

引言 Java 自 1995 年发布以来,经过多次版本迭代,已成为企业级应用开发的首选语言。随着 Java 17 的发布,作为长期支持(LTS)版本,它带来了许多新特性和增强功能,极大地提升了开发效率和代码可读性。本篇文章将详细介绍 Java 17 的重要概念、安装步骤以及一些核心新特性…

python写的window小工具-一键设置ip自动获取ip

最近有个需求,笔记本在公司上网需要设置固定ip&#xff0c;拿回家之后又要设置自动获取ip&#xff0c;有些美女同事根本就不知道怎么设置&#xff0c;所以我打算开发一个一键设置的小软件供大家使用。 但是不会c&#xff0c;也不会c#&#xff0c;更加不会vb&#xff0c;不可能…

嵌入式开发:STM32 硬件 CRC 使用

测试平台&#xff1a;STM32G474系列 STM32硬件的CRC不占用MCU的资源&#xff0c;计算速度快。由于硬件CRC需要配置一些选项&#xff0c;配置不对就会导致计算结果错误&#xff0c;导致使用上没有软件计算CRC方便。但硬件CRC更快的速度在一些有时间资源要求的场合还是非…

Django-rest-framework(DRF)怎么使用redis

一、redis作用 Redis&#xff0c;作为一款开源的内存数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。以下是Redis的主要作用&#xff1a; 1、高速缓存 Redis能够极大地加速数据的读取速度&#xff0c;因为它将数据存储在内存中通过缓存热点数据&#xff…

运维工具之ansible

Ansible 1.什么是ansible? ​ ansible是基于ssh架构的自动化运维工具&#xff0c;由python语言实现&#xff0c;通过ansible可以远程批量部署等。 2.部署前提 ​ 控制端需要安装ansible,被控制端要开启ssh服务&#xff0c;并允许远程登录&#xff0c;被管理主机需要安装py…