# 第三节课 Linux基础命令
# 一、认识 Linux 字符操作界面
虽然图形化的操作界面简单、直观,但是在字符操作界面中使用Linux 命令工作,占用系统资源更少,安全性和效率更高,灵活性也更强,因此技术人员通常更愿意使用 Linux 命令完成他们的工作
# 1、命令提示符
命令提示符不是命令的一部分,它只是起到提示作用。
[root@localhost ~]#
身份符显示格式: [用户名@主机名当前所在目录]
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
2
3
4
5
6
# who/w 命令
who
命令可以显示当前登录系统的用户终端信息,包括用户的名称、使用的终端设备、登录到系统的时间等信息。
[root@localhost ~] who
root pts/0 2022-10-13 10:01 (192.168.1.27) #显示了用户名、终端设备和登录时间
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
2
3
4
5
6
# echo 命令 回显
示例1 打印字符
[root@localhost ~] echo how are you
how are you
2
示例2 打印原样字符
[root@localhost ~] echo "how are you"
how are you
2
示例3 显示 HOME 变量的值
[root@localhost ~] echo $HOME
/root
2
示例4 使用echo 命令显示用户交互的提示信息
[root@localhost ~] echo -n “请输入密码:”;read pswd; echo “密码是:” $pswd
“请输入密码:”123
“密码是:” 123
2
3
说明:
① read
命令用于读取用户在键盘输入的内容,将输入内容存放到名为 pswd
的变量中。
② 两个命令之间的 ;
表示先执行前面的命令,再执行后面的命令。
③ -n
输出文本后不换行
# pwd 命令 (英文全拼:print work directory)
执行 pwd 命令可以显示用户当前所在的工作目录,并且该目录以绝对路径名称显示。
[root@localhost ~] pwd
/root
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
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
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
2022年 10月 13日 星期四 12:19:03 CST
[root@localhost ~] date +"%Y-%m-%d %H:%M:%S" #指定格式显示日期和时间
2022-10-13 12:20:57
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 ?
...
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
2
3
4
# clear 命令
clear 命令可以清空当前屏幕中显示的内容,从第一行开始显示命令。当终端执行了太多的命令操作时,我们可以使用 clear 命令清理当前终端显示的内容, 重新开始输入命令来执行操作。
[root@localhost ~] clear
# history 命令
history 命令可以显示历史记录,即显示执行过的命令。当我们想査看执行过的命令记录 时,可以执行此命令。
[root@localhost ~] history 5 #最近执行过的5条命令
656 uname -r
657 uname -m
658 clear
659 history
660 history 5
2
3
4
5
6
# shutdown 命令
执行 shutdown 命令可以实现立即关机的操作,now 相当于指定关机的时间为 0。
[root@localhost ~] shutdown now #立即关机
# poweroff 命令
使用 poweroff 命令执行关机的具体命令如下。
[root@localhost ~] poweroff #立即关机
延展 halt,shutdown,poweroff 区别 (opens new window)
# reboot 命令
reboot 命令可以重新启动系统,也是一个常用的命令。该命令只有 root 用户可以使用。
[root@localhost ~] reboot
# 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 ~
...
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
2
[root@localhost ~] shu #双击tab进行提示
shuf shutdown
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/
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).
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
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 文档,最后才动手安装,这样遇到问题就知道原因了。因此,学习一些专业英语是很有必要的。