linux命令行与shell脚本大全——学习笔记(1-4章)

第一章、第二章

查看运行层级

runlevel
目前有7个层级,3是有联网的多用户模式,5是配有GUI的多用户模式,等等

第三章

启动shell

查看/etc/passwd文件,可以看到每个用户的默认shell程序,如:
christine:x:1001:1001::/home/christine:/bin/bash
表示christine这个用户登录后,GNU bash shell会自动启动

bash手册

man命令根据关键词搜索,man -k keyword
info
help,可以直接用,如help help,也可以按参数来,大部分命令支持--help参数,如ls --help

文件系统

/usr 是文件系统的第二层次结构,存放的是一些可共享的只读数据。

列出文件和目录

ls有个-R参数,选项不仅显示了当前目录下的内容,还显示了目录下所有子目录及其内容

链接文件

软链接

例如给data.txt创建一个软链接文件
ln -s data.txt data_txt_link.txt
此时查看data_txt_link.txt文件,此文件是链接文件:
lrwxrwxrwx 1 xiaojiao docker 11 Feb 28 15:06 data_txt_link.txt -> ../data.txt

硬链接

例如给data.txt创建一个硬链接文件
ln ../data.txt data_hard_link.txt
但是不能跨存储设备创建硬链接,否则会有如下类型的报错:
ln: failed to create hard link './sand.py' => '/mnt/d/learn/test/sand/sand.py': Invalid cross-device link

异同

1 软链接/硬链接创建链接时,原始文件都必须事先存在
2 软链接相当于创建了快捷方式, ls -i可以看到inode编号不同,硬链接创建的是一个独立的虚拟文件,其中包含了原始文件的信息以及位置。但是两者就根本而言是同一个文件,inode相同
3 软链接与原始文件文件大小一般不同,因为只是创建了一个指向原始文件的快捷方式,但硬链接与原始文件大小相同
4 硬链接只能对处于同一存储设备的文件创造,软链接没有这个限制

处理文件

创造文件

注意:touch命令创建文件时,如果文件已存在,会改变文件的时间,不会对已存在的文件内容造成任何影响

复制文件

cp复制文件时,新文件的创建时间是复制时的时间,但注意,若目标文件已存在,将不会提醒,直接覆盖,因此最好加上-i选项

移动mv

移动/重命名命令没什么好说的,已经很熟悉了,但是要注意,mv操作后,文件的时间以及inode是不变的
mv命令也可以不经过允许就覆盖已存在的文件,所以建议用-i

处理目录

查看文件内容

查看文件类型

file命令,如:file data.txt

查看整个文件

cat -n 可以显示行号; -b只给有内容的行加上行号

第四章 更多的bash shell命令

监测程序

探查进程

ps:选项非常多,以下只列出我自己常用的选项的含义:

选项含义
a显示与任意终端关联的所有进程(对应,T显示与当前终端关联的所有进程)
r仅显示运行中的进程
e显示命令使用的环境变量
f用层级格式来显示进程,显示哪些进程启动了哪些进程

实时检测进程

top,平均负载三个值分别表示最近1/5/15分钟的平均负载

结束进程

kill 部分任务会忽略kill 命令,可以使用kill -9 pid 或 kill -s HUP pid
pkill 可以直接使用进程名,如pkill http*可以kill所有进程名以http开头的进程

监测磁盘空间

mount/umount

在默认情况下,mount 命令会输出当前系统已挂载的设备列表,但是mount 命令的默认输出非常杂乱
umount 略

df

直接df -h,以易读方式显示磁盘空间,其他参数不需要记忆

du

du 命令可以显示某个特定目录(默认情况下是当前目录)的磁盘使用情况
让输出更清晰易读的选项:

选项含义
-c显示所有已列出文件的总大小
-h按人类易读格式输出大小
-s输出每个参数的汇总信息

处理数据文件

数据排序sort

sort命令将数字视为字符并按标准的字符排序,如1000会排在2的前面,要想按照数字排序,使用sort -n,注意,如果文件有多行,sort会按照第一列的数字排序。
常用选项:

选项含义
-n将数字按值排序
-c不排序,但检查输入数据是否有序,无序的话就报告,形如sort: test_sort1.txt:2: disorder: 2
-M用三字符的月份名按月份排序,如Jan, Feb等
-t指定字段分隔符
-k排序键从 POS1 位置开始,到 POS2 位置结束(如果指定了 POS2的话)
-r逆序排序(升序变成降序)
-u相当于sort | uniq

-t -k可以结合使用,例如/etc/passwd 文件,以冒号分隔,按照第三列来排序,可以写作:
sort -t ':' -k 3 -n /etc/passwd

数据搜索grep egrep

常用选项:

选项含义
-v反向搜索
-n显示匹配到的行的行号
egrep 命令是 grep 的一个衍生,支持 POSIX 扩展正则表达式,其中包含更多可用于指定匹配模式的字符
其他略

数据压缩

gzip 压缩,可以正则匹配一次压缩多个,如gzip test*
gunzip 解压

数据归档

tar,选项很多,但我一般压缩用zcvf(tar -zcvf test.tar.gz test*,这里是创建了一个名为test.tar.gz的文件,包含test开头的所有文件和目录,其实test*这里可以是空格分隔的多个参数,可包含文件或目录),解压用zxvf,目前看来够用了,且使用没出错,所以略

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

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

相关文章

面条机水箱低液位提醒功能如何实现

光电液位传感器在面条机水箱低液位功能的实现中发挥着重要作用。该技术通过光学原理和分离式设计,实现了面条机水箱液位的精准检测和智能控制,为面条生产提供了稳定的保障。 采用分离式液位传感器,将菱镜部分设计直接置于面条机水箱上&#…

nvidia a100-pcie-40gb环境安装

1.conda create --name torch_li python3.8 2. conda install pytorch1.7.1 torchvision0.8.2 torchaudio0.7.2 cudatoolkit11.0 -c pytorch 环境测试:torch.cuda.is_available() 3.conda remove -n torch_li --all 4.pip install opencv-python-headless 5.pip ins…

SOCKS55代理与Http代理有何区别?如何选择?

在使用IPFoxy全球代理时,选择 SOCKS55代理还是HTTP代理?IPFoxy代理可以SOCKS55、Http协议自主切换,但要怎么选择?为解决这个问题,得充分了解两种代理的工作原理和配置情况。 在这篇文章中,我们会简要介绍 …

overleaf上传到arxiv 参考文献无法引用(?)

记一下overleaf上传到arxiv的bug 参考文献无法引用(?) 因为需要上传bbl文件而不是bib 用overleaf生成bbl 另外需要将bbl和txt的文件名设置成一样的

Linux笔记--解压缩

一、tar指令 Linux打包文件通常以.tar结尾,压缩文件以.gz(.bz2)结尾。通常压缩和打包是一起进行的,打包压缩后文件后缀名一般为.tar.gz。 z∶使用gzip进行解压缩 j:使用bzip2进行解压缩 c: create,创建文件 x : extract,解压 v:…

RocketMQ消息积压如何处理

在高并发的场景下,由于消息产生速度超过消费速度,可能会导致消息积压的问题。本文将介绍 RocketMQ 消息积压的原因和如何处理积压问题。 什么是消息积压 消息积压是使用 MQ 消息队列系统中,最常见的一种性能问题。如下图所示,当生…

2、Redis-Hash【常用】

目录 一、Hash和String的区别 二、常用命令与演示 三、Redis中Hash类型应用场景 一、Hash和String的区别 这是String, keyvaluenameTrxcx 这是Hash, keyvaluestudentTrxcxnameTrxcxage21sexmale 可以明显的看出,String的value就是一条数据&#…

手动实现一个简单的 HTTP 请求

本文我们通过 Socket,写一个 HTTP 协议,直观的感受一下上篇文章中的请求和响应。 定义 socket server 通过上篇文章,我们知道 HTTP 协议底层是通过 Socket 实现的,所以我们先通过 socket 定义一个 server import socket#初始化 …

复试PAT乙级day34

1111~1115 1113 很难,看了题解 人类习惯用 10 进制,可能因为大多数人类有 10 根手指头,可以用于计数。这个世界上有一种叫“钱串子”(学名“蚰蜒”)的生物,有 30 只细长的手/脚,在它们的世界里…

【探索AI】十六 深度学习之第2周:深度神经网络(五)实践与应用

实践与应用 实现步骤 当您想要使用深度学习框架构建简单的深度神经网络并进行训练与评估时,您可以按照以下步骤进行操作: 步骤一:选择深度学习框架 选择您熟悉或希望学习的深度学习框架,比如TensorFlow、PyTorch、Keras等。 …

算法题目跟连系列之“手把手刷链表”

第一道 题目:https://leetcode.cn/problems/partition-list/description/ 86 Partition List 这个题解决的时候,无非就是把链表中小于X的元素摘出来形成一个链表,同时也把大于等于X的元素摘出来形成另外一个链表。最后把这两个链表合并。这个…

卷积神经网络介绍

卷积神经网络(Convolutional Neural Networks,CNN) 网络的组件:卷积层,池化层,激活层和全连接层。 CNN主要由以下层构造而成: 卷积层:Convolutional layer(CONV)池化层&#xff1a…

docker报错 fatal error: runtim: out of memory

fatal error: runtim: out of memory 真无语了 系统内存也够用 原来是虚拟机的不够用了 (原本1g已经加到2g还是会报错) 直接3台虚拟机都加到4g

多线程(进阶四:线程安全的集合类)

目录 一、多线程环境使用ArrayList 二、多线程环境使用队列 三、多线程环境使用哈希表 1、HashMap 2、Hashtable 3、ConcurrentHashMap (1)缩小了锁的粒度 (2)充分使用了CAS原子操作,减少一些加锁 (3)针对扩容操作的一些优化(化整为零&#xff…

maven 项目的创建入门

拓展阅读 maven 包管理平台-01-maven 入门介绍 Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格 maven 包管理平台-02-windows 安装配置 mac 安装配置 maven 包管理平台-03-maven project maven 项目的创建入门 maven 包管理平台-04-maven archetype 项目原型 ma…

蓝桥杯Python B组练习——python复习2

蓝桥杯Python B组练习——python复习2 一、简介 复习python,参考书《Python编程从入门到实践》,[美]Eric Mathes著。前一部分见专栏——蓝桥杯Python B组练习 这一部分不全,不想写了 二、字典 1.一个简单的字典 来看一个游戏&#xff0…

LeetCode -55 跳跃游戏

LeetCode -55 跳跃游戏 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。…

模拟服务器响应的测试框架:moco

第1章:引言 大家好,我是小黑,在这篇博客中,咱们要聊聊Moco测试框架。这个框架,可不是一般的小伙伴,它在模拟服务器响应这块儿,可是有不少看家本领。 首先,Moco是啥呢?简…

stable diffusion webUI之赛博菩萨【秋葉】——工具包新手安裝与使用教程

stable diffusion webUI之赛博菩萨【秋葉】——工具包新手安裝与使用教程 AI浪潮袭来,还是学习学习为妙赛博菩萨【秋葉】简介——(葉ye,四声,同叶)A绘世启动器.exe(sd-webui-aki-v4.6.x)工具包安…

【面试题解析--Java基础】回顾与加深,浅浅回顾JAVA常规八股,利用起碎片化时间。

一、Java基础 1. final 关键字的作用: 修饰类时,被修饰的类无法被继承。修饰方法时,被修饰的方法无法被重写。修饰变量时,变量为常量,初始化后无法重新赋值。 2. static 关键字的作用: 修饰变量和方法时…