基本素质提升(一)----日常/命令积累

news2024/11/20 15:25:55

目录

一、引言

二、日常积累

三、命令积累

一、引言

这个主题主要带大家学习一下日常开发所使用的命令及相关知识,会持续更新

二、日常积累

1、kill

给某个进程发送信号
kill -STOP pid(进程号),可以发送任何信号给进程;kill -STOP %1 给jobs中的任务发送信号

2、tmux:终端复用器

可以将当前会话脱离终端,并且能开多个窗口,具体使用可以看这篇文章
Tmux 使用教程

3、linux进程后台运行方法:nohup、setsid、&、daemon

nohup:的用途就是让提交的命令忽略 hangup 信号
setsid: 将进程变为不属于接受 HUP 信号的终端的子进程
& :可在结尾加上“&”来将命令放入后台运行。但用此方法还是会收到创建会话发出的HUP信号

4、链接:简单说,链接就是一种文件共享的方式

软链接:ln -s 源文件 软链接文件, 软链接里面存放的是源文件的路径,指向源文件
硬链接:ln 源文件 硬链接文件
软链接其实就是创建一个新文件,这个文件就是用来指向其他文件的,软链接文件的inode号跟源文件的inod不同
硬链接增加了一个指向这个文件的inode,并不会额外占用磁盘空间

5、define

本质是文本替换
a、## 连接操作符
b、 #@ 字符化操作符
c、 # 字符串化操作符
d、 \ 行继续操作符
e、 VA_ARGS 宏用来接受不定数量的参数
f、当__VA_ARGS__宏前面##时,可以省略参数输入

6、gcc

在这里插入图片描述

7、通用寄存器

寄存器的主要作用是用来暂时存放参与运算的数据和运算结果,具有接收数据、存放数据和输出数据的功能。
在这里插入图片描述

8、vim

vi 十六进制显示 %!xxd
%! grep xxx
%! grep -v xxx 过滤掉xxx
13、strace:看到程序执行的所有系统调用

9、资料查找

1、不要使用百度
2、google、Bing
3、github
4、StackOverflow
5、man、tldr

三、命令积累

1、ctrl-r

使用 ctrl-r 搜索命令行历史记录(按下按键之后,输入关键字便可以搜索,重复按下 ctrl-r 会向后查找匹配项,按下 Enter 键会执行当前匹配的命令,而按下右方向键会将匹配项放入当前行中,不会直接执行,以便做出修改)。

2、移动光标

ctrl-w 删除你键入的最后一个单词
ctrl-u 可以删除行内光标所在位置之前的内容
alt-b 和 alt-f 可以以单词为单位移动光标
ctrl-a 可以将光标移至行首
ctrl-e 可以将光标移至行尾
ctrl-k 可以删除光标至行尾的所有内容
ctrl-l 可以清屏

man readline 可以查看 Bash 中的默认快捷键

3、history

键入 history 查看命令行历史记录,再用 !n(n 是命令编号)就可以再次执行。其中有许多缩写,最有用的大概就是 !$, 它用于指代上次键入的参数,而 !! 可以指代上次键入的命令了

4、输入错误命令

依次按下 ctrl-a, #, enter,将命令注释,之后可以通过history查找历史

5、.bashrc

可以把别名、shell 选项和常用函数保存在 ~/.bashrc

~/.profile是放置适用于整个会话的内容的地方,例如要在登录时启动的程序(但不是图形程序,它们进入不同的文件)和环境变量定义。

~/.bashrc是放置仅适用于 bash 本身的内容的地方,例如别名和函数定义、shell 选项和提示设置。(您也可以将键绑定放在那里,但对于 bash,它们通常会进入 。~/.inputrc

~/.bash_profile可以代替 ,但它只能由 bash 读取,不能由任何其他 shell 读取。(如果您希望初始化文件在多台机器上运行,并且您的登录 shell 不是在所有机器上都受到攻击,这主要是一个问题。如果 shell 是交互式的,则这是一个合乎逻辑的位置

要想在几台电脑中同步你的配置文件(例如 .bashrc 和 .bash_profile),可以借助 Git

6、ssh

ssh 中,了解如何使用 -L 或 -D(偶尔需要用 -R)开启隧道是非常有用的,比如当你需要从一台远程服务器上访问 web 页面
配置文件: ~/.ssh/config

TCPKeepAlive=yes
ServerAliveInterval=15
ServerAliveCountMax=6
Compression=yes
ControlMaster auto
ControlPath /tmp/%r@%h:%p
ControlPersist yes

7、top

获取 CPU 和硬盘的使用状态,通常使用使用 top(htop 更佳,可以看到每个CPU的状态),iostat 和 iotop。而 iostat -mxz 15 可以让你获悉 CPU 和每个硬盘分区的基本信息和性能表现。
在这里插入图片描述

8、内存状况

若要了解内存状态,运行并理解 free 和 vmstat 的输出。值得留意的是“cached”的值,它指的是 Linux 内核用来作为文件缓存的内存大小,而与空闲内存无关
在这里插入图片描述

9、strace 、 ltrace

strace 和 ltrace。这俩工具在你的程序运行失败、挂起甚至崩溃,而你却不知道为什么或你想对性能有个总体的认识的时候是非常有用的
在这里插入图片描述
很多时候我们希望可以看到一个进程调用了哪些API以及其调用顺序,例如我们要参考某个程序的实现,但我们又无法获得该程序的源代码时,使用系统调用跟踪命令不失为一个好办法。另外,在一些无法调试的环境上检查问题时,我们也可以用该命令来查看程序是否按预期执行。strace和dtruss都是同一类型的命令,strace是linux系统上的,而dtruss是mac系统上的。

10、ldd

使用 ldd 来检查程序需要链接的共享库
在这里插入图片描述

11、proc

如:/proc/cpuinfo,/proc/meminfo,/proc/cmdline,/proc/xxx/cwd,/proc/xxx/exe,/proc/xxx/fd/,/proc/xxx/smaps(这里的 xxx 表示进程的 id 或 pid)。

12、删除文件

如果你删除了一个文件,但通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep “filename-of-my-big-file”

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

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

相关文章

【云计算与大数据技术】云计算概论介绍

一、什么是云计算 云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法,过去往往用来用云表示电信网,后…

基于51单片机电动自行车车速报警系统proteus仿真原理图程序

功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.LCD1602液晶分三种显示模式 a)显示实时速度和本次里程 b)显示当前时间 c)显示报警速度和总里程 2.超过报警速度将声光报警 3.功能按键介绍 a显示状态下: 上’键——电机速度1 下’键——电机速度-1 设置’键—…

Java基于JSP+mysql的学科竞赛管理系统

随着我学科竞赛是对课堂上所学的理论知识的实践运用,是考察大学生学科基本理论知识和解决实际问题能力的比赛,是高等学校人才培养质量的标志之一,是培养知识-能力-素质协调发展的创新型、高素质人才重要途径,对高校的学风、就业也…

Go开发中配置一个Logger日志的功能实现

为什么需要Logger 一般在开发项目的时候我们都是需要一个存储日志的文件,因为在部署项目以后,我们只能通过去筛查日志进行检索问题,这时候日志是否可以呈现清晰这个对于我们进行排查工作是十分重要的,所以Logger能否展示出我们最…

Linux基础——git和gdb的使用

前言 我们在平时维护和上传代码时会用到git,但是这个git具体是什么,往往又说不清楚。其实git其实就是一个版本管理工具,有了这个工具就能方便快捷地查询自己上传代码的不同版本,对每一次上传的改动了如指掌。 那gdb又是什么呢&a…

文本生成自回归解码策略总结

当今文本生成的主流方式还是自回归式的语言建模,本篇文章对文本生成常用的几种自回归采样&解码策略进行总结(以下统称为采样)。 采样方式Argmax Decoding(贪婪采样)Greedy Search(贪心搜索)…

Neo4J入门笔记[2]---Neo4J GDS 图数据科学库

Neo4J 提供了GDS的库,里面包括了很多算法。GDS的英语全称是Graph Data Science(图数据科学库),其句法流程如下: stream Returns the result of the algorithm as a stream of records. stats Returns a single recor…

【VUE3】保姆级基础讲解(二)计算属性,vue组件,vue-cli脚手架,组件通讯,插槽slot

目录 计算属性computed 侦听器watch 对象监听 组件 注册全局组件 注册局部组件 Vue-CLI脚手架 安装和使用 .browserslistrc main.js jsconfig.json 组件通讯 父组件传递给子组件 props基础 非prop的attribute 子组件传递给父组件 插槽slot 基础使用 具名插槽 …

前端整合ECharts

1、简介 ECharts是百度的一个项目,后来百度把Echart捐给apache,用于图表展示,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可…

图数据库 Neo4j 学习之SpringBoot整合

Neo4j 系列 1、图数据库 Neo4j 学习随笔之基础认识 2、图数据库 Neo4j 学习随笔之核心内容 3、图数据库 Neo4j 学习随笔之基础操作 4、图数据库 Neo4j 学习随笔之高级操作 5、图数据库 Neo4j 学习之JAVA-API操作 6、图数据库 Neo4j 学习之SpringBoot整合 文章目录Neo4j 系列前…

Docker与Linux之间的关系——Namespace,Cgroups, 网络通信总结

文章目录一、前言二、NamespaceNamespace Linux内核操作方法容器隔离性与 Linux Namespace 关系Linux Namespace 常用操作三、CgroupsCgroups 子系统CPU 子系统cpuacct 子系统Memory 子系统Linux 调度器使用 cgroup 限额实践四、DockerDocker的文件系统OCI 容器标准Docker 引擎…

php+vue基于微信小程序的房屋租赁小程序

当今社会房屋租赁买卖是必不可少的,人们不管走到哪里都需要有一个温馨的家,有一个落脚之地,所以房屋租赁市场也是非常火爆!不管是房屋租赁公司或者是个人都需要一套完整的管理系统来掌握整个市场信息。针对这一需求,本…

微信小程序框架(三)-全面详解(学习总结---从入门到深化)

目录 事件系统 什么是事件 事件的使用方式 Event对象 事件分类 冒泡事件(bind) 非冒泡事件(catch) 事件类型 事件类型列表 事件携带参数 currentTarget 携带参数 mark 携带参数 条件渲染 wx:if wx:else wx:elif hidden wx:if vs hidden 区别 列表渲染 基本使用 复杂数…

C++用unordered_map查表代替if else/switch case多判断语句

一、引言 在C中我们写判断逻辑一般会用if else或switch case语句&#xff0c;比如以下例子&#xff1a; #include <iostream>using namespace std;class CTest { public:enum class ConditionType{TYPE1 0,TYPE2,TYPE3,};CTest() default;~CTest() default;void exe…

双倍NB!阿里一线架构师花7天肝出的这份620页“MyBatis源码解析绝密文档” 太震撼了!

前言 都知道MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff08;Plain Old Jav…

非零基础自学计算机操作系统 第1章 操作系统概述 1.1 操作系统的概念

非零基础自学计算机操作系统 文章目录非零基础自学计算机操作系统第1章 操作系统概述1.1 操作系统的概念1.1.1 操作系统的地位1.1.2 操作系统的作用1.1.3 操作系统的定义第1章 操作系统概述 1.1 操作系统的概念 关于什么是操作系统&#xff0c;目前尚无统一的定义。这里只能从…

基于Java的JSP电动车维修管理系统

随着我国电动车数量的不断增加&#xff0c;如果能够在电动车出现故障的时候及时的解决这些故障问题&#xff0c;并且能够让电动车的维修人员更好的对维修信息进行管理是本系统主要研究的问题&#xff61; 本项目利用软件工程原理&#xff0c;采用面向对象的编程方法&#xff0c…

会话技术

会话技术 今日目标 理解什么是会话跟踪技术 掌握Cookie的使用 掌握Session的使用 完善用户登录注册案例的功能 1&#xff0c;会话跟踪技术的概述 对于会话跟踪这四个词&#xff0c;我们需要拆开来进行解释&#xff0c;首先要理解什么是会话&#xff0c;然后再去理解什么是…

二叉树的构造(如何唯一确定一棵二叉树?附证明)

二叉树的构造(如何唯一确定一棵二叉树?附证明) 一些直观的认识 ▪ 同一棵二叉树具有唯一先序序列、中序序列和后序序列。 ▪ 不同的二叉树可能具有相同的先序序列、中序序列和后序序列。 通过上面两个例子的验证&#xff1a; ▪ 仅有一个先序序列&#xff08;或中序序列、后…

C++类和对象--封装

目录 1.封装 1.1封装的意义一--将属性和行为作为一个整体 1.1.1成员属性&#xff0c;成员变量&#xff0c;成员函数&#xff0c;成员方法 1.2封装的意义二--将属性和行为加以控制&#xff0c;公共权限&#xff0c;保护权限&#xff0c;私有权限 1.3struct和class区别 1.4成员…