day_01至day_02

本文介绍了Linux系统的特性和安装过程,并详细讲解了基本的Shell命令,包括电源管理、网络配置及进程管理等内容。

注册了优快云,没想到博客功能还要手动添加 :)


既然这样那就昨天和今天的一起发主要功能:

1、养成写日志的习惯;

2、锻炼自己的总结归纳能力;

3、锻炼一下文笔和打字速度;

4、与别人一起交流,分享学习经验;

5、提升一下交际能力。


好!进入正题

Day_01 HelloWorld! 开班典礼和Linux系统介绍 

 操作系统:

 Operating System简称OS,管理各种软硬件资源,是最复杂的软件。它处于硬件设备和应用程序的中间层,对下面管理各种硬件设备,对上所有应用程序的执行提供一个平台


主流操作系统: 

 服务器:Unix/Linux,Windows Server,OS X 

 PC端:Windows,OS X,Linux 

嵌入式设备:Linux,Android,iOS,VinCE/VinPhone,Symbian


www.kernel.org(Linux官网提供不同版本Linux内核源码)


Linux系统:开源免费,任何个人或组织都可以获得Linux内核源码,然后根据自己的需求进行修改定制或二次开发,并以全新的名称发布,所以Linux系统有很多不同的发行版本,比如麒麟系统,红旗系统,RedHat,Ubuntu,Fedora,CentOS等,这些不同发行版的系统的内核都是Linux,把它们统称为Linux系统


Unix系统:功能强大,但对硬件的配置要求很高,在中低端机器上无法发挥其强大功能Linux系统:继承Unix系统的强大功能和操作方法,但在中低端机器上也能流畅运行



Day_02 Linux系统的安装和熟悉初步Shell命令操作

Linux系统管理技术(使用技术):

Linux系统的使用方式:

1、桌面环境操作(傻瓜式操作,功能不够强大,某些操作效率低甚至无法完成,普通操作);

2、Shell命令(专业操作,高效,学习难度大,需要记忆相关命名)日积月累,循序渐进;


常用桌面环境:GNOME和KDE

和Windows系统不同,Linux系统的桌面环境并不是内核的一部分,也就是说它不是必须的,相当于一个应用程序而已,可以不安装桌面环境或者卸载它


要用好Unix/Linux需要掌握常用Shell命令!


常用Shell命令:


[当前用户@主机名 ~] $(普通用户标志)

reset:重置终端;clear:清屏


1、电源管理:

poweroff 关机

reboot 重启

shutdown 关机或重启,常用参数 -r: reboot after shutdown

   -h:half(停止)or power off after shutdown

有些命令是可以带参数,命令和参数、参数和参数之前用空格分开;

有些命令需要root,可用su(select user)切换当前用户,普通用户没有权限执行;如果需要切换回普通用户可用 exit


man : manual 查看命令或函数的帮助手册

Ctrl + C 组合键:强制终止当前正在执行的命令


2、网络配置管理命令

ifconfig:查看或设置IP地址等网络设置

ping:检测本机和目标机器之间的网络是否通畅

netstat:查看当前网路状态信息(之后网络编程会用到)


3、进程(任务)管理命令

进程(Process):正在运行的程序,或者程序执行的一次过程,一个进程相当于一个任务,每个进程都有一个不同的编号,即PID。操作系统通过PID来区分不同进程。


Linux等现代操作系统都是多任务的系统


ps: process snapshot,查看进程快照信息

top:查看进程的实时信息(通常q键退出)

kill:结束单个进程 -9(信号参数确保,-9确保进程死掉)

killalll:结束批量进程在Linux系统中,一个进程通常都对应一个控制终端,不依附任何终端的进程就是守护进程


&:将命令调到后台执行

fg:foreground,将当前在后台的进程调到前台执行

bg:background,运行当前后台的所有进程

Ctrl + Z 组合键:强制将当前正在前台运行的进程调到后台,并暂停进程的执行


今日小结: 

 之前在学校有学过相关Linux入门基础课,所以对这两天的内容也比较熟悉。对于Shell命令,像poweroff,shutdown,ifconfig,ping,kill都很熟悉当做复习吧,但对于其他命令可能初次见面,比如man、netstat、top、fg、bg,但经过老师讲解之后也能理解。 

 最后说一说前后台,就举一下ping的例子吧,如果不设置参数进行限制的话它会一直ping下去,在前台它会使你的输入的一般命令无效化(fg,bg除外,这两个命令可以改变前后台状态,Ctrl Z 组合键会改变运行状态),在后台虽然对输入的一般命令没影响,但是会以刷屏的形式刷动命令结果,影响视觉上的感官效果。

<think> 根据用户的查询,用户想了解DAY_OF_MONTH在编程中的含义及使用。结合提供的引用内容,我们可以进行以下分析: 1. 引用[2]中明确指出:DAY_OF_MONTH的主要作用是`cal.get(DAY_OF_MONTH)`,用来获得这一天在是这个月的第多少天。例如,如果是5月15日,那么DAY_OF_MONTH的值就是15。 2. 引用[2]还提到,Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1(即增加日期),而是用于获取或设置日期的特定部分。增加日期应该使用`Calendar.DATE`。 3. 引用[3]展示了一个C语言函数`day_of_year`,它计算给定日期是该年的第几天。虽然不直接使用DAY_OF_MONTH常量,但展示了如何通过累加月份的天数来计算一年中的天数,这间接说明了在日期处理中,月份中的天数是一个基础概念。 4. 引用[1]提到了DAY_OF_WEEK_IN_MONTH,这与DAY_OF_MONTH不同,它计算的是当前星期在当前月中的出现次数(如第几个星期三)。 因此,我们可以总结如下: **DAY_OF_MONTH的含义**: 在编程中(特别是在Java的`Calendar`类中),`DAY_OF_MONTH`是一个字段常量,表示一个月中的第几天,取值范围通常是1到31(取决于月份)。例如,5月15日的`DAY_OF_MONTH`值为15。 **使用场景**: 1. **获取当前日期是一个月中的第几天**:使用`calendar.get(Calendar.DAY_OF_MONTH)`。 2. **设置日期为一个月的特定某一天**:使用`calendar.set(Calendar.DAY_OF_MONTH, day)`,其中`day`是想要设置的日期(1到31之间的整数)。 **示例代码(Java)**: ```java import java.util.Calendar; public class DayOfMonthExample { public static void main(String[] args) { // 获取当前日期 Calendar calendar = Calendar.getInstance(); // 获取今天是本月的第几天 int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); System.out.println("今天是本月的第 " + dayOfMonth + " 天"); // 设置日期为本月的第15天 calendar.set(Calendar.DAY_OF_MONTH, 15); System.out.println("设置后的日期: " + calendar.getTime()); } } ``` **注意事项**: - 在设置`DAY_OF_MONTH`时,如果指定的值超出了当前月份的有效天数(例如在4月设置31日),`Calendar`会自动调整日期(如将日期调整为下个月的1日)。这是由`Calendar`的宽松规则(lenient)决定的,默认是宽松模式。 - 与`DAY_OF_MONTH`类似,`Calendar`类还提供了其他日期字段,如`DAY_OF_WEEK`(一周中的第几天)、`DAY_OF_YEAR`(一年中的第几天)等。 **与DAY_OF_WEEK_IN_MONTH的区别**: 引用[1]提到,`DAY_OF_WEEK_IN_MONTH`表示当前星期在当前月中的出现次数(例如,5月1日是星期三,那么它是该月的第一个星期三;5月8日(下一个星期三)是第二个星期三)。而`DAY_OF_MONTH`就是简单的日期数字(1到31)。 综上所述,`DAY_OF_MONTH`是一个用于表示月内日期的基本字段,在日期操作中非常常用。 §§相关问题§§ 1. 如何获取当前日期是一周中的第几天(星期几)? 2. 在Java中如何安全地设置日期以避免超出月份范围? 3. `Calendar`类中的`DAY_OF_YEAR`字段有什么作用? 4. 如何处理不同月份的天数差异(如闰年二月)? </think>### DAY_OF_MONTH在编程中的含义及使用 **DAY_OF_MONTH**是编程中日期处理的核心概念,表示**一个月中的第几天**(即日期数值)。在不同编程语言中,其具体实现方式有所差异: #### 1. 核心含义 - **数值范围**:1 到 31(根据月份和闰年调整) - **作用**:标识给定日期在当月中的序数位置 例如:2023-05-15 的 DAY_OF_MONTH = 15 #### 2. 使用场景(以Java为例) ```java Calendar cal = Calendar.getInstance(); // 获取当日是该月第几天 int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); // 设置日期为该月第10天 cal.set(Calendar.DAY_OF_MONTH, 10); ``` > 关键区别:与`DAY_OF_YEAR`(年中第几天)不同,DAY_OF_MONTH仅关注当月内的日期序数[^2]。 #### 3. 底层实现原理 日期计算通常通过查表法实现(如引用[3]的C语言示例): ```c int tab[2][13] = { {0,31,28,31,30,31,30,31,31,30,31,30,31}, // 非闰年 {0,31,29,31,30,31,30,31,31,30,31,30,31} // 闰年 }; ``` 计算逻辑伪代码: $$ \text{DAY\_OF\_MONTH} = \text{day} + \sum_{i=1}^{\text{month}-1} \text{tab[leap][i]} $$ 其中`leap`为闰年标志(0或1)[^3]。 #### 4. 与其他字段的区别 | 字段常量 | 作用 | 示例 (2023-05-15) | |-----------------------|-----------------------|-------------------| | `DAY_OF_MONTH` | 当月第几天 | 15 | | `DAY_OF_YEAR` | 当年第几天 | 135 | | `DAY_OF_WEEK` | 本周第几天 (周日=1) | 2 (周一) | | `DAY_OF_WEEK_IN_MONTH` | 当月第几个星期X | 3 (当月第三个周一)[^1] | #### 5. 注意事项 - **边界处理**:设置超出当月天数的值(如4月31日)会自动转到下月 - **性能优化**:避免在循环中频繁调用,优先使用日期计算库 - **时区影响**:跨时区操作需结合`TimeZone`类处理 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值