【跟小嘉学 Linux 系统架构与开发】二、Linux发型版介绍与基础常用命令介绍

系列文章目录

【跟小嘉学 Linux 系统架构与开发】一、学习环境的准备与Linux系统介绍
【跟小嘉学 Linux 系统架构与开发】二、Linux发型版介绍与基础常用命令介绍

文章目录

  • 系列文章目录
    • @[TOC](文章目录)
  • 前言
  • 一、 Linux 发行版(Linux distribution)介绍
  • 二、Centos 虚拟机初始化 和基础命令介绍
    • 2.1、初始化centos7
    • 2.2、登录虚拟机
    • 2.3、推出登录
    • 2.4、Shell 命令的语法格式
    • 2.5、语系的支持
      • 2.5.1、显示支持的语言
      • 2.5.2、修改语言支持
        • 2.5.2.1、修改当前shell的值
        • 2.5.2.2、修改当前用户的配置
        • 2.5.2.3、修改系统级的设置
        • 2.5.2.4、通过 localectl 来修改
      • 2.5.3、常见问题
    • 2.6、基础命令介绍
      • 2.6.1、日期与时间命令:date
        • 2.6.1.1、命令简介
        • 2.6.1.2、命令的基本语法
        • 2.6.1.3、常用的 date 命令选项
        • 2.6.1.4、常用的命令格式
        • 2.6.1.5、用法示例
          • 1、显示当前日期和时间
          • 2、显示指定格式的日期和时间
          • 3、设置系统的日期和时间
          • 4、显示目录或文件的最后修改时间
          • 5、date 命令还支持日期和时间的计算
          • 6、date 命令还支持相对日期的表示方式
      • 2.6.2、日历的命令:cal
        • 2.6.2.1、cal 命令介绍(Calendar)
        • 2.6.2.2、cal 语法格式
        • 2.6.2.3、选项
      • 2.6.3、简单好用的计算器:bc
        • 2.6.3.1、bc 命令安装
        • 2.6.3.2、bc 命令使用
    • 三、重要的快捷键
      • 3.1、Tab 按键
      • 3.2、CTRL+C按键
      • 3.3、CTRL+D按键
      • 3.4、[shift]+{[PageUP]|[Page Down]}按鍵
  • 四、错误信息的查看

前言

本系列文章,我们将讲述Linux操作系统和Linux集群架构、Shell脚本编程、Linux系统开发等相关知识点。我们需要注意《鸟哥的linux私房菜》中文版才到第三版用的CentOS5,繁体版使用的CentOS7。

参考资料
《鸟哥的Linux私房菜繁体版》
《鸟哥的Linux私房菜简体版》


一、 Linux 发行版(Linux distribution)介绍

Linux 发行版(Linux distribution)是指一个基于 Linux 内核的操作系统,由一组软件包组成,包括操作系统内核、系统工具、应用程序、图形界面等。发行版通过整合和配置这软件包,使得用户可以方便地安装、配置和使用Linux系统,

目前由许多不同的 Linux 发行版可供选择,每个发行版都有自己的特点和目标用户群,一些常见的Linux发行版包括:

  • 1、Ubuntu:基于 Debian 发行版,注意易用性和用户友好性,适用于桌面和服务器环境;
  • 2、Fedora:由 RedHat 公司支持的发行版,注意最新的软件和技术,使用于开发者和技术爱好者
  • 3、CentOS:基于Red Hat Enterprise Linux(RHEL)源代码的发行版,注重稳定性和可靠性,适用于企业和服务器环境。
  • 4、Debian:非商业性质的发行版,注重自由软件原则和稳定性,适用于各种用途。
  • 5、Arch Linux:注重简洁和灵活性的发行版,适用于有技术基础的用户。
  • 6、Kali Linux:Kali Linux是一种基于Debian的操作系统,专门用于渗透测试和网络安全应用。它提供了一系列的安全工具和脚本,用于评估和保护计算机系统的安全性。Kali Linux是一个开放源代码项目,由Offensive Security开发和维护。它包含了多个渗透测试工具,如Metasploit、Nmap、Wireshark等,以及用于无线网络攻击、密码破解、漏洞利用等的工具。Kali Linux也被广泛用于网络安全培训和认证。

二、Centos 虚拟机初始化 和基础命令介绍

2.1、初始化centos7

vagrant init centos/7
vagrant up

此时,我们可以看到 VisualBox 上面有一个正在运行的虚拟机。
运行结果
此时虚拟机是无界面启动的,我们可以点击 显示按钮,打开虚拟机显示界面。

2.2、登录虚拟机

此时,我们打开了虚拟机显示界面,可以看到 Cenos 的登录界面。
登录界面

  • CentOS Linux 7 (Core):显示的 Linux 发行版的名称(Centos 7)
  • Kernel 3.10.0-1127.e17.x86_64 on an x86_64:显示的 Linux 内核的版本为 3.10.0-1127.e17.x86_64, 且目前这部主机的硬件为 x86_64
  • 10 login: 那个10 是你的主机名称,root 是登录账号的名称,一般不建议推荐使用;
  • Password:这一行就是输入密码,输入密码的时候不会显示字样
  • Last login: 这一行列出使用者上一次这个账号登录系统等时间与终端等名称。
  • [root@10 ~]# : 这一行显示的用户名@主机名 ~表示当前所在的目录为用户主目录,也就是/root 或/home/用户名(普通用户),# 则是超级管理员 root账户的提示符,$ 则是普通账户的提示符(这部分我们会在用户管理详细讲解)。

2.3、推出登录

[root@10 ~]$ exit

2.4、Shell 命令的语法格式

[vagrant@10 ~]$ command [-options] paremeter1 parameter2 ...
  • command: 命令或可执行程序或脚本(script)的名称,例如 cd、ls、exit等
    -[] 表示可选项,通常选项带有 - 号(缩写) 或–符号(全称) ,例如:-h、–help;
  • parameter1,parameter2 为依附在选项后面的参数,或事 command的参数;
  • z指令选项,可以有多个以空格区分,不论空格有多少个 都是认为是一个空格;
  • 按下 enter 键,命令就会立即执行
  • 如果指令太长,可以使用 反斜杠(\ )来转义Enter符号,链接到下一行。
  • 在Linux 系统中,英文大小写字母是不同的,例如 CD和cd 是不同的命令。

这部分详细介绍,我们也会在 Bash 专题来讲解。

2.5、语系的支持

有时候,我们的终端会出现乱码,由于我们的系统有时候不支持中文编码输出。

2.5.1、显示支持的语言

[root@10 ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

使用 locale -a 可以列出本机目前可以使用的值,locale -av 还可以具体查看这些值更详细的信息。

这些内容都是环境与 Local 地区相关的环境变量。

  • LC_CTYPE :语言符号及其分类
  • LC_NUMERIC:数字
  • LC_COLLATE:比较和排序习惯
  • LC_TIME:时间显示格式
  • LC_MONETARY:货币单位
  • LC_MESSAGES:信息主要是提示信息,错误信息、状态信息、标题、标签、按钮和菜单等
  • LC_PAPER:默认纸张尺寸大小
  • LC_NAME:姓名书写方式
  • LC_ADDRESS:地址书写方式
  • LC_MEASUREMENT:度量衡表达方式
  • LC_IDENTIFICATION:对 locale 自身包含的信息的概述

这些 local 定义文件放在 /usr/share/i18n/locales 目录下,例如 en_US、zh_CN 都是 locale 的定义文件。

[root@10 locales]# pwd
/usr/share/i18n/locales
[root@10 locales]# ls
aa_DJ        en_IE           is_IS               sat_IN
aa_ER        en_IE@euro      iso14651_t1         sc_IT
aa_ER@saaho  en_IN           iso14651_t1_common  sd_IN
aa_ET        en_NG           iso14651_t1_pinyin  sd_IN@devanagari
af_ZA        en_NZ           it_CH               se_NO
am_ET        en_PH           it_IT               shs_CA
an_ES        en_SG           it_IT@euro          sid_ET
ar_AE        en_US           iu_CA               si_LK

Locale 是软件在运行时的语言环境,它包括了语言(Language)、地域(Territory)和字符集(Codeset),一个local的书写格式为: 语言[_地域[.字符集]],

例如:

zh_CN.UTF-8
zh_CN.GB18030

LC_ALL、LANG和LC_* 均不指定特定的值,系统将会采用 POSIX作为 locale,也就是C locale。

LC_ALL 也是 glibc 定义的一个宏.

2.5.2、修改语言支持

2.5.2.1、修改当前shell的值

显示的目前系统的语言支持为 en_US.UTF-8,LANG 只与输出信息有关,如果要更改其他不同的内容,需要同步LC_ALL 才行

export LC_ALL=en_US.utf8
2.5.2.2、修改当前用户的配置
~/.config/locale.conf
2.5.2.3、修改系统级的设置
[root@10 locales]#  cat /etc/locale.conf 
LANG="en_US.UTF-8"
2.5.2.4、通过 localectl 来修改
localectl set-locale LANG=en_US.utf8

localectl 命令可以查看和设置区域和键盘布局的命令

2.5.3、常见问题

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

LC_CTYPE、LC_MESSAGES、LC_ALL 没有设置正确的值,一般跨操作系统的ssh 才有可能导致这个问题,例如从 Mac OS 上 ssh 登录到 LInux,由于 Mac OS 变量值的格式 和 linux 不同,ssh 时又会自动去设置,会有LC_CTYPE=UTF-8的情况出现,而整个语法在linux中是错误的。只要输入export LC_CTYPE="en_US.utf8"即可修复

2.6、基础命令介绍

2.6.1、日期与时间命令:date

2.6.1.1、命令简介

date 命令用于显示和设置系统的日期与时间,它可以显示当前的日期与时间,也可以根据指定的格式来输出日期和时间信息,在系统管理和脚本编写中经常被使用。

2.6.1.2、命令的基本语法
date [选项] [+格式]
  • [选项] 是可选的命令,用于控制 date 命令的行为;
  • [+格式]是可选的日期和时间的格式,用于指定输出的日期和时间的格式;
2.6.1.3、常用的 date 命令选项
  • -d:指定要显示的日期和时间,可以是具体的日期和时间字符串,也可以是表示时间间隔的字符串。
  • -u:显示协调世界时(UTC)。
  • -R:以 RFC 2822 格式输出日期和时间。
  • -I:以 ISO 8601 格式输出日期和时间。
  • -s:设置系统的日期和时间。
  • -r:显示指定文件的最后修改时间。
  • --help:显示帮助信息,列出可用的选项和参数。
2.6.1.4、常用的命令格式
  • %Y:四位数的年份。
  • %m:两位数的月份(01-12)
  • %d:两位数的日期(01-31)。
  • %H:两位数的小时(00-23)。
  • %M:两位数的分钟(00-59)。
  • %S:两位数的秒数(00-59)。
  • %A:完整的星期几名称(例如:Sunday)。
  • %a:缩写的星期几名称(例如:Sun)。
  • %B:完整的月份名称(例如:January)。
  • %b:缩写的月份名称(例如:Jan)。
2.6.1.5、用法示例
1、显示当前日期和时间
[vagrant@10 ~]$ date
Fri Mar 29 21:02:26 UTC 2024`

上面显示的星期五,三月29日 21:02:26,在2024年UTC 时区。

2、显示指定格式的日期和时间
[vagrant@10 ~]$ date +"%Y-%m-%d %H:%M:%S"
2024-03-29 21:15:59
3、设置系统的日期和时间
[vagrant@10 ~]$ sudo date -s "2024-03-31 17:39:08"
Sun Mar 31 17:39:08 UTC 2024
4、显示目录或文件的最后修改时间
date -r filename

例如

[vagrant@10 ~]$ date -r .bashrc +"%Y-%m-%d %H:%M:%S"
2020-04-01 02:17:30
5、date 命令还支持日期和时间的计算

date 命令支持对日期和时间进行计算和调整。可以使用-d选项指定要计算的日期和时间,以及要添加或减去的时间间隔。

时间单位

  • seconds/second
  • minutes/minute
  • hours/hour
  • days/day
  • weeks/week
  • months/month
  • years/year

例如
1、指定日期后一个月的日期

[vagrant@10 ~]$ date -d "2023-11-15 + 1 month" +"%Y-%m-%d %H:%M:%S"
2023-12-15 00:00:00

2、当前日期指定一个小时后的时间

[vagrant@10 ~]$ date -d "+1 hour" +"%Y-%m-%d %H:%M:%S"
2024-03-31 18:44:36
6、date 命令还支持相对日期的表示方式
  • X seconds ago:表示 X 秒前的日期。
  • X minutes ago:表示 X 分钟前的日期。
  • X hours ago:表示 X 小时前的日期。
  • X days ago:表示 X 天前的日期。
  • X weeks ago:表示 X 周前的日期。
  • X months ago:表示 X 个月前的日期。
  • X years ago:表示 X 年前的日期。

X 是一个整数,用于指定偏移的数量

2.6.2、日历的命令:cal

2.6.2.1、cal 命令介绍(Calendar)

cal 使用显示当前日历或指定日期的日历 的命令。

2.6.2.2、cal 语法格式
cal [选项] [参数]
2.6.2.3、选项
  • -l 显示单月输出
  • -3:显示临近三个月的日历;
  • -s:将星期日作为月的第一天;
  • -m:将星期一作为月的第一天;
  • -j:显示“julian”日期;
  • -y:显示当前年的日历。
  • -v:显示版本信息
  • -h:显示帮助文档

2.6.3、简单好用的计算器:bc

2.6.3.1、bc 命令安装

精简版的系统中 默认是没有安装 bc 命令的,我们可以使用 yum 去安装。

yum install bc -y
2.6.3.2、bc 命令使用
[root@10 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1+2+3
6 

此时,光标就会停留在你要输入的地方。

如果你要进行小数的计算,那么就必须设置计算精度 scale=number ,就是设置小数点的位数。

如果你要退出bc计算器 可以使用 quit 命令。

三、重要的快捷键

3.1、Tab 按键

在 类Unix系统中的 shell,Tab 提供的是文件名和命令补全的功能,如果我们输入 ca 按两次Tab 键,会输出 所有 ca开头的命令

[root@10 ~]# ca
cacertdir_rehash  ca-legacy         capsh             case              catchsegv         
cal               caller            captoinfo         cat               catman            

如果输入ls -al ~/.bash 按两次 tab

[root@10 ~]# ls -al ~/.bash
.bash_history  .bash_logout   .bash_profile  .bashrc  

在某些特殊的命令下,tab可以变成 参数或选项补齐

[root@10 ~]# date --
--date        --help        --reference=  --rfc-3339=   --universal   
--date=       --iso-8601    --rfc-2822    --set=        --version    

使用 tab 可以避免很多输入错误的机会。

3.2、CTRL+C按键

CTRL+C 组合按键可以中断当前的程序的运行。

3.3、CTRL+D按键

CTRL+D 组合按键代表啦 输入结束(End of File,EOF 或 End Of Input的意思,某些情况下代表了 exit。

3.4、[shift]+{[PageUP]|[Page Down]}按鍵

使用 [shift]+{[PageUP]|[Page Down]} 可以进行向前翻页和向后翻页。

四、错误信息的查看

[root@10 ~]# DATE
-bash: DATE: command not found

-bash 表示 shell 的名称,command not found 表示命令找不到,可能的原因是

  • 命令不存在,因为软件没有安装,解决方案就是安装相关软件;
  • 这个命令所在目录和用户没有将他加入命令搜索路径中(PATH);
  • 打错单词了

非精简安装的可能会有 Similar command is: 'date' 的提示,表示相似的命令有 date,这也是一种解决方案的参考。

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

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

相关文章

Yarn的安装和使用(2):使用及问题解决

Yarn是JavaScript的依赖管理工具,它与npm类似,但提供了一些额外的性能优化和一致性保证。 Yarn的使用: 初始化项目: yarn init 此命令会引导您创建一个新的package.json文件,用于记录项目的元信息和依赖。 添加依赖&…

java 接口

接口 既然接口中的所有方法都需要重写,那么我不干脆直接写一个类,不写接口就完事了呢 接口定义的是一种特征,告诉使用者和程序,这个实现了这个类型的接口拥有哪些功能 如果一个类实现了runnable,那么这个类就可以用来定…

【Linux在程序运行时打印调用栈信息(函数名,文件行号等)】

在程序运行时打印相关调用栈信息&#xff08;函数名&#xff0c;文件行号等&#xff09;,便于梳理调用逻辑等 //stack.c #include <stdio.h> #include <execinfo.h> #include <stdlib.h> #include <string.h> #include <stdbool.h>#define MAX_…

Flutter与iOS和Android原生页面交互

一、Flutter 与原生页面交互的重要性和应用场景 Flutter 是一个由 Google 开发的开源框架&#xff0c;用于创建跨平台的移动、Web 和桌面应用程序。Flutter 允许开发者使用一套代码库为 Android 和 iOS 等平台构建美观、高性能的应用程序。然而&#xff0c;尽管 Flutter 提供了…

如何通过Elasticsearch实现搜索的关键词达到高亮的效果

高亮 首先介绍一下什么是搜索的关键词达到高亮的效果&#xff0c;如图所示 当在百度里面搜索elasticsearch的时候&#xff0c;可以看到出现的搜索结果里面elasticsearch这个关键词明显与其他的条文不一样&#xff0c;用红颜色凸显了“高亮效果”。当我们想要在自己的项目里面…

1、初识drf

drf的学习需要学习者有django基本使用知识。 文章目录 什么是drf&#xff0c;有什么作用CBV是什么初步使用drf 下载以及django创建项目django最小启动内容修改setting修改 url 编写drf视图编辑url测试返回结果 什么是drf&#xff0c;有什么作用 drf(django rest-framework),让…

C#面:有几种连接到数据库的方式,请列举出来并分别说明它们可以连接哪些数据库

ADO.NET 连接&#xff1a; ADO.NET 是 .NET Framework 提供的一种数据访问技术&#xff0c;可以连接多种类型的数据库&#xff0c;包括但不限于SQL Server、Oracle、MySQL 等。通过 ADO.NET 连接&#xff0c;可以使用各种提供程序&#xff08;如SqlClient、OracleClient、OleD…

探索Vue脚手架:构建现代化Web应用的利器

随着现代Web应用程序的不断发展&#xff0c;前端开发者们需要更高效、更灵活的工具来构建复杂的用户界面。在这个领域中&#xff0c;Vue.js作为一种流行的JavaScript框架&#xff0c;为开发者提供了丰富的生态系统和强大的工具。而Vue脚手架&#xff0c;作为Vue.js开发过程中的…

手机有线投屏到直播姬pc端教程

1 打开哔哩哔哩直播姬客户端并登录(按下图进行操作) 2 手机用usb数据线连接电脑(若跳出安装驱动的弹窗点击确定或允许),usb的连接方式为仅充电(手机差异要求为仅充电),不同品牌手机要求可能不一样,根据实际的来 3 在投屏过程中不要更改usb的连接方式(不然电脑会死机需要重启) …

MultiPath HTTP:北大与华为合作部署FLEETY

当前的终端基本都能支持蜂窝网络和wifi网络&#xff0c;然而&#xff0c;不同的网络通路都不可避免的会出现信号不好或者其他因素引起的通路性能(吞吐量、时延等)下降。为了能够提升终端业务体验&#xff0c;很多不同的MultiPath方案被提出&#xff0c;其中&#xff0c;包括应用…

使用Detours进行HOOK

文章目录 Detours介绍Detours配置Detours进行Sleep Hook Detours介绍 Detours是微软研究院开发的一款软件工具&#xff0c;用于Windows平台上的应用程序重定向和修改。 它可以在运行时修改应用程序的执行路径&#xff0c;允许开发人员注入自定义代码来改变应用程序的 行为&…

vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2017-12629)

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发&#xff0c;主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。此次7.1.0之前版本总共爆出两个漏洞&#xff1a;[XM…

勒索病毒钱包地址与邮箱地址集合

勒索病毒攻击已经成为了全球最大的安全威胁之一&#xff0c;99%以上的勒索病毒交付赎金都是使用BTC&#xff0c;BTC已经涨到一万多美元了&#xff0c;最近一年针对企业的勒索病毒攻击也越来越多&#xff0c;勒索病毒黑产团队在加密受害者文件之后一般会留下一些联系方式&#x…

[Flutter]打包IPA

1.直接使用Xcode运行iOS工程 不用flutter构建&#xff0c;在Xcode中是可以独立进行构建运行和打包发布的。 1).运行项目 先将flutter的build清理 $ flutter clean $ flutter pub get 然后立即用XCode打开iOS工程运行 运行会报错&#xff1a; error: The sandbox is not …

分块大小

两个指针 复杂度 \(O(u*n\frac{n^2}{u})\) 根据均值不等式&#xff0c; \(u*n\frac{n^2}{u}\) 在 \(u*n\frac{n^2}{u}\) 时取最小值 即 \(u\sqrt{n}\) 三个指针&#xff08;带修&#xff09; 复杂度 \(O(u*n\frac{n^2}{u}\frac{n^3}{u^2})\) 显然&#xff0c; \(\frac{n^2}…

C刊级 | Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测

C刊级 | Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测 目录 C刊级 | Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测效果一览基本介绍模型描述程序…

Vue.js基础指令

&#xff08;在讲指令之前&#xff0c;可以先了解插值表达式&#xff0c;如果已经知道&#xff0c;当我没说&#xff09; 一.插值表达式 1.数据绑定最常见的形式就是双大括号的文本插值&#xff0c;Mustache上属性的值替代。只要绑定的数据对象上属性发生了改变&#xff0c;插…

设置asp.net core WebApi函数请求参数可空的两种方式

以下面定义的asp.net core WebApi函数为例&#xff0c;客户端发送申请时&#xff0c;默认三个参数均为必填项&#xff0c;不填会报错&#xff0c;如下图所示&#xff1a; [HttpGet] public string GetSpecifyValue(string param1,string param2,string param3) {return $"…

Node.js中的导入导出

Node.js中的导入导出 一.CommonJs标准二.ECMAScript标准1.默认导入导出2.命名导出和导入 一.CommonJs标准 导出语法&#xff1a; module.exports {对外属性名: 模块内私有变量 }导入语法&#xff1a; const 变量名 require(模块名或路径) // Node.js 环境内置模块直接写模…

【PSINS工具箱】EKF与UKF滤波

描述 对工具箱SINS/GPS&#xff0c;153例程的修改&#xff0c;将EKF和UKF放在一个文件里面&#xff0c;一次运行可以得到两个滤波的结果。 片段 运行截图 程序完整源代码 在有工具箱的情况下&#xff0c;直接运行此代码&#xff0c;即可得到结果 % 基于PSINS工具箱的IMU数据…