访问命令行

访问命令行

bash shell

命令行是介于文本的界面,可用于向计算机系统输入指令。Linux命令行由名为shell的程序提供。在与unix类似的系统的漫长历史中,许多shell得以开发。Red Hat Enterprise Linux中供用户使用的默认shell为GNU Bourne-Again Shell(Bash)。Bash是与Unix类似的系统上使用的最成功的一个shell的改进版本。
如果以交互方式使用shell,它在等待用户输入命令时显示一个字符串。这称为shell提示符。普通用户启动shell时,默认提示符的结尾$字符

[qinzhen@localhost ~]$

如果以超级用户root运行shell,则$替换为#。这可以更加显著的表明这是超级用户shell,帮助避免在特权账户中出现意外和错误。

[qinzhen@localhost ~]#

虚拟控制台

用户通过终端访问bash shell。终端提供键盘供用户输入,也提供显示用于输出。在基于文本的安装中,这可以是Linux计算机的物理控制台、硬件键盘和显示。也可通过串行端口配置终端访问。
访问shell的另一种方式是虚拟控制台。Linux计算机的物理控制台支持多个虚拟控制台,它们作为单独的终端运行。每个虚拟控制台均支持独立的登陆会话。
如果提供图形环境,它将在Red Hat Enterprise Linux 的第一个虚拟控制台中运行。而另外五个文本登陆提示符在控制台二至六(如果图形环境关闭,则为控制台一至五)中可用。在运行图形环境的情况下,通过按Ctrl+Alt并按功能键(F2F6),在虚拟控制台上访问文本登陆提示符。按Ctrl+Alt+F1返回第一个虚拟控制台和图形桌面。

Shell基础知识

在shell提示符下输入的命令由三个基本部分组成:

  • 要运行的命令
  • 用于调整命令行为的选项
  • 通常作为命令的目标的参数

命令是要运行的程序的名称。 其后可能跟着一个或多个选项,这些选项用于调整命令的行为或其作用。选项通常以一个或者两个破折号开头(例如 -a 或 --all),以将其与目标参数区分。命令后面可能也会跟着一个或多个参数,这些参数通常用于指明应在其中运行命令的目标。
例如,命令行usermod -l qinz,包含一个命令usermod,一个选项-l,和一个参数qinz。该命令的作用是锁定用户qinz的账户的密码。
要有效的使用命令,用户需要了解命令接受的选项和参数,以及他们正确的排列顺序(命令的语法)。大多数命令都包含--help选项。这可使命令打印其作用的说明,即介绍命令的语法、其接受的选项列表及其作用的“用法语句”。
用法语句可能看起来比较复杂,难以读懂。当用户熟悉了集中基本的惯例后,理解起来就比较容易了:

  • 方括号 [ ] 括起来的是可选项目。
  • …前面的任何内容均表示该类型项目的任意长度列表。
  • 以竖线 | 分隔的多个项目表示只能指定其中一个项目。
  • 尖括号<>中的文本表示变量数据。例如,<filename>表示“在此处插入您要使用的文件名”。有时这些变量会简单写成大写字母,例如 FILENAME。

来看看date命令的第一个用法语句:

[qinzhen@localhost ~]# date --help
date [OPTION]... [+FORMAT]

这表示date可以接受一个可选选项列表([OPTION]...),其后为可选的格式字符串,它以加号字符 + 为前缀,用于定义当前显示日期的显示方式([+FORMAT])。由于这两项都可选,因此即使未指定选项或参数,date也将执行(它将使用默认格式打印当前日期和时间)。

术语描述

描述术语
执行以字符串形式键入的命令的解释程序Shell
指明交互shell正在等待用户键入命令的视觉线索提示符
运行的程序的名称命令
命令行中调整命令行为的部分选项
命令行中指定命令所执行的目标的部分参数
用于与系统交互的硬件显示和键盘物理控制台
多个逻辑控制台之一,可以分别支持独立的登陆会话虚拟控制台
为输出提供显示并为shell会话输入提供键盘的界面终端

使用Bash Shell执行命令

基本的命令语法

GNU Bourne-Again Shell (bash) 这一程序可以解读用户键入的指令。键入到shell中的每一字符串最多由三个部分:命令、选项(以 - 或者 – 开头),以及参数。键入到shell中的每个词语通过空格相互隔开。命令是系统中安装的程序的名称。每个命令拥有自己的选项和参数。

用户准备好执行命令时,按下Enter键执行。每一命令在单独的一行中键入,系统会显示各个命令的输出,然后再显示shell提示符。如果用户希望在一行中键入多个命令,则可以使用分号(;)作为命令分隔符。分号是一类称为元字符的成员,对于bash具有特殊意义。

简单命令示例

在命令行中,root用户可以通过localectl命令更改系统的区域设置。如果不带参数运行localectl命令,它将显示当前的系统区域设置。
要设置系统区域的语言,请运行localectl set-locale LANG=locale命令,其中locale对应的时语言代码,例如zh_CN.UTF-8。此更改将在用户下一次登陆时生效,它存储在 /etc/locale.conf 中。

[root@localhost ~]# localectl set-locale LANG=en_US.UTF-8

date命令用于显示当前的时间和日期。超级用户也可以用它来设置系统时钟。以加号(+)开头的参数可指定日期命令的格式字符串。

[root@localhost Desktop]# date
Sun May 19 12:09:29 CST 2019
[root@localhost ~]# date +%R
12:09
[root@localhost ~]# date +%T
12:10:04
[root@localhost ~]# date +%x
05/19/2019
[root@localhost ~]# 

passwd命令更改用户自己的密码。必须指定该账户的原始密码,之后才允许进行修改。默认情况下,passwd配置为需要强密码,其包含小写字母、大写字母、数字和符号,并且不以字典中的单词为基础。超级用户可以使用passwd命令更改其他用户的密码。

[qinz@localhost ~]$ passwd
Changing password for user qinz.
Changing password for qinz.
(current) UNIX password: 
New password: 
BAD PASSWORD: The password is too similar to the old one
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd qinz
Changing password for user qinz.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

Linux不需要文件扩展名作为类型根据来分类文件。file命令可以扫描文件内容的开头,显示该文件的类型。要分类的文件作为参数传递至该命令。

[root@localhost ~]# file /etc/passwd
/etc/passwd: ASCII text
[root@localhost ~]# file /bin/passwd
/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x91a7160a019b7f5f754264d920e257522c5bce67, stripped
[root@localhost ~]# file /home
/home: directory

headtail命令分别显示文件的开头和结尾部分。默认情况下,这两个命令显示10行,但是它们都有一个-n选项,允许指定不同的行数。要显示的文件作为参数传递至这些命令。

[root@linuxprobe Desktop]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

wc命令可计算文件中行、字和字符的数量。它可以接受-l,-w-c选项,分别用于仅显示行数、字数或字符数。

[root@linuxprobe Desktop]# wc /etc/passwd
  42   70 2110 /etc/passwd
[root@linuxprobe Desktop]# wc -w /etc/passwd
70 /etc/passwd

Tab自动补全

Tab补全允许用户在提示符下键入足够的内容以使其唯一后快速补全命令或者文件名。如果键入的字符不唯一,则按Tab键两次可显示以键入的字符开头的所有命令或者文件。

[root@linuxprobe Desktop]# pas
passwd       paste        pasuspender  
[root@linuxprobe Desktop]# passwd 

命令历史记录

history命令显示之前执行的命令的列表,带有命令编号作为前缀。
感叹号字符!是元字符,用于拓展之前的命令而不用重新键入它们。!number扩展至与指定编号匹配的命令。!string拓展至最近一个以指定字符串开头的命令。

[root@linuxprobe Desktop]# history
  1  date
  2  LANG=zh_CN.UTF8 date
  3  cd /etc
  4  ls
  5  cat local
[root@linuxprobe Desktop]# !3
[root@linuxprobe etc]# 

方向键可用于在shell命令历史记录中导航。向上键编辑历史记录列表中的上一个命令。向下键编辑历史记录列表中的下一个命令。按下向上键过多次数时,可使用history命令。向左键和向右键可在当前编辑的命令行中向左和向右移动光标。

Esc+.组合键可使shell将上一命令的最后一个单词复制到当前命令行中的光标所在位置。如果重复使用,它将继续转到更早的命令。

编辑命令行

交互使用时,bash具有命令行编辑功能。这允许用户使用文本编辑器命令在当前键入的命令内移动并进行修改。使用方向键可以在当前命令内移动,也可访问命令历史记录,下面介绍更强大的编辑命令。

快捷方式描述
Ctrl+A跳到命令行的开头
Ctrl+E跳到命令行的末尾
Ctrl+U将光标处到命令行开头之间的内容删除
Ctrl+K将光标处到命令行末尾之间的内容删除
Ctrl+跳到命令行中前一字的开头
Ctrl+跳到命令行中下一字的开头
Ctrl+R在历史记录列表中搜索某一模式的命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值