普通用户和超级用户
root用户(超级用户):root不受权限的制约,可随意修改和删除文件;误删重要文件可能带来严重后果。
通常不要在root下操作,一般应该创建普通用户来操作,需要做特殊管理才回到root用户。
创建新用户
由root用户创建(useradd命令),用户信息存放在/etc/passwd
文件中,包括用户名和用户ID(整数),以及Home目录,登录shell。
登录shell:一般为bash,也可以选其他shell,其他系统程序,甚至自设计的程序。
- 用户可以从普通终端或者网络虚拟终端登录进入系统
useradd 命令
Linux useradd 命令用于建立用户帐号。
useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。
可用 userdel 删除帐号。
语法:
1 | useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号] |
或
1 | useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>] |
参数说明:
-c<备注>
加上备注文字。备注文字会保存在passwd的备注栏位中。-d<登入目录>
指定用户登入时的起始目录。-D
变更预设值。-e<有效期限>
指定帐号的有效期限。-f<缓冲天数>
指定在密码过期后多少天即关闭该帐号。-g<群组>
指定用户所属的群组。-G<群组>
指定用户所属的附加群组。-m
自动建立用户的登入目录。-M
不要自动建立用户的登入目录。-n
取消建立以用户名称为名的群组.-r
建立系统帐号。-s<shell>
指定用户登入后所使用的shell。-u<uid>
指定用户ID。
使用Linux
Shell的提示符
- 登录成功后出现shell提示符
$
Bourne Shell系列(sh,ksh,bash)#
当前用户为超级用户root**(操作时要小心)**
出现shell提示符以后就可输入系统命令
与Windows不同的是组成命令的英文字母大小写敏感
基本的Linux命令
Linux命令往往有很多选项和复杂的功能,通过man查阅联机手册
man:查阅联机手册
取自manual的前三个字母,最常用命令一般由两到三个字母构成
联机手册内容
- 各种命令的说明书
- 系统调用的使用手册
- C语言和其它语言的库函数手册
- 系统配置文件格式
- 分页器:q-退出,空格-下一页,上下箭头-上移下移
- 用法:
man name
man section name
其中section
为章节编号:1命令 2系统调用 3库函数 5配置文件man -k regexp
列出关键字(keyword)与正则表达式regexp
匹配的手册项目录
手册页内容
- 列出基本功能和语法
- 对于C语言的函数调用,列出头文件和链接函数库
- 功能说明
- SEE ALSO(交叉参考):有关的其它项目的名字和章节号
date:日期和时间
Linux date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面:
%
: 印出 %%n
: 下一行%t
: 跳格%H
: 小时(00…23)%I
: 小时(01…12)%k
: 小时(0…23)%l
: 小时(1…12)%M
: 分钟(00…59)%p
: 显示本地 AM 或 PM%r
: 直接显示时间 (12 小时制,格式为hh:mm:ss [AP]M
)%s
: 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数%S
: 秒(00…61)%T
: 直接显示时间 (24 小时制)%X
: 相当于 %H:%M:%S%Z
: 显示时区
日期方面:
%a
: 星期几 (Sun…Sat)%A
: 星期几 (Sunday…Saturday)%b
%h
: 月份 (Jan…Dec)%B
: 月份 (January…December)%c
: 直接显示日期与时间%d
: 日 (01…31)%D
: 直接显示日期 (mm/dd/yy)%j
: 一年中的第几天 (001…366)%m
: 月份 (01…12)%U
: 一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形)%w
: 一周中的第几天 (0…6)%W
: 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)%x
: 直接显示日期 (mm/dd/yy)%y
: 年份的最后两位数字 (00.99)%Y
: 完整年份 (0000…9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss]
,其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。
当您不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S'
会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。
当您以 root 身分更改了系统时间之后,请记得以 clock -w
来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
通过NTP协议校对系统时间:命令ntpdate
ntpdate 0.pool.ntp.org
(设置时间,必须root用户)ntpdate –q 0.pool.ntp.org
(查询时间,普通用户也可以)
语法:
1 | date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]] |
参数说明:
-d datestr
: 显示 datestr 中所设定的时间 (非系统时间)--help
: 显示辅助讯息-s datestr
: 将系统时间设为 datestr 中所设定的时间-u
: 显示目前的格林威治时间--version
: 显示版本编号
cal:日历
Linux cal命令用于显示当前日历(公历,或称阳历),或者指定日期的日历。
语法:
1 | cal [参数][月份][年份] |
bc:计算器
Linux bc 命令是任意精度计算器语言,通常在Linux下当计算器用。支持变量、函数,条件和循环等编程功能(类似C语言的小编程语言)。
它类似基本的计算器, 使用这个计算器可以做基本的数学运算。
常用的运算:
- + 加法
- - 减法
- * 乘法
- / 除法
- ^ 指数
- % 余数
语法:
1 | bc (选项)(参数) |
选项值:
-i
:强制进入交互式模式;-l
:定义使用的标准数学库;-w
:对POSIX bc的扩展给出警告信息;-q
:不打印正常的GNU bc环境信息;-v
:显示指令版本信息;-h
:显示指令的帮助信息。
参数:文件,指定包含计算任务的文件。
缺省精度:
bc
缺省精度为小数点后0位bc -l
缺省精度为小数点后20位- 可以通过设置scale自行决定精度(小数点位数)
scale=10000
,s(1.0)
passwd:修改口令
Linux passwd命令用来更改使用者的密码。
语法:
1 | passwd [-k] [-l] [-u [-f]] [-d] [-S] [username] |
必要参数:
- -d 删除密码
- -f 强迫用户下次登录时必须修改口令
- -w 口令要到期提前警告的天数
- -k 更新只能发送在过期之后
- -l 停止账号使用
- -S 显示密码信息
- -u 启用已被停止的账户
- -x 指定口令最长存活期
- -g 修改群组密码
- -m 指定口令最短存活期
- -M 指定口令最长存活期
- -i 口令过期后多少天停用账户
普通用户:使用passwd命令更改自己的口令,更改前系统先验证原来的口令
root用户:修改口令之前不验证旧的口令。可修改自己的口令,还可强迫设置其它用户口令。
-
超级用户无法读取其它用户的口令;当普通用户忘记口令时,可请求超级用户强设口令。
-
修改超级用户root的口令时要特别注意。
口令信息的保存和验证:不存明码口令
安全性:无法由哈希值倒推出口令原文
About this Post
This post is written by Holger, licensed under CC BY-NC 4.0.