终端
用于与主机交互,必然用到的设备。
物理终端
直接接入本机的显示器和键盘设备:Console。
虚拟终端
附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6 默认启动 6 个虚拟终端。
图形终端:附加在物理终端之上的以软件方式虚拟实现的终端,但会额外提供桌面环境。
通过命令 tty 可以查看当前所在终端的设备文件路径。
模拟终端
图形界面下打开的命令行窗口,基于 ssh 协议或 telnet 协议等远程打开的界面。
shell类型
查看当前使用的shell类型
root@ubuntu:~# echo $SHELL /bin/bash
查看可使用的shell类型
root@ubuntu:~# cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash
命令
输入命令,回车:提请 shell 程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来。
命令类型
内建命令:由 shell 自带且通过某命令形式提供。
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件。
查看命令对应可执行程序或代码
root@ubuntu:~# which ls /bin/ls
root@ubuntu:~# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
查看命令类型
root@ubuntu:~# type cd
cd is a shell builtin
root@ubuntu:~# type ls ls is aliased to `ls --color=auto'
root@ubuntu:~# type cat cat is hashed (/bin/cat)
命令格式
COMMAND [OPTIONS...] [ARGUMENTS...]
OPTIONS(选项):用于启用或关闭命令的某个或某些功能。
长选项:--word,例: --long,--huan-readable。
ARGUMENTS(参数):命令的作用对象,向命令提供数据。
-
注意:
- 1、多选项,以及多参数和命令之间都应该使用空白字符分隔。
- 2、取消命令执行: Ctrl+C 。
文件系统
文件名
1、文件名严格区分大小写:file1,File1,FILE1 是不同的文件;
2、文件名可使用除“/”以外的任意字符,不建议使用特殊字符;
3、文件名长度最长不可超过255个字符;
4、所有以“.”开头的文件均为隐藏文件;
路径
绝对路径:从根目录起始的路径。
相对路径:从当前目录起始的路径。
Linux命令帮助的获取
内建命令
help COMMAND
外部命令
1、 COMMAND --help 或 COMMAND -h 。
2、使用手册: man COMMAND 。
-
man1...man8:
- man1:用户命令。
- man2:系统调用。
- man3:C库调用。
- man4:设备文件及特殊文件。
- man5:配置文件格式。
- man6:游戏。
- man7:杂项。
- man8:管理类命令
man 命令的配置文件: /etc/man.config ,可以通过指定 MANPATH /PATH/TO/SOMEWHERE :指明新的手册文件搜索位置。
不修改配置文件指定手册文件搜索位置并显示之: man -M /PATH/TO/SOMEWHERE COMMAND 。
-
段落说明
- NAME:命令名称。
- SYNOPSIS:使用概要。
- DESCRIPTION:描述。
- OPTIONS:选项。
- EXAMPLES:示例。
- AUTHOR:作者。
- REPORTING BUGS:错误反馈联系人。
- SEE ALSO:另见。
-
SYNOPSIS
- []:可选内容。
- <>:必选内容。
- a|b:二选一。
- ...:同一内容可出现多次。
-
操作方法
- Space,^V,^F:向文件尾部翻屏。
- b,^B:向文件首部翻屏。
- d,^D:向文件尾部翻半屏。
- u,^U:向文件首部翻半屏。
- Return,^N,e,^E,j,^J:向文件尾部翻一行。
- y,^Y,^P,k,^K:向文件首部翻一行。
- q:退出。
- #:跳转到第 # 行。
- 1G:回到文件首部。
- G:跳至文件尾部。
- /KEYWORD:以 KEYWORD 指定的字符串为关键字,从当前位置向文件尾部搜索,不区分大小写。n:下一个,N:上一个。
- ?KEYWORD:以 KEYWORD 指定的字符串为关键字,从当前位置向文件首部搜索,不区分大小写。n:下一个,N:上一个。
3、信息页: info COMMAND 。
4、程序自身的帮助文档: /usr/share/doc/COMMAND_VERSION 。
5、程序官方文档。
命令总结
hash
shell 程序搜寻可执行程序文件的路径定义在 PATH 环境变量中: echo $PATH 。
而 shell 搜寻到的外部命令的路径结果会缓存至 kv(key-value)存储中,可通过 hash 命令查看。
history
-
管理命令历史
- 登陆 shell 时,会读取命令历史文件中记录下的命令: ~/.bash_history 。
- 登陆进 shell 后,新执行的命令只会记录在缓存中,这些命令会在用户退出时追加保存到命令历史文件中。
-
history
- -a:手动追加本次会话新执行的命令历史列表至历史文件中。
- -d #:删除历史中指定的第 # 条命令。
- -c:清空命令历史。
- #:查看最近 # 条历史。
-
快捷操作
- !#:调用历史中第 # 条命令。
- !string:调用历史中最近一个以 string 开头的命令。
- !!:上一条命令。
- !$:调用上一条命令的最后一个参数。
- ESC,.:取上一条命令的最后一个参数。
-
相关环境变量
-
HISTSIZE:命令历史记录的条数。
HISTFILE:~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数。
date
格式化输出日期:
[root@bogon ~]# date +'%Y年%m月%d日 %H:%M:%S' 2019年01月03日 20:24:23
设置时间:
[root@bogon ~]# date 0815170115.21 2015年 08月 15日 星期六 17:01:21 CST
-
查看月历:
- cal:查看当前月历。
-
cal 2019:查看 2019 年所有月历。
[root@bogon ~]# cal 八月 2015 日 一 二 三 四 五 六 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 [root@bogon ~]# cal 2019 2019 一月 二月 三月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 2 3 4 5 1 2 1 2 6 7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9 13 14 15 16 17 18 19 10 11 12 13 14 15 16 10 11 12 13 14 15 16 20 21 22 23 24 25 26 17 18 19 20 21 22 23 17 18 19 20 21 22 23 27 28 29 30 31 24 25 26 27 28 24 25 26 27 28 29 30 31 四月 五月 六月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 2 3 4 5 6 1 2 3 4 1 7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8 14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15 21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22 28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 30 七月 八月 九月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7 7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14 14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21 21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28 28 29 30 31 25 26 27 28 29 30 31 29 30 十月 十一月 十二月 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 2 3 4 5 1 2 1 2 3 4 5 6 7 6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14 13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21 20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28 27 28 29 30 31 24 25 26 27 28 29 30 29 30 31
-
Linux的两种时钟:
- 系统时钟(date):由 Linux 内核通过 CPU 的工作频率进行的计时。
-
硬件时钟(clock/hwclock):如其名。
[root@bogon ~]# date 2015年 08月 15日 星期六 17:01:53 CST [root@bogon ~]# clock 2019年01月03日 星期四 20时40分00秒 -0.178068 秒
clock -s,--hctosys // 将硬件时钟同步到系统时钟 clock -w,--systohc // 将系统时钟同步到硬件时钟
[root@bogon ~]# date 2015年 08月 15日 星期六 17:17:37 CST [root@bogon ~]# clock -s [root@bogon ~]# date 2019年 01月 03日 星期四 20:55:45 CST [root@bogon ~]# clock 2019年01月03日 星期四 20时55分54秒 -0.521538 秒
cd
cd 或 cd ~ :回到当前用户主目录。
cd ~USERNAME :切换至指定用户的主目录。
cd - :在上一个目录和当前目录之间切换。
-
相关环境变量:
- PWD:保存了当前目录路径。
-
OLDPWD:保存了上一次所在目录路径。
[root@bogon ~]# echo $PWD /root [root@bogon ~]# echo $OLDPWD /etc
ls
显示指定路径下的文件列表。
ls -a :显示所有文件,包含隐藏文件,包括“ . ”和“ .. ”。
ls -A :显示所有文件,包含隐藏文件,不包括“ . ”和“ .. ”。
ls -l :长格式。
最左侧第一位:文件类型。
后面九位:访问权限。
数字:文件被硬链接的次数。
左root:文件的所有者(owner)。
右root:文件的所属组(group)。
176:文件大小(size)。
12月 29 2013:文件最后一次被修改的时间。
.bashrc:文件名。
-
文件类型
- -:普通文件。
- d:目录。
- l:链接文件。
- b:块设备。
- c:字符设备。
- p:管道文件。
- s:套接字文件。
ls -h :单位换算。
[root@bogon ~]# ls -lh 总用量 4.0K -rw-------. 1 root root 1.3K 1月 3 20:09 anaconda-ks.cfg
ls -d :显示目录自身相关属性。
[root@bogon /]# ls -ld /etc/ drwxr-xr-x. 75 root root 8192 1月 3 20:12 /etc/
ls -r :反序显示。
ls -R :递归显示文件夹及子文件夹所有文件。
stat
获取指定文件元数据,即查看文件详细状态信息。
[root@bogon ~]# stat .bashrc 文件:".bashrc" 大小:176 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode:100974851 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:system_u:object_r:admin_home_t:s0 最近访问:2019-01-03 20:12:57.015367023 +0800 最近更改:2013-12-29 10:26:31.000000000 +0800 最近改动:2019-01-03 20:04:59.084700947 +0800 创建时间:-
cat&tac
cat:查看文件内容。
[root@bogon /]# cat /etc/issue \S Kernel \r on an \m
tac:反序查看文件内容。
[root@bogon /]# tac /etc/issue Kernel \r on an \m \S
file
查看文件类型。
[root@bogon /]# file /bin/cat /bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=8ac8b57ae50762a4a0480486839107e87b3c284d, stripped [root@bogon /]# file /etc/fstab /etc/fstab: ASCII text [root@bogon /]# file /etc/ /etc/: directory
echo
回显命令,将指定内容输出到控制台。
[root@bogon ~]# echo 'how are you' how are you [root@bogon ~]# echo '$SHELL' $SHELL [root@bogon ~]# echo "$SHELL" /bin/bash
which
显示命令对应的程序文件路径。
[root@bogon ~]# which cat /usr/bin/cat [root@bogon ~]# which ls alias ls='ls --color=auto' /usr/bin/ls [root@bogon ~]# which --skip-alias ls /usr/bin/ls
whereis
显示命令对应的二进制,源码文件和手册页的存放位置。
[root@bogon ~]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
whatis
使用 mkwhatis 可将当前系统上所有的帮助手册及与之对应的关键字创建成一个数据库,并且此数据库中会保存该关键字的简要说明信息。
而 whatis 可以以我们制定的关键字在该数据库中查询该关键字相关信息。
[root@bogon ~]# whatis ls ls (1) - list directory contents