你好,游客 登录 注册 搜索
背景:
阅读新闻

RHEL7基本命令详解

[日期:2016-08-26] 来源:Linux社区  作者:sakuraph [字体: ]

Terminal

TTY

TTY是TeleTYpe的一个老缩写。
Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,和古老的电报机区别并不是很大。
之后,当计算机只能以批处理方式运行时(当时穿孔卡片阅读器是唯一一种使程序载入运行的方式),电传打字机成为唯一能够被使用的“实时”输入/输出设备。
最终,电传打字机被键盘和显示器终端所取代,但在终端或TTY接插的地方,操作系统仍然需要一个程序来监视串行端口。
一个getty“Get TTY”的处理过程是:一个程序监视物理的TTY/终端接口。

PTY

但是假如我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty)。

PTS/PTMX

pts(pseudo-terminal slave)是pty的实现方法,和ptmx(pseudo-terminal master)配合使用实现pty(PTS/PTMX结合使用实现PTY)。

实验:验证SSH的终端

在图形界面下打开一个终端,查看当前终端对应的pts号

[root@ linuxidc.com ~]# who am i
root     pts/0        2016-08-07 12:06 (:0)

使用SSH连接本机:

[root@ linuxidc.com ~]# ssh root@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is 3b:42:8d:2e:84:6f:1e:b9:b6:eb:6d:34:23:b5:f2:57.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:
Last login: Sun Aug  7 12:02:57 2016 from localhost

再次查看pts号:

[root@ linuxidc.com ~]# who am i
root     pts/1        2016-08-07 12:08 (localhost)

可以看出已经不是之前的终端号了,说明启用了一个新的伪终端
查看进程:

[root@ linuxidc.com ~]# ps -aux | grep pts
root       7767  0.0  0.1 116676  3340 pts/0    Ss   12:06   0:00 /bin/bash
root       7820  0.0  0.2  80420  4208 pts/0    S+   12:08   0:00 ssh root@127.0.0.1
root       7821  0.0  0.2 143344  5440 ?        Ss   12:08   0:00 sshd: root@pt/1
root       7824  0.0  0.1 116564  3264 pts/1    Ss   12:08   0:00 -bash
root       7888  0.0  0.0 141576  1672 pts/1    R+   12:11   0:00 ps -aux
root       7889  0.0  0.0 112644   952 pts/1    R+   12:11   0:00 grep --color=auto pts

可以看出通过ssh连接后 其实使用的是pts终端

Shell提示符

对比普通用户和root用户的Shell提示符
普通用户

[courier@ linuxidc.com ~]$

root用户

[root@ linuxidc.com ~]#

[用户名@主机名 当前所在目录]root/普通用户
$为普通用户 #为root用户

Bash Shell 基本语法

使用下面的两个命令查看所有的解释器:

[root@ linuxidc.com root]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@ linuxidc.com root]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

命令的格式:命令字 [选项][参数]
命令字:具体执行的命令
选项:匹配的条件
参数:命令处理的对象
举例说明:

[root@ linuxidc.com root]# touch example.txt
[root@ linuxidc.com root]# ls
anaconda-ks.cfg  Documents  example.txt           Music     Public     Videos
Desktop          Downloads  initial-setup-ks.cfg  Pictures  Templates
[root@ linuxidc.com root]# rm -rf example.txt
[root@ linuxidc.com root]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

常用基本命令

ls

作用:查看当前目录下有哪些文件
语法:ls 目录 如果不加目录则查看当前目录

[root@ linuxidc.com root]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos
[root@ linuxidc.com ~]# ls ~
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music  

-l 显示详细信息(ll命令等同于ls -l)

[root@ linuxidc.com ~]# ls -l
total 8
-rw-------. 1 root root 1545 Aug  7 09:04 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Desktop
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Documents
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Downloads
-rw-------. 1 root root 1638 Aug  7 00:23 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Music
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Pictures
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Public
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Templates
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Videos

-a 显示所有 包括隐藏文件

[root@ linuxidc.com ~]# ls -a
.                .bashrc    Downloads             Pictures   .viminfo
..               .cache     .esd_auth             Public     .xauthO64wyA
anaconda-ks.cfg  .config    .ICEauthority         .ssh
.bash_history    .cshrc     initial-setup-ks.cfg  .tcshrc
.bash_logout     Desktop    .local                Templates
.bash_profile    Documents  Music                 Videos

-d 查看目录(不查看里面的内容)

[root@ linuxidc.com ~]# ls -d
.

pwd命令

作用:查看当前所在目录的绝对路径

[root@ linuxidc.com ~]# cd /etc/sysconfig/network-scripts/
[root@ linuxidc.com network-scripts]# pwd
/etc/sysconfig/network-scripts

cd命令

作用:切换目录
语法:cd 目录名
不跟目录名则切换到当前用户目录
.表示当前目录 ..当前目录的上级目录

[root@ linuxidc.com network-scripts]# cd
[root@ linuxidc.com ~]# pwd
/root
[root@ linuxidc.com ~]# cd /home
[root@ linuxidc.com home]# pwd
/home
[root@ linuxidc.com home]# cd /etc/sysconfig/network-scripts/
[root@ linuxidc.com network-scripts]# cd .
[root@ linuxidc.com network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@ linuxidc.com network-scripts]# cd ..
[root@ linuxidc.com sysconfig]# pwd
/etc/sysconfig
[root@ linuxidc.com sysconfig]# cd ./../
[root@ linuxidc.com etc]# pwd
/etc

系统时间管理

查看BIOS时间

[root@ linuxidc.com ~]# hwclock
Sun 07 Aug 2016 01:18:25 PM EDT  -0.147639 seconds

查看系统时间

[root@ linuxidc.com ~]# date
Sun Aug  7 13:19:29 EDT 2016

修改时间

[root@ linuxidc.com ~]# date -s 2016-10-1
Sat Oct  1 00:00:00 EDT 2016

格式化时间

[root@ linuxidc.com ~]# date '+%Y-%m-%d %H:%M'
2016-10-01 00:02

命令太多如何获取帮助

命令字 -h/--help

[root@ linuxidc.com ~]# systemctl --help
[root@ linuxidc.com ~]# systemctl -h

man 命令字

[root@ linuxidc.com ~]# man systemctl

关机命令

shutdown

作用:关机/重启/定时关机
语法:shutdown [选项]
-r 重启计算机

[root@ linuxidc.com ~]# shutdown -r
Shutdown scheduled for Mon 2016-08-08 01:38:34 EDT, use 'shutdown -c' to cancel.
[root@ linuxidc.com ~]#
Broadcast message from root@ linuxidc.com (Mon 2016-08-08 01:37:34 EDT):

The system is going down for reboot at Mon 2016-08-08 01:38:34 EDT!
[root@ linuxidc.com ~]# shutdown -now
[root@ linuxidc.com ~]# shutdown -r +10
Shutdown scheduled for Sun 2016-08-07 13:50:56 EDT, use 'shutdown -c' to cancel.
[root@ linuxidc.com ~]#
Broadcast message from root@ linuxidc.com (Sun 2016-08-07 13:40:56 EDT):

The system is going down for reboot at Sun 2016-08-07 13:50:56 EDT!
[root@ linuxidc.com ~]# shutdown -r 01:50
Shutdown scheduled for Mon 2016-08-08 01:50:00 EDT, use 'shutdown -c' to cancel.

-h 关机

[root@ linuxidc.com ~]# shutdown -h +10
Shutdown scheduled for Sun 2016-08-07 13:54:14 EDT, use 'shutdown -c' to cancel.

Broadcast message from root@ linuxidc.com (Sun 2016-08-07 13:44:14 EDT):

The system is going down for power-off at Sun 2016-08-07 13:54:14 EDT!
[root@ linuxidc.com ~]# shutdown -h 01:55
Shutdown scheduled for Mon 2016-08-08 01:55:00 EDT, use 'shutdown -c' to cancel.
[root@ linuxidc.com ~]# shutdown -h now

init 0 关机

[root@ linuxidc.com ~]# init 0

reboot 重启

[root@ linuxidc.com ~]# reboot

poweroff 关机

[root@ linuxidc.com ~]# poweroff

启动级别

命令:init
作用:切换系统运行级别
语法:init 0-6

7个启动级别

0 系统停机模式 系统默认运行级别不能设置为0,否则不能正常启动机器关闭
1 单用户模式 root权限,用于系统维护,禁止远程登陆,类似windows安全模式
2 多用户模式 没有NFS网络支持
3 完整的多用户文本模式 有NFS网络支持,登陆后进入控制台命令行模式
4 系统未使用 保留一般不用,在一些特殊情况下可以用它来做一些事情,例如:笔记本电脑的电池用尽时可以切换到该模式做一些设置
5 图形化模式 登陆后进入图形GUI模式
6 重启模式 默认运行级别不能设为6,否则不能正常启动,执行init 6机器就会重启

启动级别设置

RHEL7不再使用/etc/inittab文件进行默认的级别配置
查看inittab文件

[root@ linuxidc.com ~]# vim /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#                 

该文件的注释中已经说明不再使用inittab进行默认级别的配置
根据该文件注释,下面使用红帽7提供的级别进行配置
切换到第3运行级

[root@ linuxidc.com ~]# systemctl isolate multi-user.target
[root@ linuxidc.com ~]# systemctl isolate runlevel3.target

切换到第5运行级

[root@ linuxidc.com ~]# systemctl isolate graphical.target
[root@ linuxidc.com ~]# systemctl isolate runlevel5.target

设置默认的运行级别为第三运行级别

[root@ linuxidc.com ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

设置默认的运行级别为第五运行级别

[root@ linuxidc.com ~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

查看当前运行级别

[root@ linuxidc.com ~]# runlevel
3 5

3为上次的运行级别 5为本次 如果系统刚启动 上次则会显示为N

查看默认运行级别

[root@ linuxidc.com ~]# systemctl get-default
graphical.target

设置服务器在来电后自动开机

该功能需要BIOS支持

  1. 进入BIOS(一般是在开机后出现主板画面时Del键,部分品牌机可能按F2/F1)
  2. 找到Power Management Setup进入电源设置
  3. 找到Wake Up Event Setup
  4. 将Disabledd更改为Enabled
  5. 再继续设置时间和日期
  6. 保存并退出

附录

Linux下不同的颜色代表了不同的文件类型

颜色类型举例
蓝色 目录 /etc
黑色 文件 /etc/passwd
浅蓝色 链接 /etc/grub2.cfg
红色 压缩包 boot.tar.gz
绿色 可执行文件 /etc/init.d/network
黑底黄字 设备文件 /dev/sda

who、whoami命令 和 who am i 命令的区别  http://www.linuxidc.com/Linux/2008-04/12001.htm
Linux中tty、pty、pts的概念区别  http://www.linuxidc.com/Linux/2006-10/397.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-08/134614.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款