Linux常见命令

Linux常见命令

文件与目录操作
  • ls:列出目录内容
  • cd:切换目录 cd .. 返回上一级 cd /.../.../.../
  • pwd:显示当前工作目录
  • mkdir:创建目录
  • rm:删除文件或目录
  • cp:复制文件或目录
  • mv:移动或重命名文件或目录
  • touch:创建空文件或更新文件时间戳
文件查看与编辑
  • cat:查看文件内容 cat ./...(./表示当前目录)
  • less / more:分页查看文件
  • head / tail:查看文件开头或结尾
  • grep:文本搜索
  • vim / nano:文本编辑器
权限与用户管理
  • chmod:修改文件权限
  • chown:修改文件所有者
  • useradd / userdel:用户管理
  • passwd:修改用户密码
  • sudo:以超级用户权限执行命令
系统信息与管理
  • uname:显示系统信息
  • top / htop:实时监控系统资源
  • df / du:磁盘空间查看
  • free:内存使用情况
  • ps / kill:进程管理 ps -e显示正在执行的全部命令 kill 结束进程
网络相关命令
  • ping:测试网络连通性
  • ifconfig / ip:网络接口配置
  • netstat / ss:网络连接状态
  • wget / curl:文件下载
  • ssh:远程登录
压缩与归档
  • tar:文件打包与解压
  • gzip / gunzip:文件压缩与解压
  • zip / unzip:ZIP格式压缩与解压
包管理工具
  • apt / yum / dnf:包安装与管理(Debian/RedHat系)
  • dpkg / rpm:底层包管理工具
其他实用命令
  • find:文件搜索
  • history:查看命令历史
  • alias:命令别名
  • cron / crontab:定时任务管理
总结与进阶建议
  • 常用命令组合示例
  • Shell脚本基础
  • 推荐学习资源(手册、在线教程等)

为什么linux有的命令执行需要绝对路径,有的命令可以直接执行

命令执行路径的机制

在Linux系统中,命令是否可以直接执行或需要绝对路径,主要取决于系统的PATH环境变量和命令的存储位置。PATH是一个由冒号分隔的目录列表,系统会在这些目录中查找可执行文件。

内置命令与外部命令的区别

Linux命令分为内置命令(Shell内置)和外部命令(独立可执行文件)。内置命令如cdecho直接由Shell解释执行,无需路径查找。外部命令如lsvim存储在文件系统中,需通过PATH查找或指定路径。

PATH环境变量的作用

当输入命令时,Shell会按以下顺序查找:

  1. 检查是否为内置命令:如果是,直接执行。
  2. 搜索PATH中的目录:依次在PATH列出的目录中查找匹配的可执行文件。
  3. 未找到时报错:若命令既非内置也未在PATH中,提示"command not found"。

需要绝对路径的情况

  • 命令不在PATH中 :例如自定义脚本存放在/home/user/scripts,若该目录未加入PATH,则需通过/home/user/scripts/myscript.sh执行。
  • 同名命令优先级问题 :PATH中靠前的目录优先匹配。若需强制使用特定路径下的命令(如/usr/local/bin/python而非/usr/bin/python),需指定绝对路径。
  • 安全性考虑 :防止恶意程序劫持PATH中的常见命令名(如伪造ls),有时需显式指定/bin/ls

直接执行命令的条件

  • 命令位于PATH包含的目录 :例如/bin/usr/bin等默认在PATH中,存放lscp等常用命令。
  • 命令为Shell内置 :如cdalias等无需外部文件。

修改PATH添加自定义路径

若需频繁使用某目录下的命令,可将其加入PATH:

复制代码
export PATH=$PATH:/path/to/your/directory

将此行添加到~/.bashrc~/.bash_profile可永久生效。

检查命令类型的工具

  • type命令:显示命令来源(内置、别名或外部文件)。

    复制代码
    type cd   # 输出"cd is a shell builtin"
    type ls   # 输出"ls is /bin/ls"
  • which命令:定位外部命令的路径。

    复制代码
    which python

命令是否需要绝对路径取决于其是否内置或位于PATH中。理解PATH机制和命令类型可有效管理命令执行方式,避免"command not found"错误。

ls-l命令

ls -l 是 Linux/Unix 系统中的命令,用于以长格式(long listing format)列出目录内容。以下是详细说明:

命令功能

显示当前目录下文件和子目录的详细信息,包括:

  • 文件类型和权限
  • 硬链接数
  • 所有者
  • 所属组
  • 文件大小(字节)
  • 最后修改时间
  • 文件名或目录名

输出示例

bash 复制代码
-rw-r--r-- 1 user group  4096 Jun 12 10:30 file.txt
drwxr-xr-x 2 user group  4096 Jun 10 14:25 directory

各字段含义

  1. 权限字段 (如 -rw-r--r--):

    • 第1字符:文件类型(- 普通文件,d 目录,l 符号链接等)
    • 后续9字符:三组权限(所有者/组/其他用户的读r、写w、执行x权限)
  2. 硬链接数:指向该文件的硬链接数量。

  3. 所有者:文件所属用户。

  4. 所属组:文件所属用户组。

  5. 文件大小 :默认以字节为单位,可结合 -h 参数显示易读单位(如 KB/MB)。

  6. 修改时间:最后一次内容修改的时间戳。

  7. 名称:文件名或目录名。

常用组合参数

  • ls -lh:以易读格式显示文件大小(如 4K、1M)
  • ls -la:显示所有文件(包括隐藏文件)
  • ls -lt:按修改时间排序(最新优先)
  • ls -lR:递归列出子目录内容

注意事项

  • 权限中的 x 对目录表示"可进入",对可执行文件表示"可运行"。
  • 显示的颜色可通过 --color=auto 参数控制(默认通常已启用)。
相关推荐
驰羽2 小时前
NAT模式下VMware的虚拟机DNS解析失败的问题解决
linux·网络·dns
菜鸡00013 小时前
安装G2O
linux
iru3 小时前
nginx被报CVE-2025-1695漏洞,检查后反馈是误报
运维·nginx
誰能久伴不乏3 小时前
epoll 学习踩坑:`fcntl` 设置非阻塞到底用 `F_SETFL` 还是 `F_SETFD`?
linux·服务器·网络·c++·tcp/ip
阿巴~阿巴~4 小时前
告别命令行:Navicat可视化操作数据库(附安装使用教程)
服务器·数据库·mysql·navicat·可视化操作数据库
TG:@yunlaoda360 云老大4 小时前
华为云国际站代理商跨境容灾是如何实现的?
服务器·数据库·华为云
来鸟 鸣间4 小时前
MIPI D-PHY 理解
linux·音视频·sensor·mipi
么么...4 小时前
在 Ubuntu 上安装 Docker 并部署 MySQL 容器
linux·运维·经验分享·笔记·mysql·ubuntu·docker
云川之下5 小时前
【网络】华为交换机S3700与S5700详解
服务器·网络·华为