Linux开发环境及应用·第一周·开始使用Linux(二)
因为是高三学生,空闲时间比较少,所以这些笔记整理出来比较慢,见谅,见谅。
既然是做笔记,这一次就不全部照抄ppt了,要加入自己的理解。
用户
Linux中的用户分为,普通用户和超级用户(root)。
root用户(超级用户)不受权限的制约,可以随意修改和删除文件,甚至是删除整个根目录:rm -rf /
千万不要作死用root权限运行上述命令!在root权限下一定要小心、谨慎地操作 (°ー°〃)
普通用户由root用户使用useradd命令创建,用户的信息放在/etc/passwd文件中,包括 用户名 和 用户ID,以及 Home目录 的位置。
登录Shell
登录Shell一般为bash,也可以选择其它shell,其它系统程序,甚至自己设计的程序。
用户可以从普通终端或者网络虚拟终端登入系统。
登入shell后,出现的shell提示符有以下两种
$
Bourne Shell系列(sh,ksh,bash)#
表示当前用户为root用户
出现shell提示符就可以输入命令了,Linux的系统命令是区分大小写的,比如:ls
和LS
是两个不同的命令,只是举个例子,LS
这个命令不一定存在。
基本命令
- man 查阅手册
- date 日期和时间
- cal 日历
- bc 计算器
- passwd 修改口令
man
man命令用户查阅联机手册,内容包括:
- 各种命令的说明书
- 系统调用的使用手册
- C语言和其它语言的库函数手册
- 系统配置文件格式
最常用的命令一般是由两到三个字母组成,就如man命令的名字取自manual的前三个字母。
用法:
man name
最基本用法,查看man命令本身的用法可以用man man
man section name
章节编号: 1为命令,2为系统调用,3为库函数,5为配置文件man -k regexp
列出关键字与正则表达式regexp
匹配的手册项目录- 按
q
退出,按空格翻到下一页,上下箭头控制上下滚动一行。
手册页的内容为:
- 列出基本功能和语法
- 对于C语言的函数调用,列出头文件和链接函数库
- 功能说明
- SEE ALSO:有关其它项目的名字和章节号
运行man man
MAN(1) 手册分页显示工具 MAN(1)
名称
man - 在线参考手册的接口
概述
man [-C 文件] [-d] [-D] [--warnings[=警告]] [-R 编码] [-L 区域] [-m
系统[,...]] [-M 路径] [-S 列表] [-e 扩展] [-i|-I] [--regex|--wildcard]
[--names-only] [-a] [-u] [--no-subpages] [-P 分页程序] [-r 提示] [-7]
[-E 编码] [--no-hyphenation] [--no-justification] [-p 字符串] [-t]
[-T[设备]] [-H[浏览器]] [-X[dpi]] [-Z] [[章节] 页[.章节] ...] ...
man -k [apropos 选项] 正则表达式 ...
man -K [-w|-W] [-S list] [-i|-I] [--regex] [章节] 词语 ...
man -f [whatis 选项] 页 ...
man -l [-C 文件] [-d] [-D] [--warnings[=警告]] [-R 编码] [-L 区域] [-P
分页程序] [-r 提示] [-7] [-E 编码] [-p 字符串] [-t] [-T[设备]]
[-H[浏览器]] [-X[dpi]] [-Z] 文件 ...
man -w|-W [-C 文件] [-d] [-D] 页 ...
man -c [-C 文件] [-d] [-D] 页 ...
man [-?V]
描述
man 是系统的手册分页程序。指定给 man 的 页
Manual page man(1) line 1 (press h for help or q to quit)
date
date命令最基本用法就是不带任何参数运行:
$ date
2019年 01月 19日 星期六 13:45:33 CST
我们还可以带一个参数来控制输出格式。
$ date '+%Y-%m-%d'
2019-01-19
这个参数叫做格式控制字符串,用法如下:
- 第一个字符必须为
+
%Y
year 年%m
month 月%d
day 日%j
这一年的第几天,用三位数表示%H
hour 时%M
minute 分%S
second 秒%s
这个s
是小写,表示 时间戳,是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒%a
星期几的缩写,大写%A
则表示全称,比如Sat
和Saturday
,我的系统语言是中文的,所以是六
和星期六
%%
表示%
本身这个字符
下面来输出类似如下的日期
% 2018年 1月1日 星期一 第001天 时间 -> 14:07:01 时间戳 -> 1234567 %
代码如下:
$ date '+%% %Y年 %m月%d日 %A 第%j天 时间 -> %H:%M:%S 时间戳 -> %s %%'
% 2019年 01月19日 星期六 第019天 时间 -> 14:12:05 时间戳 -> 1547878325 %
date还可以设置系统时间,不过需要root权限,更详细的用法可用man命令查看
可以通过NTP协议校准系统时间,命令为ntpdate:
ntpdate -q 0.pool.ntp.org
查询0.pool.ntp.org的时间,普通用户也可以用ntpdate 0.pool.ntp.org
设置时间,必须为root用户
cal
直接输入cal
不带任何参数则显示当前月份,如下:
$ cal
一月 2019
日 一 二 三 四 五 六
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
上面的19
背景颜色是不一样的,表明今天是19日。
其它用法:
cal year
例:打印2020年的日历cal 2020
cal month year
例:打印2019年1月的日历cal 1 2019
bc
bc是一个功能强大的计算器,除了基本计算外,还支持变量,函数,条件和循环等编程功能,使用类似C语言语法的小型编程语言,并且可以进行任意精度的计算!
启动后以交互式的方式运行,输入quit
退出,基本用法如下
bc
无参数启动,缺省精度是小数点后0位bc -l
用-l
参数启动,缺省精度是小数点后20位- 在交互式环境中输入
scale=100
可以设置精度为100(小数点位数) - 在交互式环境中,可以像C语言一样进行编程,变量不需要指定类型,比如计算1加到100,可以输入
for(i=1;i<=100;i++){sum+=i}
然后输入sum
显示变量的值(所有未初始化的变量默认自动初始化为0) bc file
可以将指令写在一个文件内,用文件名作为参数给bc运行
passwd
passwd用于更换用户口令(可以认为是密码,不过严格来说密码和口令是两个概念)。
普通用户使用passwd
更换自己的口令,更改前要先验证原来的口令。
root用户修改口令不用验证原来的口令,还可以强行设置其它用户的口令。比如:passwd aaa
可强行设置用户aaa的口令,但是root用户不可以读取其它用户的口令,因为口令是加密存储的,而且这种加密是不可逆的。
口令的设置与验证
口令的保存为如下形式:
系统生成的序列 + 用户口令加密成长度固定的哈希值
验证口令时,先用提供的口令用同样的加密方式加密,将得到的哈系值与系统储存的哈系值比较即可。