Linux 常用命令详解:从基础操作到进阶应用

Linux 常用命令详解:从基础操作到进阶应用

简介

Linux 是一个强大且灵活的操作系统,它在服务器、开发环境和个人计算机中得到了广泛的应用。Linux 的命令行界面提供了丰富的工具和命令,可以帮助用户高效地管理系统、处理文件、监控性能和进行网络操作。熟练掌握这些命令是每个 Linux 用户和系统管理员的必备技能。

本文详细介绍了 Linux 系统中常用的命令,涵盖文件和目录操作、文件查看和编辑、系统信息和管理、用户和权限管理、网络管理、压缩和解压缩、进程管理、搜索和查找等方面的内容。通过本文,你将能够全面了解并熟练使用这些命令,从而提高在 Linux 环境中的工作效率。

一、文件和目录操作

1. ls

列出目录内容。

  • ls -l:详细列表显示。
    $ ls -l
    total 12
    drwxr-xr-x 2 user user 4096 Jul 24 12:34 dir1
    -rw-r--r-- 1 user user  123 Jul 24 12:34 file1.txt
    
  • ls -a:显示所有文件,包括隐藏文件。
    $ ls -a
    .  ..  .hidden  dir1  file1.txt
    
  • ls -lh:以人类可读的格式详细列表显示。
    $ ls -lh
    total 12K
    drwxr-xr-x 2 user user 4.0K Jul 24 12:34 dir1
    -rw-r--r-- 1 user user  123 Jul 24 12:34 file1.txt
    
2. cd

切换目录。

  • cd [directory]:切换到指定目录。
    $ cd /path/to/directory
    
  • cd ..:返回上一级目录。
    $ cd ..
    
  • cd ~:切换到当前用户的主目录。
    $ cd ~
    
3. pwd

显示当前工作目录路径。

$ pwd
/home/user
4. mkdir

创建新目录。

  • mkdir [directory]:创建目录。
    $ mkdir new_directory
    
  • mkdir -p [directory]:创建多级目录。
    $ mkdir -p parent_directory/child_directory
    
5. rmdir

删除空目录。

  • rmdir [directory]:删除指定空目录。
    $ rmdir empty_directory
    
6. cp

复制文件或目录。

  • cp [source] [destination]:复制文件或目录。
    $ cp file1.txt backup.txt
    
  • cp -r [source] [destination]:递归复制目录。
    $ cp -r dir1 backup_dir1
    
7. mv

移动或重命名文件或目录。

  • mv [source] [destination]:移动或重命名文件或目录。
    $ mv file1.txt new_file1.txt
    $ mv file1.txt /new/path/
    
8. rm

删除文件或目录。

  • rm [file]:删除文件。
    $ rm file1.txt
    
  • rm -r [directory]:递归删除目录及其内容。
    $ rm -r dir1
    
  • rm -rf [directory]:强制递归删除目录及其内容(危险操作)。
    $ rm -rf dir1
    
9. touch

创建空文件或更新文件的时间戳。

  • touch [file]:创建空文件或更新时间戳。
    $ touch newfile.txt
    

二、文件查看和编辑

1. cat

查看文件内容。

  • cat [file]:查看文件内容。
    $ cat file1.txt
    
  • cat [file1] [file2] > [newfile]:合并文件内容。
    $ cat file1.txt file2.txt > combined.txt
    
2. more

分屏查看文件内容。

  • more [file]:分屏查看文件内容。
    $ more file1.txt
    
3. less

分屏查看文件内容,支持向前翻页。

  • less [file]:分屏查看文件内容。
    $ less file1.txt
    
4. head

查看文件开头部分。

  • head [file]:查看文件开头部分。
    $ head file1.txt
    
  • head -n 10 [file]:查看文件的前 10 行。
    $ head -n 10 file1.txt
    
5. tail

查看文件结尾部分。

  • tail [file]:查看文件结尾部分。
    $ tail file1.txt
    
  • tail -n 10 [file]:查看文件的最后 10 行。
    $ tail -n 10 file1.txt
    
  • tail -f [file]:实时查看文件更新(常用于日志文件)。
    $ tail -f logfile.txt
    
6. nano

简单文本编辑器。

  • nano [file]:编辑文件。
    $ nano file1.txt
    
7. vim

功能强大的文本编辑器。

  • vim [file]:编辑文件。
    $ vim file1.txt
    
Vim 基本操作指令
  • 模式切换

    • i:进入插入模式。
    • Esc:返回普通模式。
    • ::进入命令模式。
  • 移动光标

    • h:左移光标。
    • j:下移光标。
    • k:上移光标。
    • l:右移光标。
    • w:移动到下一个单词开头。
    • b:移动到前一个单词开头。
    • 0:移动到行首。
    • $:移动到行尾。
  • 编辑文本

    • x:删除当前字符。
    • dd:删除当前行。
    • dw:删除当前单词。
    • u:撤销上一步操作。
    • yy:复制当前行。
    • p:粘贴。
  • 搜索和替换

    • /pattern:向下搜索模式。
    • ?pattern:向上搜索模式。
    • n:下一个匹配。
    • N:上一个匹配。
    • :s/old/new:替换当前行第一个匹配。
    • :s/old/new/g:替换当前行所有匹配。
    • :%s/old/new/g:替换整个文件中的所有匹配。
  • 文件操作

    • :w:保存文件。
    • :q:退出。
    • :wq:保存并退出。
    • :q!:强制退出(不保存)。
8. emacs

另一个功能强大的文本编辑器。

  • emacs [file]:编辑文件。
    $ emacs file1.txt
    

三、系统信息和管理

1. top

实时显示系统中的进程信息。

  • top:显示实时系统状态。
    $ top
    
  • htop:增强版的 top,需要单独安装。
    $ htop
    
2. df

显示文件系统磁盘空间使用情况。

  • df:显示磁盘使用情况。
    $ df
    
  • df -h:以人类可读的格式显示磁盘使用情况。
    $ df -h
    
3. du

显示目录或文件的磁盘使用情况。

  • du [directory]:显示磁盘使用情况。
    $ du /path/to/directory
    
  • du -h [directory]:以人类可读的格式显示。
    $ du -h /path/to/directory
    
  • du -sh [directory]:显示目录或文件的总大小。
    $ du -sh /path/to/directory
    
4. free

显示系统内存使用情况。

  • free:显示内存使用情况。
    $ free
    
  • free -h:以人类可读的格式显示。
    $ free -h
    
5. uname

显示系统信息。

  • uname -a:显示所有系统信息。
    $ uname -a
    
6. uptime

显示系统运行时间和负载。

  • uptime:显示系统运行时间、用户数和负载。
    $ uptime
    
7. dmesg

查看系统启动信息和内核日志。

  • dmesg:显示内核环缓冲区的消息。
    $ dmesg
    
8. systemctl

管理系统服务(适用于 systemd 系统)。

  • systemctl start [service]:启动服务。
    $ systemctl start nginx
    
  • systemctl stop [service]:停止服务。
    $ systemctl stop nginx
    
  • systemctl restart [service]:重启服务。
    $ systemctl restart nginx
    
  • systemctl status [service]:查看服务状态。
    $ systemctl status nginx
    
  • systemctl enable [service]:开机自动启动服务。
    $ systemctl enable nginx
    
  • systemctl disable [service]:取消开机自动启动服务。
    $ systemctl disable nginx
    
  • systemctl start firewall:启动防火墙服务。
    $ systemctl start firewalld
    

四、用户和权限管理

1. whoami

显示当前用户。

  • whoami:显示当前登录用户的用户名。
    $ whoami
    
2. id

显示用户信息。

  • id [user]:显示指定用户的信息。
    $ id
    $ id username
    
3. chmod

修改文件权限。

  • chmod [permissions] [file]:修改文件权限。
    $ chmod 755 script.sh
    
  • chmod +x [file]:添加执行权限。
    $ chmod +x script.sh
    
chmod 权限详细示例
  • 权限符号含义

    • r:读权限(4)。
    • w:写权限(2)。
    • x:执行权限(1)。
    • -:无权限(0)。
  • 权限组合

    • 7:读、写、执行(4 + 2 + 1)。
    • 6:读、写(4 + 2)。
    • 5:读、执行(4 + 1)。
    • 4:读(4)。
    • 3:写、执行(2 + 1)。
    • 2:写(2)。
    • 1:执行(1)。
    • 0:无(0)。
  • 示例

    $ chmod 755 script.sh  # 所有者读写执行,组用户和其他用户读执行
    $ chmod 644 file.txt   # 所有者读写,组用户和其他用户读
    $ chmod +x script.sh   # 所有用户添加执行权限
    
4. chown

修改文件所有者和组。

  • chown [owner]:[group] [file]:修改文件所有者和组。
    $ chown user:group file1.txt
    
chown 权限详细示例
  • 更改文件所有者

    $ chown newuser file1.txt  # 更改所有者为 newuser
    
  • 更改文件所有者和组

    $ chown newuser:newgroup file1.txt  # 更改所有者为 newuser,组为 newgroup
    
  • 递归更改目录及其内容的所有者

    $ chown -R newuser:newgroup /path/to/directory  # 递归更改
    
5. chgrp

修改文件所属组。

  • chgrp [group] [file]:修改文件所属组。
    $ chgrp group file1.txt
    
chgrp 权限详细示例
  • 更改文件所属组

    $ chgrp newgroup file1.txt  # 更改组为 newgroup
    
  • 递归更改目录及其内容的所属组

    $ chgrp -R newgroup /path/to/directory  # 递归更改
    
6. sudo

以超级用户权限执行命令。

  • sudo [command]:以超级用户权限执行命令。
    $ sudo apt update
    
7. su

切换用户。

  • su [user]:切换到指定用户。
    $ su -
    $ su - username
    
8. crontab

定时任务管理。

  • crontab -e:编辑当前用户的定时任务。
    $ crontab -e
    
crontab 示例
  • 添加每小时运行的任务

    0 * * * * /path/to/command
    
  • 添加每天午夜运行的任务

    0 0 * * * /path/to/command
    
  • 添加每周日凌晨 3 点运行的任务

    0 3 * * 0 /path/to/command
    

五、网络管理

1. ping

测试与主机的连接。

  • ping [host]:测试与主机的连接。
    $ ping google.com
    
2. ifconfig

显示或配置网络接口(旧版)。

  • ifconfig:显示网络接口信息。
    $ ifconfig
    
3. ip

显示或配置网络接口(推荐)。

  • ip addr:显示网络接口信息。
    $ ip addr
    
  • ip link set [interface] up:启用网络接口。
    $ ip link set eth0 up
    
  • ip link set [interface] down:禁用网络接口。
    $ ip link set eth0 down
    
4. netstat

显示网络连接、路由表和接口统计信息。

  • netstat -tuln:显示所有监听的 tcp 和 udp 端口。
    $ netstat -tuln
    
5. ss

显示网络连接和套接字统计信息(更现代的工具)。

  • ss:显示套接字信息。
    $ ss
    
  • ss -tuln:显示所有监听的 tcp 和 udp 套接字。
    $ ss -tuln
    
6. wget

下载文件。

  • wget [url]:下载指定 URL 的文件。
    $ wget http://example.com/file.zip
    
7. curl

传输数据。

  • curl [url]:传输数据或获取 URL 内容。
    $ curl http://example.com
    

六、压缩和解压缩

1. tar

打包和解压文件。

  • tar -cvf [archive.tar] [file/dir]:创建 tar 包。
    $ tar -cvf archive.tar file1.txt dir1
    
  • tar -xvf [archive.tar]:解压 tar 包。
    $ tar -xvf archive.tar
    
  • tar -czvf [archive.tar.gz] [file/dir]:创建 gzip 压缩的 tar 包。
    $ tar -czvf archive.tar.gz file1.txt dir1
    
  • tar -xzvf [archive.tar.gz]:解压 gzip 压缩的 tar 包。
    $ tar -xzvf archive.tar.gz
    
2. gzip

压缩和解压缩文件。

  • gzip [file]:压缩文件。
    $ gzip file1.txt
    
  • gunzip [file.gz]:解压 gzip 文件。
    $ gunzip file1.txt.gz
    
3. zip

创建和解压 zip 文件。

  • zip [archive.zip] [file/dir]:创建 zip 包。
    $ zip archive.zip file1.txt dir1
    
  • unzip [archive.zip]:解压 zip 包。
    $ unzip archive.zip
    

七、进程管理

1. ps

显示当前进程。

  • ps:显示当前会话的进程。
    $ ps
    
  • ps aux:显示所有进程。
    $ ps aux
    
  • ps -ef:显示详细格式的进程信息。
    $ ps -ef
    
2. kill

终止进程。

  • kill [pid]:终止指定进程。
    $ kill 1234
    
  • kill -9 [pid]:强制终止指定进程。
    $ kill -9 1234
    
3. pkill

根据进程名称终止进程。

  • pkill [process_name]:终止指定名称的进程。
    $ pkill firefox
    
4. bg

将进程放到后台运行。

  • bg:将最近的作业放到后台运行。
    $ bg
    
5. fg

将后台进程放到前台运行。

  • fg:将最近的作业放到前台运行。
    $ fg
    
6. jobs

显示当前会话的后台作业。

  • jobs:显示当前会话的后台作业。
    $ jobs
    

八、搜索和查找

1. find

搜索文件和目录。

  • find [path] -name [pattern]:按名称搜索文件或目录。
    $ find /home/user -name "*.txt"
    
  • find [path] -type [f/d] -name [pattern]:按类型和名称搜索文件或目录。
    $ find /home/user -type f -name "*.txt"
    
  • find [path] -mtime [n]:搜索 n 天前修改的文件。
    $ find /home/user -mtime -7  # 最近 7 天修改的文件
    
2. grep

在文件中搜索文本。

  • grep [pattern] [file]:在文件中搜索模式。
    $ grep "search_term" file1.txt
    
  • grep -r [pattern] [directory]:递归搜索目录中的模式。
    $ grep -r "search_term" /path/to/directory
    
  • grep -i [pattern] [file]:忽略大小写进行搜索。
    $ grep -i "search_term" file1.txt
    
3. locate

快速查找文件或目录(基于数据库)。

  • locate [pattern]:查找文件或目录。
    $ locate "*.txt"
    
4. awk

适用于数据提取和报告生成。

  • awk '{print $1}' [file]:打印文件的第一列。
    $ awk '{print $1}' file1.txt
    
  • awk -F: '{print $1}' /etc/passwd:以冒号为分隔符,打印 /etc/passwd 文件的第一列。
    $ awk -F: '{print $1}' /etc/passwd
    
5. sed

流编辑器,用于文本替换、插入、删除等操作。

  • sed 's/old/new/g' [file]:将文件中的所有 “old” 替换为 “new”。
    $ sed 's/old/new/g' file1.txt
    
  • sed -n '1,5p' [file]:显示文件的第 1 到第 5 行。
    $ sed -n '1,5p' file1.txt
    

九、其他

1. alias

创建命令别名。

  • alias [name]='[command]':创建命令别名。
    $ alias ll='ls -la'
    
  • unalias [name]:删除命令别名。
    $ unalias ll
    
2. date

显示或设置系统日期和时间。

  • date:显示当前日期和时间。
    $ date
    
  • date -s "2023-07-24 18:30:00":设置系统日期和时间。
    $ date -s "2023-07-24 18:30:00"
    
3. history

显示命令历史。

  • history:显示命令历史。
    $ history
    
  • !n:执行历史中的第 n 条命令。
    $ !100
    
4. echo

输出文本。

  • echo [text]:输出文本。
    $ echo "Hello, World!"
    
  • echo $PATH:显示环境变量值。
    $ echo $PATH
    
5. man

查看命令的手册页。

  • man [command]:查看命令的手册页。
    $ man ls
    
6. exit

退出终端。

  • exit:退出当前终端会话。
    $ exit
    

结论

以上列出了 Linux 系统中一些常用的命令及其用法,并提供了详细的例子。这些命令涵盖了文件和目录操作、文件查看和编辑、系统信息和管理、用户和权限管理、网络管理、压缩和解压缩、进程管理、搜索和查找以及其他常见任务。掌握这些命令可以极大地提高你在 Linux 环境中的工作效率。建议在实际操作中多加练习,以便熟练掌握这些命令。

通过本文,你不仅可以了解各个命令的基本用法,还能掌握一些高级技巧,从而在实际工作中更加得心应手。希望本文对你学习和使用 Linux 命令有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebKit的暗黑魅力:全面拥抱Dark Mode

WebKit的暗黑魅力:全面拥抱Dark Mode 在当今数字时代,用户越来越注重个性化体验和视觉舒适度。暗黑模式(Dark Mode)作为一种新兴的界面风格,以其减轻视觉疲劳和节省电量的特点,迅速受到用户的青睐。WebKit…

学习笔记 韩顺平 零基础30天学会Java(2024.7.25)

P425 枚举类引出 举了一个例子,季节类创建对象,但是根据Java的规则,可以设置春夏秋冬以外的对象,而且可以修改,这样就会不符合实际,因此引出枚举 P426 自定义枚举类 1.构造器私有化,使外面没有办…

深入解析 GPT-4o mini:强大功能与创新应用

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

【Vue实战教程】之Vue项目中的异步请求

Vue的异步请求 1 axios的安装与使用 Axios是一个基于promise的HTTP库,主要用来向服务端发起请求,可以在请求中做更多可控的操作,例如拦截请求等。 Axios可以使用在浏览器和node.js中,Vue、React等前端框架的广泛普及&#xff0c…

C++ 列式内存布局数据存储格式 Arrow

Apache Arrow 优点 : 高性能数据处理: Arrow 使用列式内存布局,这特别适合于数据分析和查询操作,因为它允许对数据进行高效批量处理,减少CPU缓存未命中,从而提升处理速度。 零拷贝数据共享: Arrow …

【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常

问题现象 客户的java日志中有如下异常信息: 问题的风险及影响 对正常的业务流程无影响,但是影响druid的merge sql功能(此功能会将sql语句中的字面量替换为绑定变量,然后将替换以后的sql视为同一个,然后用做执行性能统…

Vue3扁平化Tree组件的前端分页实现

大家好,我是小卷。得益于JuanTree的扁平化设计,在数据量很大的情况下除了懒加载,使用前端分页也是一种解决渲染性能问题的可选方案。 用法 要实现的文档: 分页效果: 实现 新增属性: 组件setup方法中新增…

程序员加班现象:成因、影响与应对策略

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 加班的成因 加班的影响 应对策略 结语 我的其他博客 前言 在现代科技行业中,加班现象已成为一个普遍存在的问题…

proxy是什么,vue3是怎么使用proxy的

Vue 3 使用了 Proxy 作为其响应式系统的基础,这是因为 Proxy 提供了一种更为强大和灵活的方式来实现对象和数组的响应式特性。下面是 Proxy 的一些关键特性以及它们是如何在 Vue 3 中体现并提升响应式性能的: 什么是 Proxy? Proxy 是 ES6 中…

配置sublime的中的C++编译器(.sublime-build),实现C++20

GCC 4.8: 支持 C11 (部分) GCC 4.9: 支持 C11 和 C14 (部分) GCC 5: 完全支持 C14 GCC 6: 支持 C14 和 C17 (部分) GCC 7: 支持 C17 (大部分) GCC 8: 完全支持 C17,部分支持 C20 GCC 9: 支持更多的 C20 特性 GCC 10: 支持大部分 C20 特性 GCC 11: 更全面地支持 C20 …

Android 线程池的面试题 线程线程池面试题

1.为什么要用线程池 降低资源消耗:通过复用线程,降低创建和销毁线程的损耗。 提高响应速度:任务不需要等待线程创建就能立即执行。 提高线程的可管理性:使用线程池可以进行统一的分配、调优和监控。 2. 线程池执行流程&#xff08…

ES中的数据类型学习之ARRAY

Arrays | Elasticsearch Guide [7.17] | Elastic 中文翻译 :Array Elasticsearch 5.4 中文文档 看云 Arrays In Elasticsearch, there is no dedicated array data type. Any field can contain zero or more values by default, however, all values in the a…

SpringBoot 自动配置原理

一、Condition Condition 是在 Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操 作。 思考: SpringBoot 是如何知道要创建哪个 Bean 的?比如 SpringBoot 是如何知道要创建 RedisTemplate 的? …

mysql的B+树索引结构介绍

一、B树 特性: 所有的叶子结点中包含了全部关键字的信息,非叶子节点只存储键值信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接,所有的非终端结点可以看成是索引部分&#xff0…

MySQL数据库基本用法

了解数据库基本概念 什么是数据库? • 长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库” MySQL数据库的特点 • 开源免费,小巧但功能齐全 • 可在Windows和Linux系统上运行 • 操作方便,…

Hive 的 classpath 简介

Hive的classpath是Hive运行时用于查找所需类和资源文件的路径集合。它包含了Hive运行所需的所有JAR文件和配置文件的位置。理解和管理Hive的classpath对于确保Hive正常运行、添加自定义库或解决类加载问题非常重要。 以下是关于Hive classpath的一些关键点: 默认位…

昇思25天学习打卡营第22天|munger85

LSTMCRF序列标注 我们希望得到这个模型来对词进行标注,B是开始,I是实体词的非开始,O是非实体词。 我们首先需要lstm对序列里token的记忆,和计算每个token发到crf的分数,发完了再退出来,最后形成1模型。那么…

Python主页

文章目录 Python全套内容整理 Python全套内容整理 杂项 代码风格 Python之禅命名规范 基础语法 数值运算赋值判断循环函数 参数(*args、**krags、\、*) 包 import 基础类 字符串 str类方法 列表元组字典集合 集合速览 进阶功能 异常文件类 常见模块 ossys 常见模块&#xf…

免费可视化工具大显身手:公司财务报表一键生成

面对海量的财务数据,如何快速、准确地提炼出有价值的信息,并以直观易懂的方式呈现给管理层及利益相关者,成为了每一家企业面临的重大挑战。 传统财务报表编制过程繁琐,不仅耗时耗力,还容易出错。而一些可视化工具&…

Web服务统一身份认证协议设计与实现

Web服务统一身份认证协议设计与实现 “Design and Implementation of Unified Web Service Authentication Protocol” 完整下载链接:Web服务统一身份认证协议设计与实现 文章目录 Web服务统一身份认证协议设计与实现摘要第一章 绪论1.1 研究背景1.2 研究目的和意义1.3 研究内…