当前位置: 首页 > news >正文

linux系统中命令基础

目录

一、命令概述

1. 命令的本质

2. 如何打开一个终端

3. 普通用户与超级用户

4. 终端中快捷键操作

5. 查找/学习命令的方法

6. 命令的格式

7. Linux 系统中的路径

8. Shell 特殊符号

二、基础命令

1、clear 

2、su / sudo su

3、useradd

4、userdel

5、passwd

6、alias

7、unalias

8、date

9、cal

10、reboot

11、ps

三、文件相关命令

通用文件相关命令

1、cd

2、pwd 

3、echo

4、chmod

和普通文件相关

1、touch 命令

2、rm

3、cat

4、mv

5、cp

6、tar

和目录相关文件

1、mkdir

2、rmdir

3、ls

四、linux系统中编辑器使用

1. gedit

2. vim 编辑器

五、linux系统中编译器使用

gcc 编译器的使用

方法1:指定输出文件名

方法2:不指定输出文件名

方法3:多文件编译

方法4:分步编译

方法5:带库编译

方法6:调试编译


一、命令概述

1. 命令的本质

在 Linux 中,命令的本质就是一个可执行文件,这些文件通常由源代码编译而来,存放在系统的标准目录(如 /bin/usr/bin/sbin 等)中。当用户在终端输入命令时,Shell 会到这些目录里查找对应的可执行文件并运行。虽然我们也可以把自己编译的程序放到根目录下直接调用,但这种做法不推荐,更常见的做法是将程序放到 $PATH 所包含的目录中,这样就能像系统命令一样方便调用。

这张图显示的就是 /bin 目录下的所有命令,它们大多是 Linux 系统运行所必需的基础工具。用户在终端输入命令时,Shell 会在 /bin 等目录里找到对应的可执行文件并执行。

  • 绿色 → 普通可执行文件(大部分命令)。

  • 蓝色 → 符号链接(软链接)。

  • 红色背景 → 需要特别注意的可执行文件(比如可能是 suid 权限、挂载命令等)。

  • 浅蓝色 → 可能是和网络相关的命令或特殊二进制。

2. 如何打开一个终端

  • 快捷键

    • 常见发行版(如 Ubuntu、Debian)可以使用 Ctrl + Alt + T 快速打开终端窗口。

  • 菜单方式

    • 在桌面环境(GNOME、KDE 等)中,依次点击:
      应用程序 → 系统工具 → 终端(或“Terminal”)。

  • 右键菜单

    • 在桌面或文件管理器中,鼠标右键点击空白处,选择 “在终端中打开” 或类似选项。

  • TTY 方式(更底层)

    • 使用快捷键 Ctrl + Alt + F1 ~ F6 可以切换到不同的 TTY 控制台(纯字符界面)。

    • 使用 Ctrl + Alt + F7(或 F1/F2,视发行版不同)可以切回图形界面。

3. 普通用户与超级用户

特性普通用户超级用户(root)
权限范围只能操作自己家目录下的文件,不能修改系统核心目录和配置可以操作系统中的所有文件和目录,没有限制
家目录/home/用户名/root
系统安全性操作受限,风险较低权限过大,误操作可能导致系统崩溃
提示符$#
获取方式普通登录用户直接以 root 登录,或通过 su / sudo 切换
常见用途日常使用:编辑个人文件、运行应用程序系统管理:安装/卸载软件、修改配置、管理用户和权限

4. 终端中快捷键操作

快捷键功能
Ctrl + C终止正在运行的前台程序(发送 SIGINT 信号)。
Ctrl + D退出当前 Shell(等效于输入 exit,也表示输入结束 EOF)。
Ctrl + L清屏(等效于 clear 命令,光标回到屏幕顶端)。
↑ / ↓在历史命令之间切换。
  • Tab
自动补全命令或路径,按两次可列出所有可选项。
Ctrl + A光标移动到命令行开头。
Ctrl + E光标移动到命令行结尾。
Ctrl + U删除光标前的内容。
Ctrl + K删除光标后的内容。
Ctrl + W删除光标前的一个单词。
Ctrl + R搜索历史命令(输入关键词,实时匹配)。
Ctrl + Z挂起当前任务(发送 SIGTSTP 信号,可用 fg 恢复)。
Ctrl + Shift + +放大终端字体(不同终端可能略有区别)。
Ctrl + -缩小终端字体。
Ctrl + 0恢复默认字体大小。

5. 查找/学习命令的方法

在 Linux 中,学习和查询命令的常见方式有以下几种:

利用网络
通过搜索引擎或 Linux 官方文档,可以快速找到命令的用法和示例。这种方式适合初学者或需要查找综合资料时使用。

在 Linux 系统中查找
Linux 本身提供了多种命令文档工具:

1.man 手册

  • 语法man 命令名
  • 示例man ls
  • 功能:查看命令的详细说明、参数和选项。
  • 退出:按 q 退出。

2.--help 帮助

  • 语法命令名 --help
  • 示例ls --help
  • 功能:快速查看命令的简要说明和常用参数。

3.info 信息页

  • 语法info 命令名
  • 示例info ls
  • 功能:提供比 man 更详细的说明(但在现代 Linux 中,多数命令仍主要使用 man--help)。
  • 退出:按 q 退出。

6. 命令的格式

  • 通过 man 命令查看格式
    使用 man 命令名 可以查到该命令的标准格式。
    命令后面一般会带有 选项参数,其作用是限定或扩展命令的功能。

  • 命令的通用组成

    
    命令 [选项] [参数]
    • 命令:要执行的操作,如 lscdcp

    • 选项:用来控制命令的功能或行为,例如 -l-a

    • 参数:命令操作的对象,可以是文件、目录或路径。

  • 每个命令都有自己的专属格式
    同一个命令在不同情况下可搭配不同参数与路径,从而实现多种功能。

7. Linux 系统中的路径

  • 绝对路径:从根目录 / 开始,例如 /home/user/test

  • 相对路径:相对于当前目录,例如 ./file../test

8. Shell 特殊符号

  • . :当前目录

    • 示例:./a.out 表示执行当前目录下的 a.out 程序。

  • .. :上一级目录

    • 示例:cd .. 回到上一级目录。

  • ~ :当前用户的主目录(Home 目录)

    • 示例:cd ~ 回到用户主目录。

  • * :通配符,匹配任意数量的字符

    • 示例:ls *.txt 显示所有以 .txt 结尾的文件。

  • > :输出重定向(覆盖写入)

    • 示例:echo hello > file.txthello 写入 file.txt,覆盖原内容。

  • >> :追加重定向

    • 示例:echo world >> file.txtworld 追加到 file.txt 的末尾。

  • | :管道,把前一个命令的输出作为后一个命令的输入

    • 示例:ls | grep txtls 的输出交给 grep,筛选出含有 txt 的内容。

二、基础命令

1、clear 

  • 用法clear

  • 功能:清空终端屏幕,相当于快捷键 Ctrl + L

2、su / sudo su

  • 用法

    • su → 切换到超级用户(需要输入 root 密码)

    • sudo su → 普通用户通过 sudo 提权后切换到超级用户(输入当前用户密码)

  • 功能:在终端中切换到超级用户(root)下

  • 对比点su(switch user)sudo (superuser do) su
    权限验证方式需要输入 root 密码需要输入 当前用户密码(前提是该用户在 sudoers 中)
    安全性任何知道 root 密码的人都能切换到 root,密码可能被多人共享只有在 sudoers 文件中被授权的用户才能切换 root,更细粒度、更安全
    环境变量su 默认不会加载完整的 root 环境(除非 su -sudo su 一般会继承当前用户环境,且拥有 root 权限
    日志记录仅记录 su 行为,不记录具体是哪个用户执行sudo 会在日志中记录执行者和时间,便于审计和追踪
    常见场景适合已经启用 root 账户、并且知道 root 密码的情况常用于 Ubuntu 等禁用 root 登录的系统,更常见、更安全

3、useradd

  • 用法

    useradd 用户名
    useradd -m 用户名   # 创建用户并自动生成家目录
    

  • 功能:增加一个用户(需要在超级用户下执行,可以先输入 su 或用 sudo 提权)

  • 注意

    • 一般要加上 -m 参数,否则可能不会为用户自动创建家目录。

    • 新增的用户默认没有密码,需要再用 passwd 用户名 来设置密码。

在终端成功创建了一个新用户 newuser

Ubuntu 登录界面已经显示了 newuser 用户

4、userdel

  • 用法

    userdel 用户名
    userdel -r 用户名   # 删除用户并同时删除其家目录
    

  • 功能:删除一个用户(需要超级用户权限)。

  • 注意事项

    1. 单独执行 userdel 用户名 时,只删除用户账号,但不会删除该用户的家目录 /home/用户名 和邮件文件。

    2. 如果要彻底删除用户及其家目录,需要加上 -r 选项。

    3. 建议先确认该用户没有正在运行的进程,可以用 ps -u 用户名 检查。

在终端删除用户 newuser

Ubuntu 登录界面没有了newuser 用户

5、passwd

  • 用法

    passwd              # 修改当前用户的密码
    passwd 用户名       # 修改指定用户的密码(需要超级用户权限)
    

  • 功能:修改或重新设置用户的登录密码。

  • 常用场景

    1. 普通用户修改自己的密码:

      passwd
      

      系统会要求输入两次新密码。

    2. 超级用户(root)修改其他用户的密码:

      sudo passwd 用户名
      

    3. 给 root 用户设置密码(很多 Linux 发行版默认 root 没有密码,不能直接登录):

      sudo passwd root
      

      设置完成后就可以用 su 切换到 root 账号。

6、alias

  • 用法

    alias
    alias 新命令='原命令'
    

  • 功能:给当前存在的命令设置别名,相当于 C 语言里的 #define 宏替换。

  • 示例

    alias DEOM='ls'        # 输入 DEMO 就等于执行 ls
    
  • 注意事项

    1. alias 设置的别名 只在当前终端会话有效,关闭终端就会失效。

    2. 如果想永久生效,可以把 alias 命令写进 ~/.bashrc~/.zshrc,然后执行 source ~/.bashrc 让它立即生效。

在 Linux 终端里定义了一个别名 DEMO,然后执行了 DEMO,效果就是执行 ls 命令,列出了当前目录下的文件和文件夹

7、unalias

  • 用法
  1. 删除单个别名

    unalias DEMO
    

    这样就把你之前定义的 alias DEMO='ls' 删除掉了。
    删除后再输入 DEMO 就不会再执行 ls,而是提示 command not found

  2. 删除所有别名

    unalias -a
    

    这样会清空当前 shell 会话里的所有别名。

  • 注意事项

    1. unalias 只能删除当前会话里定义的别名。

    2. 如果别名写在 ~/.bashrc~/.zshrc 里,下次重新打开终端时还是会生效。
      如果想永久删除,就需要同时把配置文件里的那一行删掉

8、date

功能:显示或设置系统日期与时间。

用法

  1. 显示当前日期和时间

    date
    

    👉 输出类似:

  2. 自定义格式输出
    + 加格式控制符:

    date "+%Y-%m-%d %H:%M:%S"
    

    👉 输出:

    常用格式符:

    • %Y 年 (四位数)

    • %m 月 (01-12)

    • %d 日 (01-31)

    • %H 小时 (00-23)

    • %M 分钟 (00-59)

    • %S 秒 (00-59)

  3. 设置系统时间(需要 root 权限)

    sudo date -s "2025-10-12 17:15:00"
    

9、cal

功能:显示日历


基本用法

  1. 显示当月日历

    cal
    

    👉 会显示当前月份的日历

  2. 显示某一年整年的日历

    cal 2025
    

    👉 输出 2025 全年日历

  3. 显示某年某月的日历

    cal 10 2025
    

    👉 显示 2025 年 10 月的日历


常用拓展

  • 显示前后几个月

    cal -3
    

    👉 显示上个月、本月、下个月

10、reboot

  • 用法

    reboot
    

  • 功能:重启系统(需要超级用户权限)。

  • 说明

    • 普通用户执行时通常会提示权限不足。

    • 一般用法是:

      sudo reboot
      

    • 立即让系统关机并重新启动。

  • 注意
    如果系统正在运行重要任务或有未保存的文件,直接 reboot 可能导致数据丢失。

11、ps

  • 用法

    ps
    

  • 功能:查询当前进程的状态信息。

  • 常见选项

    1. ps -ef

      • 全格式 显示所有进程的信息。

      • 常用来查看系统上所有进程。

      • 输出字段包括 UID、PID、PPID、启动时间、命令等。

      • 例子:

        ps -ef | grep ssh
        

        (查询与 ssh 相关的进程)

    2. ps -aux

      • BSD 格式 显示所有进程。

      • 显示内容更丰富,例如内存占用率(%MEM)、CPU 占用率(%CPU)等。

      • 常用于快速查看进程的资源占用情况。

      • 例子:

        ps -aux | head -5
        

        (只看前 5 行输出)

  • 注意

    • ps -efps aux 是两种不同的风格(System V 风格和 BSD 风格),输出格式不同,但都能查看所有进程。

    • 一般 ps -ef 搭配 grep 使用较多,而 ps aux 更方便观察系统资源占用。

三、文件相关命令

通用文件相关命令

1、cd

  • 功能:在终端中进入(切换)到指定的文件夹(目录)。

  • 基本用法

    cd 目录路径
    

  • 常见写法

    1. cd /home/user → 进入绝对路径 /home/user

    2. cd Documents → 进入当前目录下的 Documents 文件夹

    3. cd .. → 返回上一级目录

    4. cd . → 停留在当前目录(几乎没用)

    5. cd ~ → 进入当前用户的主目录

    6. cd - → 返回上一次所在的目录

2、pwd 

功能:显示当前终端所在目录的 绝对路径

基本用法

pwd

3、echo 命令

功能:将内容输出到终端或写入文件。

用法 1:输出到终端

echo 字符串

  • 将字符串直接显示在终端上

  • 默认会换行

  • 如果不想换行,可以加 -n 参数:

echo -n 字符串

用法 2:覆盖写入文件

echo 字符串 > 文件名

  • 将字符串写入文件,如果文件已存在,会 覆盖原内容

用法 3:追加写入文件

echo 字符串 >> 文件名

  • 将字符串 追加 到文件末尾,不会覆盖原有内容

3、echo

功能:在终端输出字符串,或将字符串写入文件。

用法 1:输出到终端

echo 字符串

  • 将字符串直接显示在终端上

  • 默认会换行

  • 如果不想换行,可以使用 -n 参数:

echo -n 字符串

用法 2:写入文件(覆盖)

echo 字符串 > 文件名

  • 将字符串写入文件

  • 如果文件已存在,会覆盖原内容

用法

echo 字符串 >> 文件名
  • 将字符串追加到文件末尾

  • 不会覆盖原有内容

4、chmod

功能:修改文件或目录的权限。


①、符号模式

chmod [u/g/o/a] [+/−/=] [r/w/x] 文件名

  • u → user(文件所有者)

  • g → group(文件所属组)

  • o → other(其他用户)

  • a → all(所有用户 = u+g+o)

  • r → read(读)

  • w → write(写)

  • x → execute(执行)

  • + → 添加权限

  • - → 移除权限

  • = → 直接设定权限

示例

chmod u+rwx,g+rwx,o+rwx 文件名   # 给所有人添加读/写/执行权限
chmod o-r 文件名                # 去掉其他用户的读权限
chmod g=rw 文件名               # 设置组用户只有读和写权限


②、数字模式

chmod 数字 文件名

权限由 三位八进制数表示:

  • r = 4

  • w = 2

  • x = 1

三者相加 = 该角色的权限值。

  • 第一位 → 文件所有者 (u)

  • 第二位 → 所属组 (g)

  • 第三位 → 其他用户 (o)

示例

chmod 777 1.txt   # u/g/o 都有 rwx 权限
chmod 644 1.txt   # u=rw,g=r,o=r
chmod 755 script.sh   # u=rwx,g=rx,o=rx (常用于脚本)


📌 总结:

  • 符号模式 → 适合精确地加减某个权限。

  • 数字模式 → 常见于快速设定完整权限。

和普通文件相关

1、touch 命令

功能:创建空的普通文件,或者更新已存在文件的时间戳(访问时间和修改时间)。

基本用法

touch 文件名

  • 如果文件不存在 → 创建一个空文件

  • 如果文件已存在 → 不会修改内容,只会更新时间戳

扩展功能:一次创建多个文件

touch file1 file2 file3

注意:多个文件名之间用空格分隔

示例

touch a.txt          # 创建 a.txt 文件  
touch a.txt b.txt c.txt   # 同时创建 3 个文件

2、rm

功能:删除文件或目录。

用法 1:删除普通文件

rm 文件名

  • 删除指定文件

  • 示例:

rm a.txt   # 删除 a.txt

用法 2:删除目录(递归删除)

 
rm -r 目录名

  • 删除指定目录及其内部的所有子目录、文件

  • 示例:

rm -r testdir   # 删除 testdir 目录及里面所有内容

常用扩展选项

  • -i:删除前逐个询问确认

rm -i a.txt

  • -f:强制删除,不提示确认(危险)

rm -rf testdir

⚠️ 注意:
rm -rf / 会把根目录删掉,相当于毁掉整个系统,所以使用时一定要小心。

3、cat

功能:查看普通文件内容,并显示到终端上。

基本用法

 
cat 文件名

  • 将指定文件的全部内容输出到终端

示例

cat a.txt

显示 a.txt 文件的全部内容。

补充:查看文件开头或结尾的部分内容

  • 查看文件开头的 N 行

head -n N 文件名

示例:

head -n 10 a.c   # 显示 a.c 文件的前10行

  • 查看文件结尾的 N 行

tail -n N 文件名

示例:

tail -n 10 a.c   # 显示 a.c 文件的最后10行

4、mv

功能:移动文件或目录,并可在移动时重命名。

用法 1:移动并重命名

mv 源文件 目标文件

  • 将源文件移动到当前目录,并改名为目标文件

  • 示例:

mv a.txt b.txt   # 把 a.txt 改名为 b.txt

用法 2:移动到指定路径

mv 源文件 目录路径

  • 将文件移动到指定目录下,文件名保持不变

  • 示例:

mv a.txt /home/liao/Documents/   # 把 a.txt 移动到 Documents 目录

额外提示

  • mv 命令同时适用于目录:

mv dir1 dir2/   # 把目录 dir1 移动到 dir2 里

  • 如果目标文件已存在,默认会被覆盖。若要提示确认,可加 -i 参数:

mv -i a.txt b.txt

5、cp

功能:复制文件或目录。

用法 1:文件复制并改名

cp 源文件 目标文件

  • 将源文件复制成目标文件(内容相同,但两个文件互不影响)

  • 示例:

cp a.txt b.txt   # 复制一份 a.txt 并命名为 b.txt

用法 2:复制到指定目录

cp 源文件 目录路径

  • 将文件复制到指定目录下,文件名保持不变

  • 示例:

cp a.txt /home/liao/Documents/   # 把 a.txt 复制到 Documents 目录

问题 1:复制目录时报错

  • 默认情况下,cp 只复制文件,复制目录会提示错误或被忽略。

解决办法

cp -r 源目录 目标路径

  • -r--recursive 表示递归复制整个目录(包括子目录和文件)

  • 示例:

cp -r project/ backup/   # 把 project 目录整个复制到 backup 下

补充常用选项

  • -i:覆盖文件时询问确认

  • -v:显示复制的过程

  • -p:保留文件的时间戳和权限属性

6、tar

功能:打包、压缩文件,或者解压缩文件。


常用参数

  • -c → create,建立新的归档文件(打包)

  • -x → extract,从归档文件中释放文件(解包/解压)

  • -v → verbose,显示处理过程

  • -f → file,指定归档文件名(必须紧跟在后面)

  • -z → 使用 gzip 压缩方式(.tar.gz.tgz 文件常见)


用法 1:打包(不压缩)

tar -cvf 打包文件名.tar 源文件/目录

示例

tar -cvf helloworld.tar 123.txt    # 打包 123.txt,生成 helloworld.tar


用法 2:解包(不解压)

tar -xvf 打包文件名.tar

示例

tar -xvf helloworld.tar


用法 3:打包并压缩(常用)

tar -zcvf 压缩文件名.tar.gz 源文件/目录

示例

tar -zcvf project.tar.gz project/   # 压缩整个 project 目录


用法 4:解压缩

tar -zxvf 压缩文件名.tar.gz

示例

 
tar -zxvf project.tar.gz


补充:zip / unzip

压缩

zip 压缩包名.zip 文件
zip -r 压缩包名.zip 目录

解压

unzip 压缩包名.zip


📌 总结:

  • tar 常用来生成 .tar.tar.gz 文件。

  • zip/unzip 常用来生成 .zip 文件。

和目录相关文件

1、mkdir

功能:新建目录。

基本用法

mkdir 目录名

  • 创建一个新的目录

  • 示例:

mkdir testdir   # 创建名为 testdir 的目录

扩展功能 1:一次创建多个目录

mkdir dir1 dir2 dir3

  • 会在当前路径下同时创建 dir1dir2dir3

扩展功能 2:递归创建多级目录

mkdir -p 父目录/子目录/孙目录

  • 如果父目录不存在,会自动创建

  • 示例:

mkdir -p projects/2025/notes

会一次性创建 projects → 2025 → notes 目录结构。

2、rmdir

功能:删除空目录。

基本用法

rmdir 目录名

  • 删除指定目录,但要求目录必须是空的

  • 示例:

rmdir testdir   # 删除空目录 testdir

扩展功能:一次删除多个目录

rmdir dir1 dir2 dir3

  • 如果这些目录是空的,会一次性删除

注意事项

  • rmdir 只能删除 空目录,如果目录中有文件或子目录,会报错

  • 如果需要删除 非空目录,要用:

rm -r 目录名

3、ls

功能:显示目录内容,查看文件和目录信息。

基本用法

ls

  • 显示当前路径下的所有文件和目录名称

常用选项

  • -l:长格式显示,包含权限、所有者、文件大小、修改时间等详细信息

  • -a:显示所有文件(包括隐藏文件,以 . 开头的文件)

  • -h:配合 -l 使用,以更易读的方式显示文件大小(如 KB、MB)

  • -R:递归显示子目录内容

示例

ls -l          # 详细列出当前目录内容  
ls -la         # 列出所有文件(含隐藏文件)及详细信息  
ls -lh         # 详细信息 + 文件大小以 KB/MB 显示  
ls -R          # 显示当前目录及所有子目录内容

四、linux系统中编辑器使用

1. gedit

  • 特点:图形化编辑器,操作简单,类似于 Windows 的“记事本”。

  • 适用场景:初学者,或者习惯图形界面操作的人。

  • 用法


gedit 文件名

如果文件存在 → 打开文件;如果文件不存在 → 创建新文件。

示例:


gedit a.txt

会打开一个图形化窗口编辑 a.txt


2. vim 编辑器

  • 特点:命令行文本编辑器,功能强大,是 Linux 程序员和系统管理员常用工具。

  • 模式

    • 命令模式:默认进入,用于操作(删除、复制、粘贴等)

    • 编辑模式:按 i 进入,可输入文本

    • 底行模式:按 : 进入,用于保存、退出等命令

  • 常用操作

    • i → 进入编辑模式

    • Esc → 返回命令模式

    • :w → 保存文件

    • :q → 退出

    • :wq → 保存并退出

    • :q! → 强制退出(不保存)

  • 用法


vim 文件名

示例:


vim b.txt

进入 b.txt 文件编辑界面。

五、linux系统中编译器使用

gcc 编译器的使用

方法1:指定输出文件名

特点

  • gcc 是 GNU C 编译器,也是交叉编译工具的常见名字(不同芯片可能对应不同工具链,比如 arm-none-eabi-gcc)。
  • 可以编译单个 C 文件并指定输出文件名。

用法


gcc 源码文件.c -o 可执行文件名

例子

gcc a.c -o test1 ./test1

方法2:不指定输出文件名

用法


gcc 源码文件.c

功能

不使用 -o 参数时,gcc 默认生成一个 a.out 的可执行文件。

例子


gcc a.c ./a.out

方法3:多文件编译

场景

程序由多个源文件组成,需要一起编译。

用法


gcc 文件1.c 文件2.c ... -o 可执行文件名

例子


gcc main.c add.c sub.c -o calc ./calc

方法4:分步编译

场景

  • 先把源码编译成目标文件(.o),最后再链接生成可执行文件。
  • 适合大型项目,提高编译效率。

步骤

生成目标文件:

gcc -c 文件.c

会生成对应的 .o 文件。

链接生成可执行文件:


gcc 文件1.o 文件2.o -o 可执行文件

例子


gcc -c main.c add.c sub.c gcc main.o add.o sub.o -o calc ./calc

方法5:带库编译

场景

  • 使用第三方库(如 mathlibm.so)。
  • 需要加 -l 选项指定库。

用法

gcc 源码.c -o 可执行文件 -l库名

例子(使用 math.h 的函数 sqrt

gcc test.c -o test -lm ./test

方法6:调试编译

场景

  • 需要调试程序时,用 gdb 调试器。
  • 编译时必须加入 -g 选项。

例子


gcc test.c -o test -g gdb ./test

✅ 总结:

  • 单文件快速编译gcc a.c -o a.out

  • 多文件编译gcc main.c add.c -o app

  • 分步编译:先 gcc -cgcc ... -o

  • 链接库gcc prog.c -o prog -lm

  • 调试用gcc prog.c -o prog -g

http://www.dtcms.com/a/479248.html

相关文章:

  • 站酷网站建设合肥网建公司
  • 湖南旅游网站开发做毕业设计的网站
  • 安卓上谷歌35版本
  • 《架构设计精讲》学习笔记
  • Uvicorn在多核CPU上启动的参数workers
  • 宁波网站建设免费咨询手表
  • DDD架构——充血模型、领域模型
  • 【Linux系列】Vim 中删除当前光标到行尾
  • 建设银行手机网站首页域名访问过程会不会影响网站访问
  • 【1017】浮点型数据类型存储空间大小
  • 算法奇妙屋(六)-哈希表
  • Java基础加强14-File、字符的编码与解码、IO流、IO框架
  • [算法练习]Day 8: 变长滑动窗口
  • 做网站联系wordpress怎么做背景图片
  • 道路建设网站专题上海网站seo设计
  • asp.net做网站系统wordpress 首页不显示
  • GESP2025年9月认证C++四级( 第三部分编程题(1)排兵布阵)
  • 论文解读 -- A FOUNDATION MODEL FOR MUSIC INFORMATICS
  • Redis-管道和发布订阅
  • 做网站最大可以做多少g代做网站多少钱
  • PostgreSQL 模式(Schema)详解
  • 网站网页制作及优化网站建设收费明细表
  • 网站建设的物流包装设计用什么软件
  • Java 大视界 -- Java 大数据流处理中的状态管理与故障恢复技术深度解析
  • 大型语言模型实战入门:从 API 到开源模型,掌握文本生成与对话核心技能
  • GEO优化公司
  • 做海报文案的参考网站wordpress压缩图片质量
  • HashMap的put方法的具体流程(高频)
  • 龙岩做网站开发多久时间wordpress onethink
  • 自己建网站做淘宝客网站建设的要点是什么