Linux和gcc/g++常用命令总结

news2025/4/25 13:02:34

目录

Linux命令总结

文件操作相关命令

ls

cd

pwd

cp

mv

rm

cat

mkdir

rmdir

touch

文本处理操作命令

grep

awk

sed

进程管理操作相关命令

ps

top

htop

kill

pkill

killall

chmod

chown

网络操作相关命令

ping

ifconfig

netstat

ss

lsof

curl

wget

ssh

端口操作相关命令

nmap

系统信息查看相关命令

uname

df

du

free

查看CPU和内存使用相关命令

top

htop

ps

vmstat

free

gcc/g++编译器选项总结

编译链接选项

调优选项

警告和错误选项

其他选项


Linux命令总结

文件操作相关命令

ls

1. ls:列出目录中的文件和目录

常用选项:

-a        显示包括隐藏文件在内的所有文件;

-l        以长格式显示文件信息,包括文件权限、所有者、大小等;

-t        按修改时间排序

示例:ls -al列出当前目录下所有文件的详细信息,包括隐藏文件

cd

  2. cd :切换目录

常用选项:

..        返回上一级目录;

~        返回当前用户的主目录

示例:cd /home/user切换到 /home/user目录;cd ..返回上一级目录。

pwd

  3. pwd:显示当前工作目录

cp

  4. cp :复制文件或目录

常用选项:

-r        复制目录时递归复制子目录

示例:cp file1.txt file2.txt复制/拷贝 file1.txt为 file2.txt;cp -r dir1 dir2复制/拷贝目录 dir1到 dir2。

mv

  5. mv :移动或重命名文件或目录

示例:mv file1.txt /home/user 将 file1.txt 移动到 /home/user目录;mv oldname.txt newname.txt将文件 oldname.txt重命名为 newname.txt

rm

  6.rm :删除文件或目录

常用选项:

-r        递归删除目录及其内容

示例:rm file.txt删除文件 file.txt;rm -r dir删除目录 dir及其内容

cat

  7. cat :查看文件内容

示例:cat file.txt 显示 file.txt的内容

mkdir

  8.mkdir:创建目录

示例:mkdir dir 创建一个名为 dir的目录

rmdir

  9. rmdir :删除空白目录

示例:rmdir dir删除空白的 dir目录

touch

  10. touch :创建空文件或更新文件的访问和修改时间

示例:touch file.txt创建一个名为 file.txt的空文件

文本处理操作命令

grep

grep:在文件中搜索特定的字符串

awk

awk:强大的文本处理工具

sed

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

进程管理操作相关命令

ps

  1.ps:显示当前系统中的进程信息

常用选项:

aux        显示所有进程,包括其他用户的进程;

-eo pid,ppid,%cpu,%mem,cmd        指定显示的列,如进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。

示例:ps aux显示系统中所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd指定显示特定的列。

top

  2.top:动态显示系统中进程的资源使用情况,包括 CPU 和内存使用情况等

常用选项:

-d        后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间

示例:top -d 2每 2 秒刷新一次屏幕,动态显示进程信息

htop

  3. htop:类似于 top,但提供了更直观的界面和更多的功能

常用选项:

可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等

示例:直接输入 htop 启动该命令

kill

4. kill :终止进程

常用选项:

-9(信号)        强制终止进程

示例:kill 1234终止进程 ID 为 1234 的进程;kill -9 1234强制终止进程 ID 为 1234 的进程

pkill

  5. pkill:通过进程名或其他属性终止进程

示例:pkill firefox终止所有名为 firefox 的进程

killall

  6. killall:通过进程名终止所有匹配的进程

示例:killall firefox终止所有名为 firefox 的进程

chmod

  7.  chmod:更改文件或目录的权限

chown

    8.chown:更改文件或目录的所有者

网络操作相关命令

ping

  1. ping :测试网络连通性

示例:ping google.com测试与 google.com 的网络连通性

ifconfig

  2. ifconfig :配置和显示网络接口信息

示例:ifconfig 查看当前网络接口的配置信息

netstat

  3. netstat :显示网络连接、路由表等信息,可以查看端口的使用情况

常用选项:

-an        显示所有监听的和非监听的端口;

-tuln        显示监听的 TCP 和 UDP 端口

示例:netstat -an显示所有网络连接和端口信息;netstat -tuln显示监听的 TCP 和 UDP 端口。

ss

  4. ss :类似于 netstat,用于查看套接字统计信息,可以更快速地显示端口的使用情况

常用选项:

-antlp         显示所有监听的 TCP 端口及其对应的进程信息;

-anu         显示所有监听的 UDP 端口

示例:ss -antlp 显示所有监听的 TCP 端口及其对应的进程信息;ss -anu 显示所有监听的 UDP 端口

lsof

  5. sof :列出当前系统打开的文件和端口等信息

常用选项:

-i          后跟端口号,显示指定端口的使用情况。

示例:lsof -i :80 显示 80 端口的使用情况及对应进程信息

curl

  6. curl :用于从服务器传输数据或向服务器发送数据,常用于测试和操作网络请求

示例:curl google.com获取 google.com 的网页内容;curl -X POST -d "key=value" google.com向 google.com 发送 POST 请求并携带数据

wget

  7. wget :从网络上下载文件

示例:wget google.com下载 google.com 的网页内容;wget -O output.html google.com将下载的内容保存为 output.html文件

ssh

8.  ssh:用于远程登录到另一台计算机

端口操作相关命令

nmap

nmap 命令

功能:网络探测工具,可用于扫描端口开放情况等

常用选项:

-p         后跟端口号或端口范围,指定扫描的端口;

-sS         进行 TCP SYN 扫描

示例:nmap -p 1-1000 192.168.1.1 扫描 192.168.1.1 主机的 1 到 1000 端口开放情况

系统信息查看相关命令

uname

 1. uname:显示系统信息

常用选项:

-a       显示所有系统信息,包括内核版本、主机名等;

-r        仅显示内核版本号。

示例:uname -a 显示所有系统信息;uname -r显示内核版本号

df

  2. df:显示文件系统的磁盘使用情况

常用选项:

-h        以人类可读的格式显示磁盘空间,如自动根据大小选择合适的单位

示例:df -h显示文件系统的磁盘使用情况,包括每个文件系统的总空间、已用空间、可用空间等。

du

  3. du:显示文件或目录的磁盘使用情况

常用选项:

-h        以人类可读的格式显示磁盘空间;

-s        仅显示总计。

示例:du -h /home/user显示 /home/user目录及其子目录的磁盘使用情况;du -sh /home/user仅显示 /home/user目录的总计磁盘使用情况

free

  4. free:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情

常用选项:

-m        以 MB 为单位显示内存信息;

-h         以人类可读的格式显示内存信息,如自动根据大小选择合适的单位;

-s        指定更新时间间隔,持续显示内存信息。

示例:free -m表示以 MB 为单位显示内存信息;free -h以人类可读的格式显示内存信息;free -s 2 表示每 2 秒更新一次内存信息

查看CPU和内存使用相关命令

top

top命令

功能:提供了动态的实时系统进程信息,可以查看 CPU 和内存的使用情况以及其他相关信息,如进程的用户、运行时间、命令等

常用选项:

-d        后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间。

示例:top -d 2,表示每 2 秒刷新一次屏幕

htop

htop命令

功能:是一个更高级的进程浏览器,它提供了比 top更直观的界面和更多的功能,可以方便地查看 CPU 和内存的使用情况,以及各个进程的信息

常用选项:

可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等。

示例:直接输入 htop即可启动该命令

ps

ps命令

功能:用于报告当前系统中的进程状态,结合不同的选项可以查看进程的 CPU 和内存使用情况

常用选项:

aux        显示所有进程的信息,包括其他用户的进程。

eo pid,ppid,%cpu,%mem,cmd        指定显示的列,包括进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。

示例:ps aux | less,表示分页显示所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd,指定显示特定的列

vmstat

vmstat命令

功能:报告虚拟内存的统计信息,包括进程、内存、分页、块设备、陷阱和 CPU 活动等信息,可以间接反映出 CPU 和内存的使用情况

常用选项:

1        表示每秒更新一次。

-s        以更易读的格式显示统计信息。

示例:vmstat 1,表示每秒更新一次虚拟内存统计信息;vmstat -s,以更易读的格式显示统计信息

free

free命令

功能:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情况。

常用选项:

-m         以 MB 为单位显示内存信息。

-h        以人类可读的格式显示内存信息,如自动根据大小选择合适的单位。

-s        指定更新时间间隔,持续显示内存信息。

示例:free -m,表示以 MB 为单位显示内存信息;free -h,以人类可读的格式显示内存信息;free -s 2,表示每 2 秒更新一次内存信息

gcc/g++编译器选项总结

编译链接选项

-c只编译,不链接。

示例:g++ -c main.cpp 将 main.cpp 编译成目标文件 main.o。

-o 指定输出文件名

示例:g++ -o myprogram main.cpp将编译链接后的可执行文件命名为 myprogram。

-I添加头文件搜索路径。(i大写)

示例:g++ -I /usr/local/include main.cpp指定在 /usr/local/include目录下搜索头文件

-L添加库文件搜索路径

示例:g++ -L /usr/local/lib main.cpp -lmylibc指定在 /usr/local/lib目录下搜索库文件 mylibc。

-l链接库文件。(L小写)

示例:g++ main.cpp -lmylib 链接库文件 mylib。

-shared生成共享库(动态库)

示例:g++ -shared -fPIC mylib.cpp -o libmylib.so 生成共享库 libmylib.so。

  -static 生成静态库

示例:g++ -static mylib.cpp -o libmylib.a生成静态库 libmylib.a。

调优选项

-O1启用基本的优化

示例:g++ -O1 main.cpp -o myprogram对生成的代码进行基本的优化

-O2更高一级的优化,在 -O1的基础上增加更多的优化

示例:g++ -O2 main.cpp -o myprogram对生成的代码进行更高级的优化

-O3 最高级别的优化,会在编译时进行更充分的优化,但可能会增加编译时间
示例:g++ -O3 main.cpp -o myprogram对生成的代码进行最高级别的优化

-Os优化代码大小,在优化代码执行效率的同时,尽可能减小生成的二进制文件大小
示例:g++ -Os main.cpp -o myprogram优化代码大小

-g 生成调试信息,便于使用调试器(如 GDB)进行调试
示例:g++ -g main.cpp -o myprogram在生成的可执行文件中包含调试信息

警告和错误选项

 -Wall启用所有常见的警告
示例:g++ -Wall main.cpp -o myprogram启用所有常见的警告

-Wextra启用额外的警告,比 -Wall更严格
示例:g++ -Wextra main.cpp -o myprogram启用额外的警告

-Werror将所有警告视为错误,如果出现警告,编译将失败
示例:g++ -Werror main.cpp -o myprogram将所有警告视为错误

其他选项

-std=c++11指定使用 C++11 标准
示例:g++ -std=c++11 main.cpp -o myprogram指定使用 C++11 标准进行编译。

-fPIC生成位置无关代码,通常用于生成共享库
示例:g++ -fPIC mylib.cpp -shared -o libmylib.so生成位置无关代码生成共享库

-pg添加性能分析代码,用于性能分析工具(如 gprof)。
示例:g++ -pg main.cpp -o myprogram添加性能分析代码

-v 显示编译器版本信息和编译过程的详细信息
示例:g++ -v显示编译器版本信息

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

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

相关文章

Sqoop从入门到使用

安装和配置 修改文件配置:修改文件名将(sqoop-env-template.sh改为sqoop-env.sh) 编辑sqoop-env.sh内部文本,修改调用文件位置 将sqoop-env.sh,配置到全局变量中,方便调用。 查看正常运用 第一类&#xff1…

【数据结构】堆(挑战从零基础到进阶)

我们从概念开始一步步来学习堆,下面我们来从零基础来解剖该种数据结构。先提前透明:实现堆其实就是基于数组来实现一个完全二叉树而已 ! 目录 堆的概念 堆的性质 堆的物理逻辑&思维逻辑 堆的节点对应关系 堆的核心操作 &#xff08…

阿里 DataWorks:数据治理、安全中心、数据质量核心功能梳理

文章目录 阿里 DataWorks:云原生数据治理与安全一体化实践指南一、数据治理中心1.1 数据治理体系1.2 产品架构全图1.3 概要使用路径1.4 治理现状评估数据治理健康分评估模型 1.5 检查项 & 治理项(1) 检查项(2) 治理项 1.6 治理工具箱1.7 治理结果查看 二、安全中…

DeepSeek精品课分享 清北

AI淘金潮上热搜!有人已经靠DeepSeek日入过万了! 北大清华等高校也相继出品DeepSeek高质量精品课程,在网上传疯。帮助学者高效学习AI从入门到精通! 完整版资料已经帮大家整理好了,免费领! 资料链接: htt…

解锁健康密码,开启养生之旅

在这个生活节奏飞快、压力如影随形的时代,健康养生不再是一句空泛的口号,而是我们对高品质生活的热切追求。它就像一把神奇的钥匙,能够打开通往活力与幸福的大门。 日常习惯与养生息息相关。晨起后,空腹喝一杯温水,如…

Mybatis集合嵌套查询,三级嵌套

三个表:房间 玩家 玩家信息 知识点:Mybatis中级联有关联(association)、集合(collection)、鉴别器(discriminator)三种。其中,association对应一对一关系、collectio…

Python的Pandas和matplotlib库:让数据可视化贼简单

在数据爆炸的时代,数据可视化已成为数据分析的关键环节。Python 作为强大的编程语言,拥有众多用于数据可视化的库,而 pandas 库在其中扮演着重要角色。它不仅能高效处理和分析数据,还具备强大的数据可视化功能,让我们轻…

数据结构基础之《(19)—矩阵处理》

一、zigzag打印矩阵 Z字形打印矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 打印顺序:1,2,7,13,8,3,4,9,14... 核心技巧:找到coding上的宏观调度 左上角有A、B两个点,A往右一步一步走,B往下一步一步走 写一个…

IDEA与Maven使用-学习记录(持续补充...)

1. 下载与安装 以ideaIU-2021.3.1为例,安装步骤: 以管理员身份启动ideaIU-2021.3.1修改安装路径为:D:\Program Files\JetBrains\IntelliJ IDEA 2021.3.1勾选【创建桌面快捷方式】(可选)、【打开文件夹作为项目】&…

nuxt2 打包优化使用“compression-webpack-plugin”插件

在使用 Nuxt.js 构建项目时,为了提高性能,通常会考虑对静态资源进行压缩。compression-webpack-plugin 是一个常用的 Webpack 插件,用于在生产环境中对文件进行 Gzip 压缩。这对于减少网络传输时间和提高页面加载速度非常有帮助。下面是如何在…

ArcGIS Pro:轻松制作地震动画,洞察灾害动态

在当今的信息展示领域,动画因其直观、生动的特点,逐渐成为各类汇报、研究展示中的重要元素。 尤其是在地理信息领域,通过动画来展示动态的地理现象,能够让观众更清晰地理解数据背后所蕴含的信息。 地震作为一种突发性的自然灾害…

MAVEN手动配置(阿里云)全教程

介于网上各种各样的MAVEN配置过程中方法大致相同却细节参差不齐,我总结了我遇见的一些问题,来完全的解决MAVEN手动配置的全过程,以及分享解决小毛病的经验。 所需材料: MAVEN3.9.9(下载适合自己的版本即可&#xff09…

贪心算法一

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是贪心算法,并且掌握贪心算法。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…

计算机毕业设计Python+DeepSeek-R1大模型微博的话题博文及用户画像分析系统 微博舆情可视化(源码+ 文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Secret Cow Code S

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝 既然选择了远方,当不负青春,砥砺前行! 题目描述 奶牛们正在实验秘密代码,并设计了一种方法用于生成无限长度的字符…

MyBatis - XML CRUD 其他查询

1. XML 配置文件 使用 MyBatis 操作数据库的方式有两种: 注解 (在注解中定义 SQL 语句)XML 配置文件 (在 XML 文件中定义 SQL 语句) 在上一篇博客中, 已经讲解了如何使用注解操作数据库, 本篇文章来讲解如何使用 XML 进行 MyBatis 开发. 使用 XML 的步骤, 和使用注解的步骤…

牛客python蓝桥杯11-32(自用)

11 import os import sysdef huiwen(str):length len(str)# if length 0:# return -1result []for i in range(length-1): # 0 - length-2for j in range(i2,length1):# 取出从索引 i 到 j-1 的子串s str[i:j]# 正序倒序if s s[::-1]:result.append(len(s))if result…

rabbitmq版本升级并部署高可用

RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0,表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了,则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…

数据集路径出错.yaml‘ images not found , missing path

方法一:删除settings.yaml 方法二:dataset_name.yaml改用绝对路径,如最后一张图 错误分析: dataset_name.yaml中的path的路径仅支持绝对路径,写相对路径就会搜索不到,使用settings.json中的路径&#xff0…

win32汇编环境,对话框中使用树形视图示例二

;运行效果 ;win32汇编环境,对话框中使用树形视图示例二 ;得到树形视图控件Treeview的全路径字符串,这里的方法是由子项向父项挨个找的算法找齐路径 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>&g…