# 第三节课 Linux基础命令

# 一、认识 Linux 字符操作界面

虽然图形化的操作界面简单、直观,但是在字符操作界面中使用Linux 命令工作,占用系统资源更少,安全性和效率更高,灵活性也更强,因此技术人员通常更愿意使用 Linux 命令完成他们的工作

# 1、命令提示符

命令提示符不是命令的一部分,它只是起到提示作用。

[root@localhost ~]# 
1

身份符显示格式: [用户名@主机名当前所在目录]

root 表示当前登录系统的用户名,

localhost 表示主机名,

~ 表示当前用户的家目录,

# 表示当前用户为系统管理员, $ 代表用户

# 二、基础操作命令应用

# uname 命令

使用 uname 命令可以显示计算机和操作系统的相关信息’如内核版本号、计算机硬件架构、操作系统名称等

uname 命令常用选项

选项 说明
-r 显示系统的内核版本号
-m 显示计算机硬件架构
-s 显示操作系统名称
-a 显示全部的信息
[root@localhost ~] uname 
Linux
[root@localhost ~] uname -r #显示操作系统的内核版本号
3.10.0-957.el7.x86_64
[root@localhost ~] uname -m #显示计貪机硬件架构 
x86_64
1
2
3
4
5
6

# who/w 命令

who 命令可以显示当前登录系统的用户终端信息,包括用户的名称、使用的终端设备、登录到系统的时间等信息。

[root@localhost ~] who
root     pts/0        2022-10-13 10:01 (192.168.1.27) #显示了用户名、终端设备和登录时间
1
2

w 命令可以显示当前登入系统的用户信息。执行这个命令我们可以得知当前都有哪些用户登录了系统,以及这些用户正在执行的程序。也可以指定某个用户,仅显示与这个用户相关的信息。

直接执行 w 命令会显示 USER (登录用户)、TTY (终端设备)、FROM (从哪里登录)等信息。执行 w -h 命令不会显示标题信息,只显示登录用户的信息,具体如下

[root@localhost ~] w
 11:48:52 up 14 days,  2:12,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.27     10:01    4.00s  0.07s  0.02s w
[root@localhost ~] w -h
root     pts/0    192.168.1.27     10:01    1.00s  0.05s  0.00s w -h
1
2
3
4
5
6

# echo 命令 回显

示例1 打印字符

[root@localhost ~] echo how are      you
how are you
1
2

示例2 打印原样字符

[root@localhost ~] echo "how are      you"
how are      you
1
2

示例3 显示 HOME 变量的值

[root@localhost ~] echo $HOME
/root
1
2

示例4 使用echo 命令显示用户交互的提示信息

[root@localhost ~] echo -n “请输入密码:”;read pswd; echo “密码是:” $pswd
“请输入密码:”123
“密码是:” 123
1
2
3

说明:

read 命令用于读取用户在键盘输入的内容,将输入内容存放到名为 pswd 的变量中。

② 两个命令之间的 ; 表示先执行前面的命令,再执行后面的命令。

-n 输出文本后不换行

# pwd 命令 (英文全拼:print work directory)

执行 pwd 命令可以显示用户当前所在的工作目录,并且该目录以绝对路径名称显示。

[root@localhost ~] pwd
/root
1
2

# ls 命令 (英文全拼:list)

ls 命令可以显示指定目录下的内容,包括目录中的子目录和文件等信息。用户所处的目录不同,执行ls 显示的内容也会有所不同。

[root@localhost /] ls #显示指定目录下的内容
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
1
2
3

# cd 命令 (英文全拼:change directory)

cd 命令可以切换用户的工作目录。cd 是 Linux 中比较常用的一个命令,可以快速地切换到不同的目录下。如果要切换到根目录下,可以执行 cd /命令

用户除了可以在 cd 命令后指定目录名称,还可以指定一些特殊符号以实现不同目录的切换操作。

[root@localhost /] cd ~ #切换到当前用户的家目录
[root@localhost ~] pwd #打印当前目录
/root
[root@localhost ~] cd .. #切换到上级目录
[root@localhost /] pwd #打印当前目录
/
[root@localhost /] ls #显示指定目录下的内容
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[root@localhost /] cd - #返回到上一次所在的目录
/root
1
2
3
4
5
6
7
8
9
10
11

# date 命令

date 命令可以显示和设置系统的时间或日期。直接执行 date 命令可以显示系统当前的日期和时间,也可以指定一些参数以不同的格式显示和设置时间或日期。

-u: 显示目前的格林威治时间。

%H:24 小时格式显示时间(00 ~23)。

%1:12 小时格式显示时间(00 ~12)。

%Y:显示年份。

%m:显示月份(01 ~12)。

%d:显示每月中的第几天。

%M:显示分钟(00-59)。

%S:显示秒(00 ~59)。

%j:显示一年中的第几天。

直接执行 date 命令,则按照默认格式显示系统的当前时间。+ %Y-%m-%d %H%M:%S 表示以 “年 月 日时:分:秒” 的格式显示当前系统的日期和时间

[root@localhost ~] date
20221013日 星期四 12:19:03 CST
[root@localhost ~] date +"%Y-%m-%d %H:%M:%S" #指定格式显示日期和时间
2022-10-13 12:20:57
1
2
3
4

# ps 命令 (英文全拼:Process Status)

ps 命令可以显示系统当前的进程状态。Linux 系统中有很多正在运行的进程,学会合理 地管理这些进程可以提升系统的性能,也会帮助我们更加了解 Linux 系统。

-a: 显示同一个终端下的所有进程信息。 • -u: 显示指定用户的进程信息。 • -x: 显示没有控制终端的进程。

[root@localhost ~] ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 128008  6540 ?        Ss   9月29   0:06 /usr/lib/systemd/syste
root         2  0.0  0.0      0     0 ?        S    9月29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    9月29   0:20 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   9月29   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    9月29   0:03 [kworker/u2:0]
root         7  0.0  0.0      0     0 ?        S    9月29   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    9月29   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    9月29   0:42 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   9月29   0:00 [lru-add-drain]
root        11  0.0  0.0      0     0 ?     
...
1
2
3
4
5
6
7
8
9
10
11
12
13

# 获取内存信息:free 命令

free 命令用于显示系统内存的使用情况,包括物理内存、交换内存(swap ) 和内核缓冲区内存,命令格式如下。

free 命令的常用选项

|选项|说明| |-b|以Byte 为单位显示内存使用情况| |-k|以KB 为单位显示内存使用情况| |-m|以MB 为单位显示内存使用情况| |-g|以GB 为单位显示内存使用情况| |-h|以合适的单位显示内存使用情况|

[root@localhost ~] free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        130M        1.5G        8.6M        205M        1.5G
Swap:          2.0G          0B        2.0G
1
2
3
4

# clear 命令

clear 命令可以清空当前屏幕中显示的内容,从第一行开始显示命令。当终端执行了太多的命令操作时,我们可以使用 clear 命令清理当前终端显示的内容, 重新开始输入命令来执行操作。

[root@localhost ~] clear
1

# history 命令

history 命令可以显示历史记录,即显示执行过的命令。当我们想査看执行过的命令记录 时,可以执行此命令。

[root@localhost ~] history 5 #最近执行过的5条命令
  656  uname -r
  657  uname -m
  658  clear
  659  history 
  660  history 5
1
2
3
4
5
6

# shutdown 命令

执行 shutdown 命令可以实现立即关机的操作,now 相当于指定关机的时间为 0。

[root@localhost ~] shutdown now #立即关机
1

# poweroff 命令

使用 poweroff 命令执行关机的具体命令如下。

[root@localhost ~] poweroff #立即关机
1

延展 halt,shutdown,poweroff 区别 (opens new window)

# reboot 命令

reboot 命令可以重新启动系统,也是一个常用的命令。该命令只有 root 用户可以使用。

[root@localhost ~] reboot 
1

# man 命令 (英文全拼:manual)

man 命令可以査看系统中的各种帮助手册。当我们不了解一个命令的用法时,可以通过Linux 使用 man 命令指定需要查询的命令名称,査询到系统中关于这个命令的描述以及详细的用法说明。

[root@localhost ~] man ls
NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the  FILEs  (the  current  directory by
       default).  Sort entries alphabetically if none of  -cftuvSUX  nor
       --sort is specified.

       Mandatory  arguments  to  long  options  are  mandatory for short
       options too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

       --author
              with -l, print the author of each file

       -b, --escape
              print C-style escapes for nongraphic characters

       --block-size=SIZE
              scale  sizes  by  SIZE   before   printing   them;   e.g.,
              '--block-size=M' prints sizes in units of 1,048,576 bytes;
              see SIZE format below

       -B, --ignore-backups
              do not list implied entries ending with ~
...
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
32
33
34
35

# 三、获取命令的帮助

# 3.1 命令行自动补全

使用 Linux 字符界面时,准确地记住每个 shell 命令的拼写并非易事,使用 bash 命令行的自 动补全功能,用户在提示符下输入某个命令的前面几个字符,然后按 Tab 键,会自动补全要使用的 命令,或列出以这几个字符开头的命令供用户选择。

# 3.1.1 使用 shutdown 命令关闭系统,用户输入 shut 字符后,按 Tab 键补全命令

[root@localhost ~] shut #单击tab代码补全
[root@localhost ~] shutdown
1
2
[root@localhost ~] shu #双击tab进行提示
shuf      shutdown  
1
2

# 3.1.2 bash除了支持自动补全 shell 命令,文件名称、路径、用户名、主机名等也可以自动补全。

[root@localhost ~]  cd / #双击tab进行提示
bin/   dev/   home/  lib64/ mnt/   proc/  run/   srv/   tmp/   var/   
boot/  etc/   lib/   media/ opt/   root/  sbin/  sys/   usr/ 
1
2
3

# 3.2 使用--help 选项

使用命令的一help 选项可以显示命令的用法和选项的含义等帮助信息,只要在命令后面跟上 —help 选项即可。使用一help 选项显示的命令帮助信息是程序作者编写到程序内部的。

[root@localhost ~] free --help

Usage:
 free [options]

Options:
 -b, --bytes         show output in bytes
 -k, --kilo          show output in kilobytes
 -m, --mega          show output in megabytes
 -g, --giga          show output in gigabytes
     --tera          show output in terabytes
     --peta          show output in petabytes
 -h, --human         show human-readable output
     --si            use powers of 1000 not 1024
 -l, --lohi          show detailed low and high memory statistics
 -t, --total         show total for RAM + swap
 -s N, --seconds N   repeat printing every N seconds
 -c N, --count N     repeat printing N times, then exit
 -w, --wide          wide output

     --help     display this help and exit
 -V, --version  output version information and exit

For more details see free(1).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

参数写法等价

[root@localhost ~] free -g -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        130M        1.5G        8.6M        205M        1.5G
Swap:          2.0G          0B        2.0G
[root@localhost ~] free -gh
              total        used        free      shared  buff/cache   available
Mem:           1.8G        130M        1.5G        8.6M        205M        1.5G
Swap:          2.0G          0B        2.0G
1
2
3
4
5
6
7
8

# 四、技术大牛访谈一养成良好的操作习惯很重要(摘抄)

开始 Linux 的学习之后,请不要用 Windows 的工作方式来思考问题,因为它们之间确实有很大的不同,比如它们之间的内存管理机制、 进程运行机制等都有很大不同。因此我们可以尝试抛开 Windows 的思维方式,用全新的理念去挖掘 Linux 身上特有的潜质,对初学者是至关重要的。

# 1. 一定要习惯命令行操作方式

Linux 是由命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的。Linux 命令有许多强大的功能:从简单的磁盘操作、文件存取,到进行复杂的多媒体图像和流媒体文件的制作,都离不开命令行。虽然 Linux 也有桌面系统,但是 X-window 也只是运行在命令行模式下的一个应用程序。因此,可以说命令是学习 Linux 系统的基础,在很大程度上学习 Linux 就是学习命令,很多 Linux 高手其实都是操作命令很熟练的人。也许对于刚刚从 Windows 系统进人 Linux 学习的初学者来说,立刻进人枯燥的命令学习实在太难,但是一旦学会就爱不释手。因为它的功能实在太强大了。

# 2. 理论结合实践

有很多初学者都会遇到这么一个问题,自己对系统的每个命令都很熟悉,但是在系统出现故障的时候,就无从下手了,甚至不知道在什么时候用什么命令去检查系统,这是很多 Linux新手最无奈的事情。说到底,就是学习的理论知识没有很好地与系统实际操作相结合。很多 Linux 知识,例如每个命令的参数含义,在书本上说得很清楚,看起来也很容易理解,但是一旦组合起来使用,却并不那么容易,没有多次的动手练习,其中的技巧是无法完全掌握的。人类大脑不像计算机的硬盘,除非硬盘坏掉或者被格式化,否则储存的资料将永远记忆在硬盘中,并且时刻可以调用。而在人类记忆的曲线中,必须不断地重复练习才会将一件事情记牢。学习 Limwi—样,如果无法坚持学习的话,就会学了后面的,忘记了前面的。还有些 Linux 初学者也学了很多 Linux 知识,但是由于长期不用,导致学过的东西在很短的时间内又忘记了,久而久之,失去了学习的信心。可见,要培养自己的实战技能,只有勤于动手,肯于实践,这才是学好 Linux 的根本。

# 3. 学会使用 Linux 联机帮助

各个 Linux 发行版本的技术支持时间都较短,这对于 Linux 初学者来说往往是不够的,其实在安装了完整的 Linux 系统后已经包含了一个强大的帮助功能,只是可能你还没有发现或者掌握它的使用技巧。例如,对于 tar 命令的使用不熟悉时,可以在命令行输入令,就会得到 tar 的详细说明和用法。主流的 Linux 发行版都自带了非常详细的帮助文档,包括使用说明和 FAQ,从系统的安装到系统的维护,再到系统安全,针对不同层次用户的详尽文档。仔细阅读文档后,一半以上的问题都可在这里得到解决。

# 4. 学会独立思考、独立解决问题

遇到问题,我们首先想到的应该是如何独立去解决问题。解决问题的方式有很多,比如查阅书籍资料、网络搜索引擎搜索和浏览技术论坛等,通过这几种方式,大部分的问题都能得到解决。独立思考并解决问题,不但锻炼了自己独立解决问题的能力,在技术上也能得到快速提高。如果通过以上方式实在解决不了的话,可以向人询问,得到答案后要思考为何这么做,然后做笔记记录解决过程。最忌讳的方式是只要遇到问题,就去问人,虽然这样可能会很快解决问题,但是长久下去遇到问题就会依赖别人,技术上也不会进步。

# 5. 学习专业英语

如果想深人学习 Lirmx,一定要尝试去看英文文档。因为,技术性的东西写得最好、最全面的文档都是英语,最先发布的高新技术也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语再在国际学术杂志和网络上发表。安装一个新的软件时先看Readme 文档,再看 Install 文档,然后看 FAQ 文档,最后才动手安装,这样遇到问题就知道原因了。因此,学习一些专业英语是很有必要的。