Linux 高阶命令-常用命令详解

Linux 高阶命令-常用命令详解

思维导图版本

which

which 命令用于查看可执行命令的文件位置。

示例

bash

bash 复制代码
which ls
# 输出: /bin/ls

which python
# 输出: /usr/bin/python

find

find 命令用于查找文件。

常用选项

  • -name: 按文件名查找
  • -size: 按文件大小查找
  • 通配符支持: * (匹配任意字符), ? (匹配单个字符)

示例

bash

arduino 复制代码
# 查找当前目录下所有.txt文件
find . -name "*.txt"

# 查找/home目录下大于100MB的文件
find /home -size +100M

# 查找/etc目录下以.conf结尾的文件
find /etc -name "*.conf"

# 查找当前目录下名为test.txt的文件
find . -name test.txt

df

df 命令用于显示磁盘空间使用情况。

示例

bash

bash 复制代码
# 显示所有文件系统的磁盘使用情况
df -h

# 仅显示ext4文件系统的信息
df -t ext4

du

du 命令用于查看文件和目录的磁盘使用情况。

示例

bash

bash 复制代码
# 查看当前目录下所有文件和目录的大小
du -sh *

# 查看指定目录的大小
du -sh /home/user

# 查看目录的详细大小信息
du -h --max-depth=1 /var/log

grep

grep 命令用于文本搜索。

常用选项

  • -n: 显示匹配行的行号
  • -i: 忽略大小写
  • -v: 反向匹配(显示不包含模式的行)

示例

bash

perl 复制代码
# 在文件中搜索特定内容
grep '命运' aa.txt

# 使用管道搜索
cat aa.txt | grep '命运'

# 多重过滤(取交集)
cat aa.txt | grep '命运' | grep '硬币'

# 显示行号
cat a.txt | grep -n '123'

# 在文件列表中搜索
ls | grep '.doc'

# 在pip包列表中搜索
pip list | grep 'ss'

# 在find结果中搜索
find /etc | grep 'ss'

echo

echo 命令用于输出文本。

重定向操作符

  • >: 覆盖输出到文件
  • >>: 追加输出到文件

示例

bash

bash 复制代码
# 输出文本到屏幕
echo "Hello World"

# 覆盖输出到文件
echo "一些文字" > a.txt

# 追加输出到文件
echo "一串文字" >> a.txt

# 多行文本输出
echo -e "第一行\n第二行" > multiline.txt

vim

Vim 是一个强大的文本编辑器,有三种工作模式。

工作模式

  1. 命令模式:默认模式,用于导航和操作文本

    • dd - 删除当前行
    • yy - 复制当前行
    • p - 粘贴
    • u - 撤销
  2. 输入模式:用于编辑文本内容

    • i 进入插入模式
    • a 进入追加模式
    • o 在当前行下方新建一行
  3. 底线命令模式:用于保存文件、退出等操作

    • :w - 保存文件
    • :q - 退出vim
    • :wq:x - 保存并退出
    • :q! - 强制退出不保存
    • :wq! - 强制保存并退出(需要文件所有者权限)
    • :set number - 显示行号

示例

bash

ini 复制代码
# 打开文件
vim filename.txt

# 在vim中常用操作
i # 进入插入模式
[编辑文本]
ESC # 返回命令模式
:wq # 保存并退出

用户管理

创建用户

bash

bash 复制代码
# 添加用户
useradd xxx1
useradd xxx2

# 设置用户密码
passwd xxx1
passwd xxx2

# 查看用户信息
getent passwd

# 查看当前用户信息
id

# 查看特定用户信息
id username

切换用户

bash

bash 复制代码
# 切换到其他用户
su username

# 切换到root用户
su -

借用管理员权限

bash

bash 复制代码
# 以管理员权限执行命令
sudo command

# 编辑sudoers文件(谨慎操作)
sudo visudo

删除用户

bash

bash 复制代码
# 删除用户
userdel username

# 删除用户及其主目录
userdel -r username

群组管理

用户组操作

bash

csharp 复制代码
# 添加用户组
groupadd group1

# 查看用户组
getent group

# 将用户添加到附加组
usermod -aG group1 username

# 删除用户组
groupdel group1

权限管理

chmod - 更改文件权限

bash

bash 复制代码
# 权限表示法
# u:用户 g:组 o:其他 a:所有
# r:读(4) w:写(2) x:执行(1)

# 添加执行权限
chmod +x filename

# 设置具体权限
chmod 755 filename  # rwxr-xr-x
chmod 644 filename  # rw-r--r--

# 递归修改目录权限
chmod -R 755 directory/

chown - 更改文件所有者

bash

bash 复制代码
# 更改文件所有者
chown root hello.txt

# 更改文件所属组
chown :root hello.txt

# 同时更改所有者和组
chown root:itheima hello.txt

# 递归更改目录所有者
chown -R root test_directory

链接

软链接(符号链接)

bash

bash 复制代码
# 创建软链接
ln -s /path/to/file link_name

# 示例
ln -s /var/log/syslog log_link

硬链接

bash

bash 复制代码
# 创建硬链接
ln file new_file

# 示例
ln original.txt backup.txt

进程管理

查看进程

bash

bash 复制代码
# 查看所有进程
ps -ef

# 查看特定用户进程
ps -u username

# 查看进程树
pstree

# 动态查看进程
top

历史命令

使用历史命令

bash

bash 复制代码
# 查看命令历史
history

# 搜索历史命令
history | grep 'apt'

# 执行历史中的特定命令
!number  # 执行第number条历史命令
!string  # 执行最近以string开头的命令

# 搜索历史命令(交互式)
Ctrl+R
# 然后输入搜索关键词,按左右键选择

其他实用技巧

命令组合示例

bash

bash 复制代码
# 查找并处理文件
find . -name "*.log" -exec grep -l "error" {} ;

# 统计文件行数
wc -l filename

# 排序和去重
sort file.txt | uniq

# 监控日志文件变化
tail -f /var/log/syslog

通配符使用

bash

bash 复制代码
# 匹配任意字符
cp *.txt /backup/

# 匹配单个字符
ls file?.txt

# 匹配字符范围
ls file[0-9].txt

# 匹配多个模式
ls {*.txt,*.log}

希望这份详细的文档能帮助您更好地理解和使用Linux命令。每个命令都有更多高级选项,可以通过man command(如man find)查看完整手册。

相关推荐
Doro再努力34 分钟前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
wypywyp41 分钟前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
Doro再努力1 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene1 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.1 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧1 小时前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮2 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
XiaoFan0122 小时前
免密批量抓取日志并集中输出
java·linux·服务器
souyuanzhanvip2 小时前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器
HalvmånEver4 小时前
Linux:线程互斥
java·linux·运维