第0次 序言
突然想起有好多书没有看,或者看了也没留下任何记录,以后有空必须得好好整理才行,这次就从《Linux命令行和shell脚本编程大全开始》
本文完全是闲聊,自娱自乐,我觉得做开发是一件很快乐的事情,但是工作是开发就是一个悲剧了,当初选择去当公务员也是这么一回事,我觉得工匠可以造出王冠来,但是戴王冠的又不是它自己,得不到荣耀,也得不到对得起这份辛勤的money,更重要的是欣赏王冠的是少数人,不像美丽的雕像或者画作,纯粹自娱自乐罢了,还不如直接把自己卖给国王,给国王当私人的工匠,不用担心明天接不到打铁的活计,哈哈哈。
上面这段话是开玩笑啦,每个人都有自己的想法不是嘛,上面是我的想法。
想起阿基米德的浮力定律,那个在黄金王冠里面掺假的笨蛋工匠,为人类贡献了一条新发现,也算是没有白活。这里我又想起进步,想要进步就必须付出代价,不论是现实还是神话,比如北欧神话奥丁想要获得智慧,他就献祭了自己的一只眼睛,想要力量,就要献祭自己去体会痛苦,把自己挂在世界树上九天九夜,人类社会也一样,每次进步都是无数人的痛苦,战乱之后的社会复习,科技进步,制度更新,献祭了不知道多少可怜的灵魂。也许这是一种规律,也许这是一种诅咒,也许两者都是。总之,这条浮力定律献祭了一个可怜的工匠,可能在某本寓言书上说:这是贪婪的代价,我们有智慧的人应该学会谦逊和满足。
为了避免这些痛苦,我选择逃避,不想做开发了,就当是一种乐趣吧。
回归原点,我们从这本书的第三章开始,因为shell是从第三章开始的。我有个小小的建议,一本书的第一章要快速阅读,不用读的那么明白,在读完整本书之后,回到序言,第一章,细细评委,因为第一章往往太浓,一次就像看明白,就跟喝一杯蒸馏酒一样,容易喝醉。
1.bash shell
shell的意思是外壳的意思,这里就是操作系统的外壳,之所以叫他外壳,是因为用户不会直接接触到操作系统的内核,比如我们查看目录下的文件,总不能调用内核,写个程序来输出吧,shell确实是这么做的,它是沟通内核与用户之间的外壳,因此叫做shell。
shell分为很多类型,这里专门指的是bash shell,当然啦,你也可以切换为其他的shell命令。
启动shell,打开终端窗口就行了,上面有提示符。输入命令,执行的结果就会输出到终端。
2.文件目录
Linux文件系统看起来是个树状图,其实这个树状图是逻辑结构,真实结构式线性的,真实结构就是物理结构,内存什么的。内存懂吧,这样的东西就是按照顺序排列,必然是线性的。树状结构容易理解,也容易操纵,比如删除,查找之类的删除,节约时间。
文件目录都是从根目录开始,根目录的名字是"/"
在他之下有其他的目录:
| / | 根目录 |
| /bin | 二进制目录,存放许多用户级的GNU工具 |
| /boot | 启动目录,存放启动文件 |
| /dev | 设备目录,Linux在这里创建设备节点 |
| /home | 主目录,Linux在这里创建用户目录,就跟windows的User目录一样 |
| /lib | 库文件目录,存放系统和应用程序的库文件 |
| /media | 媒体目录,可移动媒体设备的常用挂载点 |
| /mnt | 挂载目录,另一个可移动媒体设备的常用挂载点 |
| /opt | 可选目录,存放第三方软件包和数据文件 |
| /proc | 进程目录,存放现有硬件以及当前进程的相关信息 |
| /root | root用户的主目录 |
| /sbin | 系统二进制目录,存放许多GNU管理级工具 |
| /run | 运行目录,存放系统运行时的运行目录 |
| /srv | 服务目录,存放本地服务的相关文件 |
| /sys | 系统目录,存放系统硬件相关的文件 |
| /tmp | 临时目录,可以在该目录下创建和删除临时文件 |
| /usr | 用户二进制目录 |
| /var | 可变目录,存放经常变化的文件,比如日志文件 |
| /etc | 系统配置文件 |
在/etc/passwd文件中,记录了系统用户账户列表以及每个用户的基本配置信息,用冒号分割,一共七个字段,记录用户名,被加密的密码,使用的shell版本等等信息。
如果不懂某个命令,可以使用man 命令。
首先,我们应该知道什么叫路径,这个可能时一切的起点,就跟我们用windows系统一样,把文件放在不同的目录,命令也是基于路径,这叫脚踏实地。
路径分为两种,一种是绝对路径,一种是相对路径,绝对路径是指从根目录开始,一直到你所在的位置,另一种是从你当前所在的位置开始算,一般用"./"表示,上一级目录也叫父目录,我猜现在应该叫父母目录了,用"../"表示。
3.常用命令
(1).cd 切换文件目录,比如切换到ect目录:cd /etc,相对目录切换需要查看路径。
(2).ls 列出文件,后面可以加各种选项,可以使用man ls查看有哪些选项。
比如ls -a,列出全部文件
(3).touch 创建文件 比如:touch read.txt 创建一个read.txt的文件
(4).cp source destiantion 复制source到destination 比如 cp a ../ 把a复制到上一级目录里面
还可以用通配符。
(5)mv 它可以对文件重命名,也可以把文件移动到其他地方
(6)rm 删除文件,删除文件要注意文件夹和文件的区别,删除文件夹要加-r
不管是删除还是移动,最好加上-i,因为删除或者移动,就找不回来了,-i会提示你是否真的删除和覆盖。
(7).mkdir 创建文件目录,如果想要同时在文件夹下面创建其他文件夹,要加-p
(8).rmdir 删除空目录
(9).file 查看文件类型
(10).cat 查看整个文件,搭配-n可以显示行号。-b显示有字符的行号
(11).more分页查看文件,支持翻页,退出按q,这是对cat的改善,
(12).less 是more的升级版,可以在其中查找字符,上下翻动
(13).tail 查看文件的最后几行,可以搭配-n,表示查看最后哪些行,比如tail -n 3 查看最后三行,还可以用-f
(14).head查看开头几行
(15).in 链接文件,这个有点麻烦,但是如果用windows图标来类比,就简单了。
链接分为两种,符号链接和硬链接,符号链接就是图标一样的链接了
符号链接
in -s a b
b就是指向a的链接,a相当于图标,所以a的内容和b的内容不一样
硬链接
in a b
b指向a,a和b是一样的。只能对处于储存媒体的文件创建硬链接
本文都是简单介绍,不会深入研究。
相关文章:
第0次 序言
突然想起有好多书没有看,或者看了也没留下任何记录,以后有空必须得好好整理才行,这次就从《Linux命令行和shell脚本编程大全开始》 本文完全是闲聊,自娱自乐,我觉得做开发是一件很快乐的事情,但是工作是开发…...
ESP32设备驱动-OLED显示单个或多个DS18B20传感器数据
OLED显示单个或多个DS18B20传感器数据 文章目录 OLED显示单个或多个DS18B20传感器数据1、DS18B20介绍2、硬件准备3、软件准备4、代码实现4.1 读取单个DS18B20数据4.2 驱动多个DS18B20传感器4.3 OLED显示DS18B20数据在本文中,我们将介绍如何ESP32驱动单个或多个DS18B20传感器,…...
MongoDB快速上手
文章目录 1、mongodb相关概念1.1、业务应用场景1.2、MongoDB简介1.3、体系结构1.3.1 数据库 (databases) 管理语法1.3.2 集合 (collection) 管理语法 1.4、数据模型1.5、MongoDB的特点 2、单机部署3、基本常用命令3.1、案例需求3.2、数据库操作3.2.1 选择和创建数据库3.2.2 数据…...
maven 初学
1. maven 安装 配置安装 路径 maven 下载位置: D:\software\apache-maven-3.8.6 默认仓库位置: C:\Users\star-dream\.m2\repository 【已更改】 本地仓库设置为:D:\software\apache-maven-3.8.6\.m2\repository 镜像已更改为阿里云中央镜像仓库 <mirrors>…...
解决WPF+Avalonia在openKylin系统下默认字体问题
一、openKylin简介 openKylin(开放麒麟) 社区是在开源、自愿、平等和协作的基础上,由基础软硬件企业、非营利性组织、社团组织、高等院校、科研机构和个人开发者共同创立的一个开源社区,致力于通过开源、开放的社区合作ÿ…...
智能合约漏洞,Dyna 事件分析
智能合约漏洞,Dyna 事件分析 1. 漏洞简介 https://twitter.com/BlockSecTeam/status/1628319536117153794 https://twitter.com/BeosinAlert/status/1628301635834486784 2. 相关地址或交易 攻击交易 1: https://bscscan.com/tx/0x7fa89d869fd1b89e…...
Elasticsearch基础篇(四):Elasticsearch7.x的官方文档学习(Set up Elasticsearch)
Set up Elasticsearch 1 Configuring Elasticsearch(配置 Elasticsearch)1.1 Setting JVM Options(设置JVM选项)1.2 Secure Settings(安全设置)Introduction(介绍)Using the Keystore(使用密钥库)Applying Changes(应用更改)Reloadable Secure Settings(可重新加载的安全设置)R…...
二叉树的遍历方式和代码
二叉树的三种遍历和代码 1.前序遍历2.中序遍历3.后序遍历4.三种遍历方式的代码实现 1.前序遍历 学习二叉树结构,最简单的方式就是遍历。所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具…...
小样本学习——匹配网络
目录 匹配网络 (1)简单介绍: (2)专业术语 (3)主要思想 (4)训练过程 问题 回答 MANN 匹配网络 (1)简单介绍: Matching netwo…...
CSS 常用样式 之字体属性
font-weight(字体粗细) 字体粗细用于设置文本的粗细程度,可以使用如下的值: normal:正常字体(默认)bold:加粗字体bolder:更加加粗lighter:更加细 代码实例…...
nodejs+vue游戏测评交流系统elementui
可以实现首页、发布招募、公司资讯、我的等,另一方面来说也可以提高在游戏测评交流方面的效率给相关管理人员的工作带来一定的便利。在我的页面可以对游戏攻略、我的收藏管理、实际上如今信息化成为一个未来的趋势或者可以说在当前现代化的城市典范中,发布招募等功能…...
1.2.OpenCV技能树--第一单元--OpenCV安装
目录 1.文章内容来源 2.OpenCV安装 3.课后习题代码复现 4.易错点总结与反思 1.文章内容来源 1.题目来源:https://edu.csdn.net/skill/opencv/opencv-662dbd65c89d4ddb9e392f44ffe16e1a?category657 2.资料来源:https://edu.csdn.net/skill/opencv/opencv-662dbd65c89d4ddb…...
全志ARM926 Melis2.0系统的开发指引⑥
全志ARM926 Melis2.0系统的开发指引⑥ 编写目的9. 系统启动流程9.1. Shell 部分9.2.Orange 和 desktop 部分9.3. app_root 加载部分9.4. home 加载部分 10. 显示相关知识概述10.1. 总体结构10.2. 显示过程10.3. 显示宽高参数关系 -. 全志相关工具和资源-.1 全志固件镜像修改工具…...
Junit单元测试为什么不能有返回值?
这个问题的产生来源于我们老师上节课说的我们班一个男生问他的想法,刚开始听到这个还觉得挺有意思,我之前使用单元测试好像下意识的就将它的返回值写为void,一般都是进行简单的测试,也从没思考过在某个单元测试中调用另一个单元测试ÿ…...
【成像光敏描记图提取和处理】成像-光电容积描记-提取-脉搏率-估计(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Ubuntu无法引导启动的修复
TLDR:使用Boot-Repair工具。 Boot-Repair Boot-Repair是一个简单的工具,用于修复您在Ubuntu中可能遇到的常见启动问题,例如在安装Windows或其他Linux发行版后无法启动Ubuntu时,或者在安装Ubuntu后无法启动Windows时,…...
Windows电脑上的多开软件是否安全?
在Windows电脑上使用多开软件可以让使用者同时运行多个相同或不同的程序,这对于某些需要同时操作多个账号或实例的用户来说非常有用。但是很多人担心使用多开软件是否安全。 多开软件的安全问题主要在于它们可能会破坏操作系统的稳定性和安全性,导致系统…...
U盘支持启动区+文件存储区的分区方法
准备新U盘 启动diskgenius ,先建立一个主分区(7G),剩余空间建立为第二分区,然后设定第二分区激活。 diskgenius格式化 用diskgenius格式化,在格式化的过程中有一个 写入dos系统的选项,在格式…...
JavaEE-线程进阶
模拟实现一个定时器 运行结果如下: 上述模拟定时器的全部代码: import java.util.PriorityQueue;//创建一个类,用来描述定时器中的一个任务 class MyTimerTask implements Comparable<MyTimerTask> {//任务执行时间private long …...
【开发篇】十五、Spring Task实现定时任务
文章目录 1、使用示例2、相关配置3、Scheduled注解4、Spring Task单线程下的阻塞坑5、Spring Task阻塞问题的处理思路6、Spring Task在分布式环境中 上一篇用Quartz来实现了定时任务,但相对来说,这个框架还是比较繁琐。Spring Boot默认在无任何第三方依赖…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
