一、 访问命令行
因为内核不提供和用户的交互功能,所以需要一个程序提供这种功能,这种程序分为两 种:命令行(CLI) 和 图形界面(GUI)。
linux 下流行的图形桌面:
- GNOME:C 语言开发,使用 gtk 库
- KDE:C++语言开发,使用 qt 库
- XFCE:嵌入式,轻量级桌面
linux 下常用的命令行程序:
- bash:redhat 默认 shell,开源,基于 GPL
- dash,ubuntu 默认 shell
1、 shell 在类 UNIX 中,提供 CLI 的交互程序,我们统称为 shell。
**1.1、打开一个 shell**
打开一个终端就打开一个 shell
得到一个命令行界面,就触发一个 shell
**1.2、命令行提示符**
当触发一个 shell,就可以得到一个提示符。
登陆用户名@主机名 当前目录
- #表示是 root 用户
- $表示是普通用户
- 方括号里的提示符是由 PS1 变量展示
2、 终端 用户和主机进行交互的设备,我们称为终端。
2.1、物理终端
- 一个键盘、一个鼠标、一个显示器就是一个物理终端
- 设备文件:/dev/console
2.2、虚拟终端
- tty:直接连接的终端。附加在物理终端之上,以软件方式虚拟出来的终端
- 设备文件:/dev/tty*
2.3、模拟终端
- pts:纯软件实现的终端,与图形终端窗口或远程登陆会话相关的终端。比如:在图形 界面下打开的 terminal,使用 SSH、telnet等远程打开的界面。
- 设备文件:/dev/pts/*
注意:
- 系统启动过程中,以物理终端提供
- 系统启动之后,就以虚拟终端提供
2.4、虚拟终端切换 如果有图形环境,共有 6 个控制台,图形界面运行在第一个;文本界面运行在第二至第六 个。 如果没有图形环境,则只有 5 个虚拟控制台,全是文本界面。
切换控制台的命令:Ctrl+Alt+Fn (n=1~6)
- 查看当前终端设备:tty
- 查看有哪些用户登陆到当前系统:who
- 在 tty2 上显示 hello: echo hello > /dev/tty2
3、 命令行 命令 【选项】 【参数】
- 执行的 Shell 命令中最多有三部分:命令、选项、参数。
- 每部分需要使用空格隔开。
- 键入完命令,确认执行时,按 Enter键,系统会执行相关操作,显示相关的输出,然 后显示下一个 Shell 的提示符。
3.1、命令
- 所谓命令就是一个可执行文件,文件本身包含了可执行的程序代码
- 输入命令,按 Enter键,就是将这个程序提交给内核,由内核分配资源将其运行起来。 运行中的程序,我们称为进程。
- 最左边,必须是一个命令
3.2、选项
- 用于启用或关闭命令的某个或某些功能
- 短选项:-表示,可合并使用
- 长选项:--表示,一般不可合并使用
3.3、参数
- 命令作用的对象,向命令提供数据。
注意:
- 命令,选项,参数中间使用空格隔开
- 多选项之间、多参数之间,使用空格隔开
- 一行执行多个命令,使用分号(;)隔开
- 当命令太长,可使用反斜杠(\)将 Enter 键转义,告知 Shell 仅为换行,而非执行命令
3.4、在 shell 中有两类命令
-
内建命令:shell 自带,找不到,比如:cd 命令,使用 which cd 是找不到的 -
外部命令:非 shell自带,外部的一个可执行文件 -
别名:如 ll,等同于 ls -l --color - 查看一个命令的类型,是内建还是外部:type cd
- 查找 ls 命令可执行文件在哪儿:which ls
- 查找关键字文件在哪儿:whereis ls
3.5、PATH 变量
查看 PATH 变量的值 :echo $PATH
- 执行命令时,就会在这个 PATH 变量指定的路径,从左到右去寻找,一直到找到为止,如果没找到,会提示找不到这个命令 shell
搜寻到的外部命令的路径,会被缓存下来,下次就不用再去搜了
查看缓存的命令
- hits,表示命中次数,也就是被执行了多少次 hash
清除所有缓存
- 比如:将 ls 程序文件移到/usr/bin 目录下,如果有缓存存在,还会到/bin/下去找 ls 这个命令,找不到就会报错,这时,就需要清一下缓存,重新去搜寻 hash -r
4、 Linux 内核 查看 linux 内核版本的命令:
- uname -a
- uname -r
5、 命令演示 关闭计算机,它的使用权限是超级用户。
- -h,关机后关闭电源
- -c,取消目前正在执行的关机程序:shutdown
- 马上关机: shutdown -h 0
- 3:40 开始关机:shutdown -h 3:40
注意:
-
使用直接断掉电源的方式来关闭 Linux 系统,这是十分危险的。因为Linux 与 Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且 login 指令会被冻结,即新的用户不能再登录。 - 就是调用 shutdown -h :halt
- 重新启动计算机,它的使用权限是系统管理者: reboot
- 退出系统,它的使用权限是所有用户: exit
6、 Alias
- 查看当前全部alias:alias
- 给 cp 命令设置一个别名,当我们执行 cp 命令时,实际执行的 cp -i 命令
- cp,默认覆盖不提醒,加上-i 选项,表示提醒:alias cp='cp -i'
- 在命令前面加上“\”,表示不使用别名,就使用最原始的 cp 命令:\cp
- 删除别名:unalias cp
7、 TAB 补全 输入命令、选项、参数时,可以通过 tab 键补全功能来减轻输入压力。键入的内容如果足够使其唯一,按一次 tab 键即可补全,如果键入的内容不够使其唯一,按两次 tab 键,即可以显示以键入的字符为开头的所有命令。
- 查询有没有安装 bash-completion 这个软件包:rpm -qa |grep bash-completion
8、 命令历史记录
-
在每个用户的家目录,都有自己的历史记录件:.bash_history -
登陆 shell时,会从登陆用户的家目录中,读取.bash_history 文件。 -
登陆后,执行的命令历史记录,会先记录到缓存中 -
登出时,会将缓存中的历史记录,以追加方式写到.bash_history 文件中。 - 查看历史命令记录:history
- 立即将缓存中的记录,写回文件:history -a
- 清除历史:history -c history
- 命令输出的条数:echo $HISTSIZE
- 历史文件路径:echo $HISTFILE
- 命令历史文件记录历史的条数:echo $HISTFILESIZE
- 调用历史记录中对应编号的命令:!数字
- 调用历史记录中最近的一个以指定字符串开头的命令:!字符串
- 可以上下查阅历史记录:上、下箭头
- 在当前命令行中左右移动光标:左、右箭头
- 在历史记录列表中搜索某一模式的命令:ctrl+r
9、 快捷键
- 光标定位到命令行首:ctrl+a
- 光标定位到命令行尾:ctrl+e
- 将光标处前面的内容清除:ctrl+u
- 将光标处后面的内容清除:ctrl+k
- 跳到命令行中前一字的开头:ctrl+左箭头
- 跳到命令行中下一字的末尾:ctrl+右箭头
- 截断进程:ctrl+c
- 清空屏幕:ctrl+l
SSH客户端:
- Putty --开源软件,企业中最受欢迎
- Xshell --仅限个人(或学校)免费使用,企业不可用
- mobaxterm --企业可用,半开源
- SecureCRT–不开源,企业和学校都不可用
连接方式 ——IP:Port socket (套接字)
给PAHT变量赋值,添加一个/root路径
- #PATH=$PATH:/root
干掉一个变量(在内存中清除)
- #unset PATH
查看网络状态
- #nmcli
查看上一条命令执行的状态(成功返回0,失败返回非0)
- #echo $?
|