普通用户和超级用户

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语言和其它语言的库函数手册
  • 系统配置文件格式
  1. 分页器:q-退出,空格-下一页,上下箭头-上移下移
  2. 用法:
    1. man name
    2. man section name 其中section为章节编号:1命令 2系统调用 3库函数 5配置文件
    3. 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的口令时要特别注意。

口令信息的保存和验证:不存明码口令

口令信息的保存和验证

安全性:无法由哈希值倒推出口令原文