[linux应用与开发技术学习二]linux简单命令

本文最后更新于 5 年前,文中所描述的信息可能已发生改变。

w和who命令

  • w可以知道目前已经登录的用户信息,还能看到每个用户的进程任务。
shell
$ w [选项] [用户名]

选项:

  • -h不显示信息的标题
  • -l详细显示信息
  • -s简洁显示信息(不显示登录时间、JCPU和PCPU时间)

例如:

shell
ubuntu@ubuntu:~$ w
 17:38:52 up 2 days, 19:00,  1 user,  load average: 0.26, 0.28, 0.25
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
ubuntu   pts/0    192.168.2.1      17:38    4.00s  0.24s  0.02s w

在显示的信息中:

  • 第一行显示了系统时间、从启动到现在已经运行的时间、登录到系统的用户数和负载情况。
  • 第二行是用户信息的标题。
  • 第三行代表用户及其信息。

标题含义如下:

标题含义
USER登录的用户
TTY登录的终端
FROM用户登录的入口,远程登录的一般显示IP地址和主机名
LOGIN用户登录的日期、时间
IDLE某程序从上次在终端运行时到现在的时间
JCPU终端连接的所有进程占用CPU运算的时间(不包括以前的后台运行时间,包括当前正在运行的后台运行时间)
PCPU当前进程占用CPU运算的时间
WHAT当前用户正在运行的程序名称和选项(也相当于命令)
  • who命令只显示当前登录的用户信息,并不能看到其他用户正在运行的命令。
shell
$ who [选项] [file]
  • who命令是通过 /var/run/utmp文件来获取用户信息,如果给予 who命令一个file文件,那么就只读取命令中给予的文件。

常用的选项命令以及含义:

选项含义
-a显示所有信息
-b显示系统最近启动时间
-l显示所有可以登录的终端信息
-m列出当前终端的信息(who -m等于 who am i
-q显示本地用户和用户数清单
-r显示当前系统运行级别
-s仅显示名称、线路等时间信息,选项为默认选项,等同于单独运行 who
-u显示当前每个用户的用户名、登录终端、登录时间、活动线路和进程标识

echo命令

这是一个打印命令,可以在命令行中显示各种各样的内容,对我来说相当于C语言里的 printf("")命令。

官方的说法的将命令行的参数显示到标准输出中(屏幕)

shell
$ echo [选项] [内容]

选项:

  • -e支持反斜线控制的字符转换
  • -n取消输出行末的换行(输出内容后不换行)

例如:

shell
$ echo "hello world"
hello world
$
shell
$ echo -n "hello world"
hello world$

-e选项的控制符以及含义:

控制字符含义
\\输入反斜线 \
\a发出警告声
\b退格键,相当于左删除键<kbd>backspace</kbd>
\c取消行末换行,与 -n选项相同
\e<kbd>ESC</kbd>
\f换页符
\n换行符
\r<kbd>Enter</kbd>
\t制表符,<kbd>Tab</kbd>
\v垂直制表符
\0nnn按照八进制ASCII码表输出字符,0为数字零,nnn为3位八进制数
\xhh按照十六进制ASCII码表输出字符,hh为两位十六进制数

例如:

shell
$ echo -e "\\ \a"
\

输出反斜线之后系统发出一次警告声。

date命令

顾名思义,用来查看和修改时间的命令

shell
$ date [选项] [时间]

选项 -s用来修改当前时间,主要需要root权限才能修改。普通用户只能查看。

shell
$ date
Sun Mar 21 18:44:28 CST 2021

修改当前日期:

shell
$ sudo date -s yyyy-mm-dd

将日期修改为 yyyy-mm-dd,如 2021-03-21。如果只修改日期,那么时间会重新归零 00:00:00

sudo为提权命令。

修改当前时间与日期:

shell
$ sudo date -s "hh:mm:ss yyyy-mm-dd"

时间格式为 hh:mm:ss,使用24小时计时法,如:13:45:04对应13点45分4秒。

passwd命令

用来设置密码的命令

shell
$ passwd [选项] 用户名

普通用户只能修改自己的密码,root可以修改所有用户的密码。

如,通过root用户修改 user的用户的密码:

root@ubuntu:~# passwd ubuntu
New password: 
Retype new password: 
passwd: password updated successfully

普通用户在没有root权限时只能修改自己的密码:

shell
$ passwd

如果不携带选项和用户名,那么命令就默认修改当前用户的密码。

  • 注意,普通用户修改自己的密码需要输入自己原(旧)密码,而root用户修改不需要旧密码。
[linux应用与开发技术学习三]shell编程(1)
[linux应用与开发技术学习一]linux命令格式