Linux第二课:LinuxC高级 学习记录day02

2.4、shell中的特殊字符

2.4.4、命令置换符` ` 或者 $()

反引号:esc下面的按键,英文状态下直接按

功能:将一个命令的输出作为另一个命令的参数

echo 不会认为hostname是一个命令

加上` `之后,先执行hostname,拿到主机名之后,作为参数放到is后面,输出

2.5、系统维护命令

1、man man :查看man手册

        第一个章节:shell命令

        第二个章节:系统调用

        第三个章节:C库

2、su:切换用户

        su:默认切换到 root

        su:用户名——切换到指定的用户

        exit:退出切换的用户

3、sudo passwd 用户名:改用户的密码

4、echo “输出内容”:向终端输出内容,默认换行

        echo -n "输出内容":输出不换行

5、date:查看当前系统日期

6、clear:清屏

7、df -Th 或者 df -h:查看磁盘空间

2.6、用户管理命令

2.6.1、新建用户

        sudo adduser 用户名

给新建用户添加sudo权限:

1)切换到管理员用户:su

2)给用户添加sudo权限的文件:vi /etc/sudoers

3)添加:用户名        ALL=(ALL:ALL) ALL

注意:用户名后面是tab,最后一个all前面是空格
强制保存并退出

2.6.2、删除用户

        sudo deluser 用户名:删除用户,但是不会删除用户的主目录,残余的主目录可以直接使用rm -r

        sudo deluser --remove-home 用户名:删除用户的同时,删除用户的主目录

        sudo userdel -r 用户名:删除用户的同时,删除用户的主目录

        sudo userdel -rf 用户名:强制删除

2.7、进程管理命令

进程:程序运行一次的过程,动态的

程序:存放在磁盘空间上的可执行文件,静态的

1、.c文件:源代码
2、a,out:程序

3、a.out运行的过程:进程

2.7.1、ps:查看进程状态

        ps -aux

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
用户进程id————————终端
?:不依赖终端
状态

PID:唯一标识id号

        ps -ef:查看父进程的id:PPID

        ps -ajx:PPID        PID        PGID(组id)        SID(会话ID)

通过man ps查看关于进程的状态信息

进程状态:

D        不可中断睡眠态

R        运行态

S        可中断睡眠态

T        停止态

t        调试器打断

X        死亡态

Z        僵尸态——无法回收

<        高优先级

N        低优先级

L        锁定到内存中

s        会话组组长

l         线程

+        前台进程

./a.out &:将程序放在后台运行

fg 编号:将后台运行的进程,拉到前台运行

ctrl z:将前台运行的进程暂停,并且放在后台

bg 编号:将后台暂停的进程,在后台运行

2.7.2、top:动态显示进程的状态信息

        // top里面的进程状态只能显示一个字符

PR:优先级,默认20        PR=20+NI

        // 值越小优先级越高

        // 只要小于20,就是高优先级

NI:更改优先级的值,整数,一般-20到+19

       // 超过-20和+19的值,按照-20和+19计算

2.7.3、renice:修改正在运行的进程的优先级

sudo renice -n num PID

        num:要修改的NI值

        PID:要修改的进程id

2.7.4、nice:定制运行的优先级

sudo nice -n num ./可执行文件

2.7.5、kill:发送信号

kill -l:查看Linux的信号

2) SIGINT ctrl+c 结束进程

3) SIGQUIT 退出

4) SIGILL 结束进程

9) SIGKILL 杀死进程 不可忽略信号

10) SIGUSR1 未定义功能

12) SIGUSR2 未定义功能

13) SIGPIPE 管道破裂信号

14) SIGALRM 时钟信号

17) SIGCHLD 子进程状态发生改变会给父进程发送

19) SIGSTOP 停止 不可忽略信号

 kill num PID:给指定进程发送num信号

kill PID:默认执行9信号

2.8、文件系统命令

2.8.1、文件系统类型

磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext2、Ext3、VFAT、ISO9660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、ReiserFS、XFS、JFS、FAT(File Allocation Table,文件分配表)、FAT16、FAT32、NTFS(New Technology File System)等;

网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS(Network File System,网络文件系统)、Samba(SMB/CIFS)、AFP(Apple Filling Protocol,Apple文件归档协议)和WebDAV等;

专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File

2.8.2、linux文件

/bin:存放系统中最常用的可执行文件

/dev:存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等

/home:用户主目录的默认位置

/mnt:该目录通常用于作为被挂载的文件系统的挂载点

/usr:用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件

 2.8.3、文件操作

1、file 文件名:查找文件属性信息

 a.out:文件名

ELF:类型

64-bit LSB shared object:小端存储

x86-64:64位操作系统

version 1 (SYSV):版本

dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2:动态链接的库

BuildID[sha1]=929170c6441faf1ed8244921a012c77550a8584a:动态ID

for GNU/Linux 3.2.0:gcc编译器的版本

not stripped:文件没有被压缩

 2、cat 文件名:将文件内容输出到终端

        cat -n 将文件内容输出到终端,并且显示行号

3、find 查找文件

格式:find 路径 -name 文件名

        // 从路径往后查找文件

find ./ -name *.c

4、grep 查询指定字符串

        grep "字符串" 文件名        // 在一个文件中查找

        grep "字符串" 路径 -nR        // 从路径往后查找,找到所有用这个字符串的文件

        // -n:回显找到的行数

        // -R:查找路径可以是目录,-R会进行递归查找

5、rm

rm -f 文件名:强制删除,文件存不存在都删除

rm -rf 目录:强制删除文件夹

6、head 文件名:默认输出文件内容的前10行

        head -num 文件名:输出文件内容前num行

7、tail 文件名:默认输出文件内容的后10行

        tail -num 文件名:默认输出文件内容后num行

head -30 文件名| tail -5        // 文件前30行当中的后5行

3、硬链接和软连接

3.1、硬链接

硬链接文件可以理解为文件的副本(复制粘贴)

        ln        // 根据 Linux 系统分类给文件的 inode(ls -li) 号进行建立的(文件的编号),没有办法跨越文件系统

格式:

        ln 被链接的文件(源文件) 生成的链接文件(目标文件)

特点:

        1)硬链接的属性是 - 相当于生成一个副本  起别名

        2)源文件删除链接文件依然存在

        3)删除源文件之后,即使创建一个和源文件同名文件,也和硬链接文件之间不存在链接关系

        4)修改其中一个文件的内容,另一个也会更改(另一个文件重新打开)

        5)硬链接文件和源文件有相同的inode号

3.2、软连接(符号链接)

理解为快捷方式

ln -s        // 利用文件的路径来建立,最好是绝对路径

格式:

        ln -s 被链接的文件(源文件) 生成链接文件(目标文件)

特点:

        1)软连接文件属性 | 相当于快捷方式

        2)修改内容都变化

        3)软连接文件可以链接目录

        4)源文件删除,链接断开,在原来位置创建就可以重新链接

        5)拷贝目录的软连接可以直接拷贝,如果需要拷贝普通文件的软连接文件,需要加上 -d 保证参数可以存在链接属性        // cp -d 软连接文件(普通文件)  路径

3.3、硬链接和软连接区别

1、使用上:

        两者没有区别,与正常文件访问方式一样,支持读写,可执行文件也可直接执行

2、本质上:

        硬链接:本质上是同一个文件

        软连接:本质上不是同一个文件

3、跨设备区别:

        硬链接:不支持

        软连接:支持

4、inode区别:

        硬链接:相同

        软连接:不同

5、连接数:

        硬链接:创建新的硬链接,连接数会增加,删除硬链接,连接数会减少

        软连接:创建或删除,连接数不会变化

6、文件夹:

        硬链接:不支持

        软连接:支持

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

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

相关文章

图生生AI描述生图:一句话生成蛇年海报素材

2025年春晚吉祥物“巳升升”的亮相&#xff0c;引发了广泛讨论。其整体造型参考甲骨文中的“巳”字&#xff0c;以青绿色为主调&#xff0c;象征春意盎然、蓬勃生机。从头部轮廓、脸颊螺旋形状到五官设计&#xff0c;都蕴含着丰富的传统文化元素。巳升升的亮相&#xff0c;春节…

KMP前缀表 ≈ find() 函数——28.找出字符串中第一个匹配项的下标【力扣】

class Solution { public: //得到前缀表void getNext(int *next,string needle){int j0;for(int i1;i<needle.size();i){while(j>0 && needle[j]!needle[i]) jnext[j-1];//**j>0**>j0是出口if(needle[i]needle[j]) j;next[i]j;//若写入if中&#xff0c;则该…

前端笔记----

在我的理解里边一切做页面的代码都是属于前端代码。 之前用过qt框架&#xff0c;也是用来写界面的&#xff0c;但是那是用来写客户端的&#xff0c;而html是用来写web浏览器的&#xff0c;相较之下htmlcssJavaScript写出来的界面是更加漂亮的。这里就记录我自个学习后的一些笔…

FairGuard游戏安全2024年度报告

导 读&#xff1a;2024年&#xff0c;国内游戏市场实际销售收入3257.83亿元&#xff0c;同比增长7.53%&#xff0c;游戏用户规模6.74亿人&#xff0c;同比增长0.94%&#xff0c;市场收入与用户规模双双实现突破&#xff0c;迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&…

C++ STL之容器介绍(vector、list、set、map)

1 STL基本概念 C有两大思想&#xff0c;面向对象和泛型编程。泛型编程指编写代码时不必指定具体的数据类型&#xff0c;而是使用模板来代替实际类型&#xff0c;这样编写的函数或类可以在之后应用于各种数据类型。而STL就是C泛型编程的一个杰出例子。STL&#xff08;Standard …

uniapp 抖音小程序 getUserProfile:fail must be invoked by user tap gesture

项目场景&#xff1a; uniapp 抖音小程序 getUserProfile:fail must be invoked by user tap gesture,在实现点击头像需要出发抖音小程序获取用户原生头像的操作中&#xff0c;无论如何也无法触发抖音的原生窗口&#xff01; 问题描述 这个问题我找了很多博主的方法&#xff…

.NET Core NPOI 导出图片到Excel指定单元格并自适应宽度

NPOI&#xff1a;支持xlsx&#xff0c;.xls&#xff0c;版本>2.5.3 XLS&#xff1a;HSSFWorkbook&#xff0c;主要前缀HSS&#xff0c; XLSX&#xff1a;XSSFWorkbook&#xff0c;主要前缀XSS&#xff0c;using NPOI.XSSF.UserModel; 1、导出Excel添加图片效果&#xff0…

SpringCloud微服务:基于Nacos组件,整合Dubbo框架

dubbo和fegin的差异 一、Feign与Dubbo概述 Feign是一个声明式的Web服务客户端&#xff0c;使得编写HTTP客户端变得更简单。通过简单的注解&#xff0c;Feign将自动生成HTTP请求&#xff0c;使得服务调用更加便捷。而Dubbo是一个高性能、轻量级的Java RPC框架&#xff0c;提供了…

Jenkins触发器--在其他项目执行后构建

前言&#xff1a; jenkins中有多种触发器可用&#xff0c;可以方便的控制构建的启动 这里简单介绍下项目后构建的配置方法 1. 解释&#xff1a; Build after other projects are built Set up a trigger so that when some other projects finish building, a new build is…

4、蓝牙打印机-定时器驱动

蓝牙打印机实现打印内容&#xff0c;需要先通过定时器发送固定的节拍驱动步进电机转动&#xff0c;从而驱动打印头打印相应的内容。 因此想要实现打印&#xff0c;先要实现定时器功能。 本例采用通用定时器2完成发送节拍功能。 1、硬件 定时器总线 由上图知道TIM2是挂载在A…

(纯小白教程)Mac OS中安装配置Anaconda及常用conda命令回顾

本教程介绍了如何在Mac OS系统中下载、安装、配置 Anaconda3&#xff0c;并介绍了换源的方法&#xff0c;最后介绍了常用的conda命令。本教程适用于苹果系统&#xff0c;如需要在Windows系统或者Liunx系统中安装Anaconda3&#xff0c;可移步至主页的其他博客。 &#xff08;纯…

JVM面试相关

JVM组成 什么是程序计数器 详细介绍Java堆 什么是虚拟机栈 能不能解释一下方法区&#xff1f; 直接内存相关 类加载器 什么是类加载器&#xff0c;类加载器有哪些 什么是双亲委派模型 类加载过程 垃圾回收 对象什么时候可以被垃圾回收器回收 JVM垃圾回收算法有那些 JVM的分代…

Netty 入门学习

前言 学习Spark源码绕不开通信&#xff0c;Spark通信是基于Netty实现的&#xff0c;所以先简单学习总结一下Netty。 Spark 通信历史 最开始: Akka Spark 1.3&#xff1a; 开始引入Netty&#xff0c;为了解决大块数据&#xff08;如Shuffle&#xff09;的传输问题 Spark 1.6&…

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器&#xff0c;为开发者提供了一个强大的平台来实施这些实践。然而…

qt QPainter setViewport setWindow viewport window

使用qt版本5.15.2 引入viewport和window目的是用于实现QPainter画出来的内容随着窗体伸缩与不伸缩两种情况&#xff0c;以及让QPainter在widget上指定的区域(viewport)进行绘制/渲染&#xff08;分别对应下方demo1&#xff0c;demo2&#xff0c;demo3&#xff09;。 setViewpo…

likeshop同城跑腿系统likeshop回收租赁系统likeshop多商户商城安装及小程序对接方法

前言&#xff1a;首先likeshop是一个开发平台&#xff0c;是一个独创的平台就像TP内核平台一样&#xff0c;你可以在这个平台上开发和衍生出很多伟大的产品&#xff0c;以likeshop为例&#xff0c;他们开发出商城系统&#xff0c;团购系统&#xff0c;外卖点餐系统&#xff0c;…

继续以“实用”指导Pythonic编码(re通配表达式)(2024年终总结②)

弃现成工具手剥任务&#x1f9d0;&#xff0c;我哈哈滴就像笨笨的傻大个儿&#x1f60b;。 (笔记模板由python脚本于2025年01月12日 23:29:33创建&#xff0c;本篇笔记适合熟悉正则表达式的coder翻阅) 【学习的细节是欢悦的历程】 Python官网&#xff1a;https://www.python.or…

相机和激光雷达的外参标定 - 无标定板版本

1. 实现的效果 通过本软件实现求解相机和LiDAR的外参&#xff0c;即2个传感器之间的三维平移[x, y, z]和三维旋转[roll, pitch, yaw]。完成标定后&#xff0c;可将点云投影到图像&#xff0c;效果图如下&#xff1a; 本软件的优势&#xff1a;&#xff08;1&#xff09;无需特…

WPF系列九:图形控件EllipseGeometry

简介 EllipseGeometry用于绘制一个椭圆的形状。它通常与其他图形元素结合使用&#xff0c;比如 Path 或者作为剪切区域来定义其他元素的外形。 定义椭圆&#xff1a;EllipseGeometry 用来定义一个椭圆或者圆的几何形状。参与绘制&#xff1a;可以被用作 Path 元素的数据&…

qt设置qwidget背景色无效

最近在做一个界面&#xff0c;有三个子窗体&#xff0c;于是就把各个子窗体分别做成了三个UI&#xff0c;再将3个UI&#xff0c;放到1个UI&#xff0c;再将那一个UI在其他窗体上进行提升。 最后就发现怎么设置qwidget的背景都没有效果。 在Qt中&#xff0c;如果是给Qwidget的…