C语言 - Linux基础使用

news2024/12/25 22:09:06

Linux

1. Linux简介

Linux是操作系统

Linux中所有的程序与硬件设备对Linux系统而言都是一个文件或文件夹

1.1 Linux发行版本

发型版本的名称/版本有发行方决定

  • Red Hat Enterprise Linux 5/6/7
  • Suse Linux Enterprise 12
  • Debian Linux 7.8
  • Ubuntu Linux 14.10/15.04

1.2 Red Hat 系列版本

  • 红帽 Linux 企业版

    • 简称RHEL(Red Hat Enterprise Linux)
    • http://ww.redhat.com/
  • Fedora Core 社区版

    • http://fedoraproject.org/
  • CentOS,社区企业操作系统

    • Community Enterprise Operating System
    • http://www.centos.org/

1.3 Linux 目录结构

树形结构

/                系统根目录,通常不会在这里存储文件
 ├── boot        启动目录(引导区块)
 │
 ├── bin         系统二进制目录,存放普通用户级的 GNU 命令
 ├── sbin        系统超级二进制目录,存放管理员级别的 GNU 命令
 ├── usr         资源目录 (User System Resources)
 │   ├── bin     用户二进制目录,存放用户级的 GNU 命令
 │   └── sbin    用户超级二进制目录,存放管理员用户的 GNU 命令
 │   └── local   存储第三方软件的
 │       ├── bin
 │       └── sbin
 │
 ├── opt         第三方开发的程序 (option), 意为"选装"
 │
 ├── dev         设备目录(device) 
 │   ├── null    无底洞 (丢弃一切写入其中的数据)
 │   ├── zero    无限 0 数据流 (常用来产生一个特定大小的空白文件, 或安全销毁文件)
 │   ├── shm     内存文件夹
 │   ├── sda	 第一块SCSI设备(及第一块SCSI磁盘)
 │   ├── random  随机数发生器
 │   └── urandom 非阻塞的随机数发生器
 │
 ├── etc         系统配置文件目录 (et cetera)
 ├── proc        当前的进程、运行状态信息的目录
 │
 ├── root        管理员家目录
 ├── home        用户的家目录
 │
 ├── media       媒体目录,可移动媒体设备的常用挂载点,一般是系统自动挂载到这里
 ├── mnt         挂载目录,另一个可移动媒体设备的常用挂载点,一般是留给用户手动挂载
 │
 ├── lib         系统库目录,存放系统和应用程序的库文件
 │
 ├── srv         服务目录,存放本地服务的相关文件
 ├── sys         系统目录,存放系统硬件信息的相关文件
 │
 ├── run         运行目录,存放系统运作时的运行时数据
 ├── tmp         临时目录,可以在该目录中创建和删除临时工作文件
 └── var         可变目录,用以存放经常变化的文件,比如日志文件

2. 常用命令

平常通过图形界面能够实现的功能,通过命令基本上都可以实现

① --help

命令 --help

命令帮助信息

② man

man 是 Linux 提供的一个手册,这个手册有很多个章节

第一章中放的是 命令 的帮助信息

第二章中放的是系统调用(操作系统提供的函数 open)

第三章中放的是库函数(c 库提供的函数 printf)的帮助信息

语法:

man 章节 查找信息

例:

man 1 ls

注意:

  • 查看内容后想要翻译点击上下键

  • 如果想退出输入q

③ ls

查看当前路径下的文件

ls 选项 参数

选项
	-a	所有
	-l	详细信息
	-h	人性化输出(数据有单位)

④ tree

作用:树状查看文件

没有的需要安装:

sudo apt-get install tree

语法:

tree -L 层数

tree:默认列出所有层。

例:

zhb@zhb-edu:~/temp$ tree
.
└── file
    ├── file1
    │   ├── aaa.text
    │   └── bbb.text
    └── file2
        ├── ccc.text
        └── ddd.text

3 directories, 4 files

⑤ cd

作用:进入指定的文件夹

路径可以使用 相对路径 也可以是 绝对路径
: 表示 /home/用户名

⑥ pwd、which

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

zhb@zhb-edu:~/temp$ pwd
/home/zhb/temp

which :查看命令所在路径

zhb@zhb-edu:~/temp$ which ls
/bin/ls

⑦ cat

作用:查看文件中的内容

⑧ rm

作用:删除文件或文件夹

语法:

rm 选项 要删除的文件或文件夹路径

选项:
	-r 文件夹
	-f 强制
	-rf

⑨ cp、mv

cp:复制

语法:

cp 选项 原文件路径 目标路径

选项
	-r 文件夹
	-a 进度

mv:移动

语法:同cp

⑩ mkdir、touch

mkdir:创建文件夹

touch:创建文件

⑪ find、grep

find:在指定路径下查找指定文件

语法:

find 查询的目录 -name 查询的文件名

例:

zhb@zhb-edu:/$ find /home/zhb/temp/file/file1 -name abc.text
/home/zhb/temp/file/file1/abc.text

grep:在指定文件中查找指定内容

语法:

grep 要查询的内容 查询的文件路径 选项

选项
	-n 显示行数
	-r 文件夹

例:

zhb@zhb-edu:/$ grep a /home/zhb/temp/file/file1/aaa.text -n
1:aaa
6:abc
7:asfg
zhb@zhb-edu:/$

⑫ tar

压缩或解压缩

解压
	tar 选项 文件 -C 目标位置默认为当前目录
压缩
	tar 选项 压缩包名称 要压缩的文件1 要压缩的文件2 ...
选项
	z:gzip格式压缩包
	j:bz2格式
	x:解压
	c:压缩

例:

  • 压缩:tar zcvf file1.tar.gz file1
zhb@zhb-edu:~/temp/file$ ls
file1  file2
zhb@zhb-edu:~/temp/file$ tar zcvf file1.tar.gz file1
file1/
file1/abc.text
file1/aaa.text
file1/bbb.text
zhb@zhb-edu:~/temp/file$ ls
file1  file1.tar.gz  file2
  • 解压:tar zxvf file1.tar.gz -C ./
zhb@zhb-edu:~/temp/file/file2$ ls
ccc.text  ddd.text  file1.tar.gz
zhb@zhb-edu:~/temp/file/file2$ tar zxvf file1.tar.gz -C ./
file1/
file1/abc.text
file1/aaa.text
file1/bbb.text
zhb@zhb-edu:~/temp/file/file2$ ls
ccc.text  ddd.text  file1  file1.tar.gz
zhb@zhb-edu:~/temp/file/file2$

⑬ ln

创建软连接

语法:

ln 原文件路径 连接名 -s

例:ln file1/aaa.text aaa-1.test -s
在这里插入图片描述

软连接,也就是快捷方式

  • 改变软连接的内容,原文件内容也会随之改变
  • 但是删除软连接,原文件不收影响

⑭ 其他

(1) echo

作用:输出(在屏幕输出)

zhb@zhb-edu:~/temp/file$ echo aaa-1.test
aaa-1.test
zhb@zhb-edu:~/temp/file$
(2) 重定向 >、>>

本来输出到屏幕上的数据,重定向输出 到了 目的文件中

>:替换

>>:追加

例:>

zhb@zhb-edu:~/temp/file$ echo hello Linux > aaa-1.test
zhb@zhb-edu:~/temp/file$ cat aaa-1.test
hello Linux
zhb@zhb-edu:~/temp/file$

例:>>

![02-管道](images/02-管道.png)zhb@zhb-edu:~/temp/file$ echo 知行合一,致良知 >> aaa-1.test
zhb@zhb-edu:~/temp/file$ cat aaa-1.test
hello Linux
知行合一,致良知
zhb@zhb-edu:~/temp/file$
(3) 管道 |

一个程序的输出 作为另外一个程序的输入

例:
在这里插入图片描述

zhb@zhb-edu:~/temp/file/file1$ ls | grep a
aaa.text
abc.text
zhb@zhb-edu:~/temp/file/file1$

3. vim

作用:文本编辑器

vi的升级版

3.1 安装

sudo apt-get install vim

3.2 使用

创建或打开文件

文件存在就打开,不存在就创建

语法:

vim 文件名

3.3 模式

插入模式:

  • 可以直接编辑文档

  • 按esc键进入编辑模式

编辑模式:

  • 不支持对文件的编辑,但是可以查找等其他操作

  • 打开文件文件时默认为编辑模式

  • shift+: 进入命令行模式

  • 按:iao 都可以区别在于插入的位置不同

命令行模式(最后一行模式) :

  • 退出,保存或保存退出登操作
  • 按esc键进入编辑模式
  • 命令:
    • q 退出
    • w 保存
    • ! 强制
    • wq 保存退出
    • q 强制退出

3.4 快捷键

编辑模式下:

a) u 撤消前面多次修改。 ctl r 反撤销
b) [n]x 删除光标后 n 个字符。如: 3x
c) [n]X 删除光标前 n 个字符。如: 6X
d) [n]dd 删除从当前行开始的 n 行。如: 4dd
e) [n]yy 复制从当前行开始的 n 行。如: 4yy

编辑模式下的查找

  • /字符串:从光标开始处向文件尾查找字符串。
  • n:同一方向重复上一次查找命令。
  • N:反方向重复上一次查找命令
  • :nohls 取消高亮

4. gcc编译器

将C语言代码文件编译为可执行文件

4.1 编译

编译后最终生成 .out 可执行文件。

① 步骤:

  • 预编译
  • 编译
  • 汇编:唯一一门可以与计算机直接交流的语言
    • 只能用加法(汇编中的减法的是+负数 )
  • 连接

② 对应的命令:

gcc -E 源文件.c 	-o	 预处理文件名.i	—— 1、预处理
gcc -S 预处理文件名.i -o 编译文件名.s	—— 2、编译
gcc -c 编译文件名.s -o 汇编文件名.o	—— 3、汇编
gcc 汇编文件名.o –o 可执行文件名	—— 4、链接

③ 简化 — 直接编译

gcc 原文件名 -o 可执行文件名

gcc 原文件名

注意:生成的可执行文件默认名为 .out 文件

4.2 执行可执行文件

./可执行文件名

注意:必须在当前可执行文件所在的目录下

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

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

相关文章

Vue与UserEcharts、DataV的协同

文章目录 引言一、Vue.js简介二、ECharts和UserEcharts1.ECharts简介2.UserEcharts:Vue和ECharts的结合 三、DataV简介四、Vue与DataV的结合1.DataV的Vue插件2.Vue和DataV的数据交互 结论我是将军,我一直都在,。! 引言 接着上一篇…

基于协作搜索算法优化概率神经网络PNN的分类预测 - 附代码

基于协作搜索算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于协作搜索算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于协作搜索优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

卧室装修干货|榻榻米设计的3要点。福州中宅装饰,福州装修

榻榻米布局 1️⃣传统式布局 在房间中央设置书桌和衣柜,两侧留出走道空间。这种布局适合房间面积适中的房间。 2️⃣靠窗布局 将书桌靠窗放置,衣柜则放在书桌对面,这种布局可以充分利用自然光线,同时也节省空间。 3️⃣高低床…

C语言—二维数组

一、二维数组的创建 int arr[3][4];char arr[3][5];double arr[2][4]; 数组创建:“[ ]”中要给一个常量,不能使用变量 二、二维数组的初始化 int arr[3][4]{1,2,3,4};int arr[3][4]{{1,2},{4,5}};int arr[][4]{{2,3},{4,5}}; 前面的为行&#xff0c…

MySQL 索引相关问题,建议搭建好环境,真实操作一下索引应用到的各种场景

文章目录 什么是 B-tree 和 Btree ?B-Tree 和 BTree的区别?MySQL 联合唯一索引是BTree,会带来什么原则?主键索引和单字段唯一索引有什么区别吗什么是 聚簇索引和非聚簇索引 ?创建一个三百万数据量的表格,方…

邮政快递查询,邮政快递单号查询,用表格导出查询好的物流信息

批量查询邮政快递单号的物流信息,以表格的形式导出查询好的物流信息。 所需工具: 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,并登录 步骤2:点击主界…

GNSS介绍

GNSS介绍 1. GNSS概述2 GNSS工原理3 GNSS的关键技术3.1 RTK技术3.2 惯性导航技术 4 GPS导航电文的格式4.1 第一数据块4.2 第二数据块4.3 第三数据块 5 NMEA语句5.1 GGA5.2 GSA5.3 GSV5.4 RMC5.5 GLL5.6 VTG 6 各导航系统不同频段的工作频率7 LTE,GNSS,WI…

C语言,通过数组实现循环队列

实现循环队列最难的地方就在于如何判空和判满,只要解决了这两点循环队列的设计就没有问题。接下来我们将会使用数组来实现循环队列。 接下来,为了模拟实现一个容量为4的循环队列,我们创建一个容量为4 1 的数组。 接下来我们将会对这个数组…

ACL权限

ACL权限 目录: 1. 什么是ACL 2. 操作步骤 1. 什么是ACL ACL是Access Control List的缩写,即访问控制列表 每个项目成员在有一个自己的项目目录,对自己的目录有完全权限 项目组中的成员对项目目录也有完全权限 其他人对项目目录没有…

Selenium技巧大揭秘:动态数据、分页和Cookie的获取利器

背景: ​ 昨天我们讲了讲关于seleium的一些基础操作,今天讲讲如何将seleium和爬虫结合起来,可以使用selenium获取网页的动态加载数据,可以使用selenium获得cookie,这两个是比较常用的。我将一一展开。 实战案例&…

SAP Smartforms打印报错Error in spool C call : spool overflow

处理方式: SAP打印时提示: Error in spool C call : spool overflow (假脱机请求溢出,通俗一点打印池已满) 解决办法: SE38 首先运行程序RSPO1041 再运行RSPO1043,话不多说上图。

2023-11-24 LeetCode每日一题(统计和小于目标的下标对数目)

2023-11-24每日一题 一、题目编号 2824. 统计和小于目标的下标对数目二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target &#xff0c;请你返回满足 0 < i < j < n 且 nums[i] nums[j] < targe…

千梦网创:我回来了

最近小半年将近有5个月的时间基本没有更新什么大型的课程内容&#xff0c;朋友圈除了晨记没有频繁更新一些公告或者是动态&#xff0c;直到目前为止&#xff0c;我也才算把手头所有的事情全部梳理好&#xff0c;正式恢复更新状态。 这小半年发生了很多事情&#xff0c;有快乐的…

【数字图像处理】均值滤波与中值滤波

在数字图像处理中,均值滤波和中值滤波是常见的空间域处理方法,可以用于过滤图像中的噪声。本文主要介绍数字图像均值滤波与中值滤波的基本原理,并记录在紫光同创 PGL22G FPGA 平台的布署与实现过程。 目录 1. 均值滤波与中值滤波 2. FPGA 布署与实现 2.1 功能与指标定义

NX二次开发UF_CURVE_ask_int_parms 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_int_parms Defined in: uf_curve.h int UF_CURVE_ask_int_parms(tag_t int_curve_object, int * num_objects_set_1, tag_t * * object_set_1, int * num_objects_set_…

excel一个单元格换行方法

要是在同一个单元格内输入文字输入不下的话&#xff0c;我们是可以进行同一个单元格换行设置的&#xff0c;而且换行的方法也是有很多种&#xff0c;下面我们就一起来看一下有哪些方法吧。 excel一个单元格换行方法&#xff1a; 方法一&#xff1a; 1、我们可以直接按下alte…

2-10岁女童穿搭 I 看的见的时尚感

分享女儿的时尚穿搭—连帽加绒卫衣 简单易搭怎么穿都好看的卫衣 红色吸睛又显肤色&#xff0c;不挑人穿 面料亲肤柔软&#xff0c;保暖性也很棒 单穿内搭都能轻松打造时尚造型&#xff01;&#xff01;

bop数据合并到COCO

bop数据合并到COCO JSON转TXT重命名txt文件中类别信息的转换 JSON转TXT import json import os,globcategories [{"id": 12,"name": "OREO","supercategory": "icbin"},{"id": 16,"name": "Paper…

Tdlib make 卡住

在VM下&#xff0c;用debian编译Tdlib不成功&#xff0c;分析出Tdlib编译会消耗大量的CPU和内存 解决方案&#xff1a;1.增加硬件配置 2.参考 zelenin/go-tdlib: Go wrapper for TDLib (Telegram Database Library) (github.com) 这里参考2&#xff1a;通过说明文件&#xff0…

基于斑马算法优化概率神经网络PNN的分类预测 - 附代码

基于斑马算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于斑马算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于斑马优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…