常用的 Linux 命令-程序员宅基地

技术标签: # C/C++基础强化  linux工作  运维  linux  实用技巧  服务器  Linux 命令  

目录

️1. 基础命令

2. 创建和删除

3. 执行C程序

4. 切换登录用户

5. 修改文件权限

6. GDB 常见的调试命令

7. 压缩与解压

7.1 解压

7.2 压缩

8. cp拷贝


以下是一些常用的 Linux 命令。注意:按下tab键是自动补齐后续内容。

1. 基础命令

ls:列出目录内容。

cd:改变当前工作目录。

//返回上一级目录
cd ..

pwd:显示当前工作目录的路径。

free:查看内存使用情况

ps:显示当前正在运行的进程信息

top:查看操作系统的信息,如进程、CPU占用率、内存信息等(实时)

dmesg :显示系统启动过程中内核产生的信息


2. 创建和删除

mkdir:创建新目录

//创建文件夹newfolder
mkdir newfolder

rm:删除文件或目录。其中rm用于删除文件,rm -r用于删除目录

//删除名为 file.txt 的文件
rm file.txt

//删除名为 my_folder 的目录及其所有内容,包括其中的文件和子目录。
//-r 参数表示递归地删除目录内容,即使目录中有其他文件或目录也一并删除。
//永久删除目录及其所有内容,无法恢复
rm -r my_folder

注意:有时候可能使用mkdir或者rm等等命令显示权限不够的问题,这时普遍可以在命令前加上sudo即可。


3. 执行C程序

vim:打开文本编辑器创建文件

当使用 Vim 编辑器创建文件后,退出编辑器按照以下步骤进行操作:

  1. 按下 Esc

    确保你已经按下 Esc 键,以确保你处于命令模式。

  2. 输入 :q

    如果退出不保存任何更改,然后按下 Enter 键。这会强制退出 Vim。与q!区别:如果有未保存的更改,Vim 将不会退出,而是显示一个错误消息,提示你保存或放弃更改。

  3. 输入 :wq

    如果你想保存更改并退出,然后按下 Enter 键。这将保存文件并退出 Vim。

  4. 输入 :q!

    如果退出而不保存更改,然后按下 Enter 键。这会强制退出 Vim 并丢弃所有更改。

cat:打印文件内容

gcc:编译.c 文件:在终端中输入以下命令来使用 gcc 编译 hello.c 文件

//使用 gcc 编译 hello.c 文件,将生成一个名为 hello 的可执行文件。
gcc -o hello hello.c

./:运行可执行文件:

//运行 hello 程序
./hello

【简单示例】文件夹下面创建hello.c,编译运行输出hello,最后删除。

创建

删除

【简单示例】创建文件夹myfolder,文件夹下面创建hello.c,编译运行输出hello,最后删除文件夹myfolder


4. 切换登录用户

1. su 命令:允许用户切换到其他用户身份。默认su 命令会切换到超级用户(root)身份。

使用方法:

su [选项] [用户账户名]

选项:

  • -: 在切换用户时,重新加载环境变量,类似于完全登录到新用户账户。
  • -c command:在切换用户后,执行指定的命令。
  • -l--login:模拟登录到目标用户账户,重新加载用户环境变量。

示例:

su # 切换到 root 用户
su - # 完全登录到 root 用户
su user # 切换到 user 用户
su -c "command" user # 切换到 user 用户后执行特定命令

输入exit退出

2. sudo命令:允许普通用户以超级用户(root)的权限执行特定命令。

使用方法:

sudo [选项] 命令

选项:

  • -u user:以其他用户身份执行命令。
  • -l:列出当前用户可以执行的命令。
  • -i:获取新的 root 环境。
  • -s:以 shell 模式执行命令。

示例:

sudo apt update # 以超级用户权限更新软件包列表 
sudo shutdown -r now # 以超级用户权限立即重新启动系统 
sudo -u user command # 以指定用户的身份执行命令

权限不够,则在指令前加sudo扩大权限。


5. 修改文件权限

chmod 命令用于更改文件或目录的权限

  • 权限数字/字母代表

    • 4 表示读权限 (r)
    • 2 表示写权限 (w)
    • 1 表示执行权限 (x)
  • 权限标记

    • u 表示所有者
    • g 表示用户组
    • o 表示其他用户
    • a 表示所有用户

【简单示例】假设给 file.txt 设置以下权限:

  • 所有者拥有读写权限
  • 用户组拥有读权限
  • 其他用户拥有读权限

可以使用以下命令:

//使用数字方式
chmod 644 file.txt
//使用字母方式【等价】
chmod u+rw,g+r,o+r file.txt

6. GDB 常见的调试命令

GDB是一个功能强大的调试工具,用于帮助开发人员诊断和修复程序中的错误。

 案例说明:【gdb调试】在ubuntu环境使用gdb调试一棵四层二叉树的数据结构详解-程序员宅基地

【简单示例】以一个简单的 C 语言程序为例,然后使用 GDB 进行调试。

vim example.c
gcc -g -o example example.c
./example
#include <stdio.h>
//计算阶乘
int factorial(int n) {
    if (n <= 1)
        return 1;
    else
        return n * factorial(n - 1);
}

int main() {
    int result = 0;
    int number = 5;
    result = factorial(number);
    printf("Factorial of %d is %d\n", number, result);
    return 0;
}

结果:

我们现在使用 GDB 来调试这个程序。首先,我们需要编译该程序时加入调试信息:

gcc -g -o example example.c
//-g 选项用于生成调试信息

然后,我们启动 GDB 并加载可执行文件:

gdb example

接下来,我们可以使用 GDB 命令来设置断点、运行程序、查看变量值等。

  • 设置断点在 factorial 函数的起始处:

    (gdb) break factorial
  • 运行程序:

    (gdb) run
  • 单步执行直到 factorial 函数内部:

    (gdb) step
  • 查看局部变量 n 的值:

    (gdb) print n
  • 单步执行到下一行代码:

    (gdb) next
  • 查看返回值:

    (gdb) print $rax
  • 退出:

    (gdb) q

这些命令可以帮助了解程序的执行过程,检查变量的值,并识别可能的问题。 


7. 压缩与解压

7.1 解压

tar -xvf your_file.tar:解压tar命令

这里的选项含义是:

  • -x: 表示解压操作
  • -v: 显示详细的输出,以便查看解压过程中的文件
  • -f: 指定要解压的文件,后面跟着需要解压的文件名

案例:将/root/host/core_analyzer.tar.gz解压到/root/host/core_analyzer_Test文件夹下

# 创建目标文件夹(如果不存在)

mkdir /root/host/core_analyzer_Test
tar -xzvf /root/host/core_analyzer.tar.gz -C /root/host/core_analyzer_Test

解释一下这个命令:

  • mkdir /root/host/core_analyzer_Test: 如果core_analyzer_Test文件夹不存在,则创建它。
  • tar -xzvf /root/host/core_analyzer.tar.gz -C /root/host/core_analyzer_Test
    • tar: 是用来解压缩文件的命令。
    • -x: 表示解压操作。
    • -z: 表示使用gzip解压缩。
    • -v: 显示详细信息,告诉你解压的过程。
    • -f: 指定要解压的归档文件。
    • /root/host/core_analyzer.tar.gz: 要解压的归档文件名。
    • -C /root/host/core_analyzer_Test: 指定解压到的目标文件夹。

7.2 压缩

在 Ubuntu 上将文件夹压缩成压缩包通常使用 tar 命令结合 gzip 或 bzip2 等压缩工具进行操作。以下是基本步骤:

  • cd到要压缩的文件夹所在目录.
  • 执行压缩命令:使用 tar 命令将文件夹压缩成压缩包:
    使用 gzip 压缩成 .tar.gz 格式
    tar -zcvf archive.tar.gz folder/

案例:需要将/root/host目录下的文件夹core_analyzer打包成压缩包

进入到目标目录

cd /root/host

打包并压缩成.tar.gz格式的文件

tar -czvf core_analyzer.tar.gz core_analyzer

命令解释:

  • cd /root/host: 进入到目标目录,确保当前目录是包含core_analyzer文件夹的目录。
  • tar -czvf core_analyzer.tar.gz core_analyzer:
    • tar: 是一个用来打包文件或目录的命令。
    • -czvf: 是选项,其中:
      • c: 创建一个新的归档文件。
      • z: 使用gzip来压缩/解压缩文件。
      • v: 显示详细信息,告诉你打包的过程。
      • f: 指定归档文件的名称。
    • core_analyzer: 是要打包的目录名称。
    • core_analyzer.tar.gz: 是指定的压缩包文件名,.tar.gz表示使用gzip压缩的tar文件。

7.3 查看压缩包的大小

假设要查看名为 archive.tar.gz 的压缩包的大小,可以执行以下命令:

du -h archive.tar.gz

会显示压缩包的大小。


8. cp拷贝

将压缩包拷贝到另一个目录中的指令,可以使用 cp 命令。

cp archive.tar.gz /path/to/destination/

其中:

  • archive.tar.gz 是要拷贝的压缩包文件名
  • /path/to/destination/ 是目标目录的路径

如果目标目录在当前用户的主目录下,你可以使用 ~ 表示主目录,例如:

cp archive.tar.gz ~/destination_directory/

9. 清空回收站

清空服务器的回收站可以使用 rm 命令,配合 -r 参数来递归删除目录中的文件和文件夹。通常,回收站的目录路径是 /home/username/.local/share/Trash

先查看用户名:

whoami

执行以下命令可以清空回收站:

rm -rf /home/username/.local/share/Trash/*

注意:

  • 请确保将 username 替换为实际的用户名
  • 此命令将递归删除回收站中的所有内容,包括文件和文件夹,因此请谨慎使用。

比如我的执行指令查找用户名为root,则使用下面指令进行清空回收站:

rm -rf /home/root/.local/share/Trash/*


10. 常用快捷键

linux命令自动补全:按tab

vim编辑器进行查找:/+查找内容:比如/heapcmd

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_57532432/article/details/136369282

智能推荐

海康威视网络摄像头开发流程(五)------- 直播页面测试_ezuikit 测试的url-程序员宅基地

文章浏览阅读3.8k次。1、将下载好的萤石js插件,添加到SoringBoot项目中。位置可参考下图所示。(容易出错的地方,在将js插件在html页面引入时,发生路径错误的问题)所以如果对页面中引入js的路径不清楚,可参考下图所示存放路径。2、将ezuikit.js引入到demo-live.html中。(可直接将如下代码复制到你创建的html页面中)<!DOCTYPE html><html lan..._ezuikit 测试的url

如何确定组态王与多动能RTU的通信方式_组态王ua-程序员宅基地

文章浏览阅读322次。第二步,在弹出的对话框选择,设备驱动—>PLC—>莫迪康—>ModbusRTU—>COM,根据配置软件选择的协议选期期,这里以此为例,然后点击“下一步”。第四步,把使用虚拟串口打勾(GPRS设备),根据需要选择要生成虚拟口,这里以选择KVCOM1为例,然后点击“下一步”设备ID即Modbus地址(1-255) 使用DTU时,为下485接口上的设备地址。第六步,Modbus的从机地址,与配置软件相同,这里以1为例,点击“下一步“第五步,Modbus的从机地址,与配置软件相同,这里以1为例,点击“下一步“_组态王ua

npm超详细安装(包括配置环境变量)!!!npm安装教程(node.js安装教程)_npm安装配置-程序员宅基地

文章浏览阅读9.4k次,点赞22次,收藏19次。安装npm相当于安装node.js,Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西_npm安装配置

火车头采集器AI伪原创【php源码】-程序员宅基地

文章浏览阅读748次,点赞21次,收藏26次。大家好,小编来为大家解答以下问题,python基础训练100题,python入门100例题,现在让我们一起来看看吧!宝子们还在新手村练级的时候,不单要吸入基础知识,夯实自己的理论基础,还要去实际操作练练手啊!由于文章篇幅限制,不可能将100道题全部呈现在此除了这些,下面还有我整理好的基础入门学习资料,视频和讲解文案都很齐全,用来入门绝对靠谱,需要的自提。保证100%免费这不,贴心的我爆肝给大家整理了这份今天给大家分享100道Python练习题。大家一定要给我三连啊~

Linux Ubuntu 安装 Sublime Text (无法使用 wget 命令,使用安装包下载)_ubuntu 安装sumlime text打不开-程序员宅基地

文章浏览阅读1k次。 为了在 Linux ( Ubuntu) 上安装sublime,一般大家都会选择常见的教程或是 sublime 官网教程,然而在国内这种方法可能失效。为此,需要用安装包安装。以下就是使用官网安装包安装的教程。打开 sublime 官网后,点击右上角 download, 或是直接访问点击打开链接,即可看到各个平台上的安装包。选择 Linux 64 位版并下载。下载后,打开终端,进入安装..._ubuntu 安装sumlime text打不开

CrossOver for Mac 2024无需安装 Windows 即可以在 Mac 上运行游戏 Mac运行exe程序和游戏 CrossOver虚拟机 crossover运行免安装游戏包-程序员宅基地

文章浏览阅读563次,点赞13次,收藏6次。CrossOver24是一款类虚拟机软件,专为macOS和Linux用户设计。它的核心技术是Wine,这是一种在Linux和macOS等非Windows操作系统上运行Windows应用程序的开源软件。通过CrossOver24,用户可以在不购买Windows授权或使用传统虚拟机的情况下,直接在Mac或Linux系统上运行Windows软件和游戏。该软件还提供了丰富的功能,如自动配置、无缝集成和实时传输等,以实现高效的跨平台操作体验。

随便推点

一个用聊天的方式让ChatGPT写的线程安全的环形List_为什么gpt一写list就卡-程序员宅基地

文章浏览阅读1.7k次。一个用聊天的方式让ChatGPT帮我写的线程安全的环形List_为什么gpt一写list就卡

Tomcat自带的设置编码Filter-程序员宅基地

文章浏览阅读336次。我们在前面的文章里曾写过Web应用中乱码产生的原因和处理方式,旧文回顾:深度揭秘乱码问题背后的原因及解决方式其中我们提到可以通过Filter的方式来设置请求和响应的encoding,来解..._filterconfig selectencoding

javascript中encodeURI和decodeURI方法使用介绍_js encodeur decodeurl-程序员宅基地

文章浏览阅读651次。转自:http://www.jb51.net/article/36480.htmencodeURI和decodeURI是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误,所以可以encodeURI把非英文字符转化为英文编码,decodeURI可以用来把字符还原回来_js encodeur decodeurl

Android开发——打包apk遇到The destination folder does not exist or is not writeable-程序员宅基地

文章浏览阅读1.9w次,点赞6次,收藏3次。前言在日常的Android开发当中,我们肯定要打包apk。但是今天我打包的时候遇到一个很奇怪的问题Android The destination folder does not exist or is not writeable,大意是目标文件夹不存在或不可写。出现问题的原因以及解决办法上面有说报错的中文大意是:目标文件夹不存在或不可写。其实问题就在我们的打包界面当中图中标红的Desti..._the destination folder does not exist or is not writeable

Eclipse配置高大上环境-程序员宅基地

文章浏览阅读94次。一、配置代码编辑区的样式 <1>打开Eclipse,Help —> Install NewSoftware,界面如下: <2>点击add...,按下图所示操作: name:随意填写,Location:http://eclipse-color-th..._ecplise高大上设置

Linux安装MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar_linux mysql 安装 mysql-5.6.24-1.linux_glibc2.5.x86_6-程序员宅基地

文章浏览阅读2.8k次。一,下载mysql:http://dev.mysql.com/downloads/mysql/; 打开页面之后,在Select Platform:下选择linux Generic,如果没有出现Linux的选项,请换一个浏览器试试。我用的谷歌版本不可以,换一个别的浏览器就行了,如果还是不行,需要换一个翻墙的浏览器。 二,下载完后解压缩并放到安装文件夹下: 1、MySQL-client-5.6.2_linux mysql 安装 mysql-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle