【跟小嘉学 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,这也是一种解决方案的参考。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】socket套接字

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 目录 👉🏻IP地址和端口号pid和port的关系 👉🏻TCP和UDP👉🏻网络字节序&…

数据分析之Tebleau 的度量名称和度量值

度量名称 包含所有的维度 度量值 包含所有的度量 度量名称包含上面所有的维度,度量值包含上面所有的度量 当同时创建两个或两个以上度量或维度时,会自动创建度量名称和度量值 拖入省份为行(这会是还没有值的) 可以直接将销售金额拖到数值这里 或者将销售…

C++11 shared_from_this学习

最近学习网络变成发现一些C源码库中封装对象时会公有继承enable_shared_from_this&#xff1b; 用一个案例进行说明&#xff0c;案例代码如下&#xff1a; #include <iostream> #include <memory> #include <stdio.h>using namespace std;class C : public…

ComfyUI一直提示transformers需要升级,怎么解决?

&#x1f3a1;背景 最近通过秋叶的启动器使用Comfyui的时候&#xff0c;总是会有个弹窗提示transformers需要升级&#xff0c;你会发现&#xff0c;就算是更新了ComfyUI版本&#xff0c;升级了所有插件&#xff0c;升级了transformers库&#xff0c;这个提示仍然存在&#xff…

【Spring Security】 快速入门

文章目录 一、 身份认证Demo1、创建工程2、代码编写2.1、Controller2.2、Html2.3、application.properties配置 3、启动项目并访问 二、Spring Security 默认做了什么二、底层原理1.概述2.FiltersDelegatingFilterProxyFilterChainProxySecurityFilterChainSecurity Filters 三…

【docker】搭建Nexus私服

1、拉取镜像 docker pull sonatype/nexus3 2、运行镜像 docker run -d -p 10002:8081 -e NEXUS_CONTEXTnexus --name nexus-quick sonatype/nexus3 3、访问地址&#xff1a; http://localhost:10002/nexus &#xff01;&#xff01;&#xff01;注意我的端口号是…

数据结构--循环链表(C语言实现)

一.循环链表的设计 typedef struct CNode{ int data; struct CNode* next; }CNode ,*CList; 2.循环链表的示意图: 3.循环链表和单链表的区别: 唯一区别,没有空指针,尾节点的后继为头,为循环之意. 二.循环链表的实现 //初始化return true; }//返回key的前驱地址&#xff0c;如果…

查找--二分查找(Binary Search)

二分查找属于静态查找表&#xff0c;当以有序表表示静态查找表时&#xff0c;查找函数可用折半查找来实现。 查找过程&#xff1a;先确定待查记录所在的范围&#xff08;区间&#xff09;&#xff0c;然后逐步缩小范围直到找到或找不到该记录为止。 以处于区间中间位置记录的…

【Chiplet】技术总结

Chiplet基本知识点汇总 1. Wafer, die, chip, cell的区分2. MCM, SiP, SoC, Chiplet的区别4. Chiplets的先进封装5. Chiplet发展阶段 Chiplet基本知识点汇总 1. Wafer, die, chip, cell的区分 Wafer: 晶圆&#xff0c;指一整个晶圆硅片。 Die: 从晶圆上切分下来的小方格&a…

本地GPU调用失败问题解决3重新配置anaconda环境(成功)

1、右键“以管理员身份”打开anaconda prompt conda create -n python 3.9 2、使用官方下载源的配置 3、修改conda下载超时 conda config --set remote_connect_timeout_secs 60 conda config --set remote_read_timeout_secs 100 查看配置结果conda config --show 配置内…

HarmonyOS实战开发-slider组件的使用

介绍 本篇Codelab主要介绍slider滑动条组件的使用。如图所示拖动对应滑动条调节风车的旋转速度以及缩放比例。 相关概念 slider组件&#xff1a;滑动条组件&#xff0c;通常用于快速调节设置值&#xff0c;如音量调节、亮度调节等应用场景。 环境搭建 软件要求 DevEco Stu…

xftp突然无法连接虚拟机

问题描述 使用xftp连接虚拟机的时候一直显示 连接xxx.xxx.xx.xx失败 问题原因查找 首先打开本地cmd命令提示符 ping 你的虚拟机ip地址 我的是 ping 192.168.xx.xx 显示请求超时 解决方案&#xff1a; 点击打开更改适配器选项 右键vmnet 8——属性 如图前四个选项必选 单…

Linux:ip协议

文章目录 ip协议基本认识ip协议的报头 ip协议基本认识 前面对于TCP的内容已经基本结束了&#xff0c;那么这也就意味着在传输层也已经结束了&#xff0c;那么下一步要进入的是的是网络层&#xff0c;网络层中也有很多种协议&#xff0c;这里主要进行解析的是ip协议 前面的TCP…

【ensp实验】GRE和MGRE相关实验

要求&#xff1a; 1、R5为ISP,只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址; 2、R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方 R2与R5之间使用ppp的CHAP认证&#xff0c;R5为主认证方; R3与R5之间使用HDLC封装; 3、R1、R2、R3构建一个MGRE环境&#…

线上系统时间慢八个小时的排查之路

最近有一个新项目上线&#xff0c;在上线时&#xff0c;突然发现时间与正常时间对不上&#xff0c;少了八个小时&#xff1b;但我丝毫不慌&#xff0c;这不就是个时区的问题吗&#xff0c;简单&#xff0c;但是这一次它给我深深的上了一课&#xff0c;一起来看整个排查过程吧。…

K8S之Configmap的介绍和使用

Configmap Configmap概述Configmap的简介Configmap能解决的问题Configmap应用场景局限性 Configmap创建方法通过命令行直接创建通过文件创建指定目录创建编写Configmap资源清单Yaml文件 Configmap的使用案例通过环境变量引入&#xff1a;使用configMapKeyRef通过环境变量引入&a…

工厂方法模式与抽象工厂模式的深度对比

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;设计模式深度解析&#xff1a;工厂方法模式与抽象工厂模式的深…

张颂文|永远保持好奇心的人,是永远进步的人。

哈喽,你好啊,我是雷工! 今天看到了张颂文的一段演讲,提到了他因为好奇心而被改变的人生。 如果想把单一和枯燥的工作做的更好,张颂文的办法是像一个孩子一样保持好奇心,不停地提出一些有趣的问题。 在5年的导游经历中,对每次游览的地点都像初次游览般保持好奇心,正因为…

【C语言】【Leetcode】2437. 有效时间的数目

文章目录 题目思路一、枚举思路二、回溯 题目 链接: link 思路一、枚举 这题的可以简单的看成 h1 h2 : m1 m2 的情况&#xff0c;其中 h1 和 h2 有关&#xff0c; m1 和 m2 有关&#xff0c;数目不多可以直接暴力枚举解决 int countTime(char * time) {int countHour 0;i…

【JavaWeb】Day24.Web入门——SPringBootWeb入门

什么是SPring&#xff1f; 我们可以打开Spring的官网(Spring | Home)&#xff0c;去看一下Spring的简介&#xff1a;Spring makes Java simple。Spring的官方提供很多开源的项目&#xff0c;我们可以点击上面的projects&#xff0c;看到spring家族旗下的项目&#xff0c;按照流…