当前位置: 首页 > ds >正文

Red Hat基本命令的使用

   1.1 输入命令的语法

在终端执行命令需要遵照一定的语法,输入命令的格式如下

命令 参数
命令 -选项 参数

 输入命令时可以包含多个选项,假如一个命令有-a、-b、-c、-d四个选项,可以写作:

命令 -a -b -c -d 参数

 这里多个选项可以“提前公因式”,写作:

命令 -abcd 参数

这里会把-abcd当成-a、-b、-c、-d四个选项。

如果一个单词(多个字母)作为一个选项使用,要使用两个“--”。

[root@RedHat ~]# ls -help
ls: 不适用的选项 -- e
请尝试执行 "ls --help" 来获取更多信息。
[root@RedHat ~]#

这里会把-help当成四个选项:-h、-e、-l、-p。但是我们知道help是一个单词,应该作为一个选项出现,所以前面应该是两个“--”。

[root@RedHat ~]# ls --help
用法:ls [选项]... [文件]...

我们先看几个常见命令的使用。

第一个命令是ls,ls的作用是列出一个目录中的内容,类似Windows CMD命令下的dir命令。

[root@RedHat ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  initial-setup-ks.cfg
[root@RedHat ~]#

 这里ls并没有加任何参数,表示显示当前所在的工作目录。如何查看当前所在目录呢?可以使用pwd命令。

[root@RedHat ~]# pwd
/root
[root@RedHat ~]#

 可以看到,命令中所在的目录是/boot,所以刚才ls查看的就是/boot目录中的内容。

ls命令可以加上一个-a选项,表示列吃所有的内容,包括隐藏文件。

[root@RedHat ~]# ls -a
.     视频  音乐             .bash_logout   .config    .ICEauthority         .tcshrc
..    图片  桌面             .bash_profile  .cshrc     initial-setup-ks.cfg  .Xauthority
公共  文档  anaconda-ks.cfg  .bashrc        .dbus      .local
模板  下载  .bash_history    .cache         .esd_auth  .pki
[root@RedHat ~]#

在Linux中,所有以“.”开头的文件都是隐藏文件。

ls命令可以加上一个-l(字母)选项,表示以长模式的形式展现。

[root@RedHat ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1664 11月 27 12:34 anaconda-ks.cfg
[root@RedHat ~]#

这里展示了anaconda-ks.cfg相关的属性,包括所有者、所属组织和权限等。上面加粗字表示文件的大小,这里单位是B,但是看起来并不能很快识别具体大小,所以可以加上-h选项。

[root@RedHat ~]# ls -lh anaconda-ks.cfg 
-rw-------. 1 root root 1.7K 11月 27 12:34 anaconda-ks.cfg
[root@RedHat ~]#

加上-h选项之后,会以更合适阅读的单位来显示。

在ls命令后如果以目录作为参数,则显示的是这个目录中的内容,如果想显示这个目录本身的属性,需要加上-d选项。

[root@RedHat ~]# ls -lhd /boot/
dr-xr-xr-x. 5 root root 4.0K 11月 27 13:24 /boot/
[root@RedHat ~]#

有人会有疑问,/boot目录中那么多东西,怎么才是4.0K?因为这里只显示了/boot目录本身的属性,并不包括目录里面内容的大小。例如,一个口袋重1斤,装了500斤的石头,口袋的重量仍然是1斤。

如果想显示目录及目录里面内容的总大小,则可以使用du命令。

[root@RedHat ~]# du -sh /boot/
218M	/boot/
[root@RedHat ~]#
  • -h选项是以适合阅读的单位来显示
  • -s选项是摘要信息,只显示目录总大小,不显示子目录的大小,这里可以看到/boot及里面内容的总大小为218M。

下面介绍其它命令的使用。

直接输入date命令,可以显示日期和时间。

[root@RedHat ~]# date
2023年 11月 30日 星期四 11:45:56 CST
[root@RedHat ~]#

显示日历信息,用法是“cal 月 年”,例如,显示2025年8月的日历。

[root@RedHat ~]# cal 8 2025八月 2025     
日 一 二 三 四 五 六1  23  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@RedHat ~]#

 如果不加月、年,则显示今年、本月的日历。

whoami命令可以显示当前是哪个用户在登录。

[root@RedHat ~]# whoami
root
[root@RedHat ~]#

 屏幕内容太多,可以输入“clear”后,按【Enter】键清屏,或者按【Ctrl+I】组合键清屏。

命令行中的计算器是bc,bc加上-q选项,是以简洁模式显示。在bc中输入要计算的表达式,按【Enter】键即可。

[root@RedHat ~]# bc -q
11+11
22

 可以看到。11+11得到的值为22。

[root@RedHat ~]# bc -q
11+11
22
5/2
2

 这里计算5/2得到的值应该是2.5,但是答案却是2,因为默认情况下bc中并不保留小数点之后的部分。如果想保留小数点之后的部分,需要通过scale=N指定需要保留小数点之后的多少位,这里N是一个数字。例如,要保留小数点之后的2位,可以写出scale=2。

[root@RedHat ~]# bc -q
11+11
22
5/2
2
scale=2
5/2
2.50
quit
[root@RedHat ~]#

输入quit命令后,按【Enter】键,可以退出计算器。

输入命令时,如果遇到#,#后面的内容不会执行,而是作为注释。

如果输入了某个命令,不想执行该命令,可以按【Ctrl+C】组合键终止命令。

[root@RedHat ~]# whoami ^C
[root@RedHat ~]#

这里显示的^C是按【Ctrl+C】组合键之后显示在屏幕上。

1.2 介绍shell

        在终端输入命令,必须对它进行解析,这个解释器就是shell,shell是一种进程。Linux支持很多种shell。

[root@RedHat ~]# whoami ^C
[root@RedHat ~]# cat /etc/shells 
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@RedHat ~]#

这里cat的意思是查看一个文本文件的内容,Linux默认使用的shell是bash。

1.2.1 tab补齐

        在Linux中输入命令时不能简写,必须完整。先输入几个字符,例如,这里先输入“hi”,如果有以hi开头的命令,再按【Tab】键。

[root@RedHat ~]# hi<tab>

 这里<tab>表示按【Tab】键,可以看到会自动补齐为history。

[root@RedHat ~]# history

 因为在所有命令中,只有history这一个命令是以hi开头的。

 如果有多个命令都是以输入的字符开头的,那么需要按两次【Tab】键,就可以把所有以这些字符开头的命令显示出来。例如,输入“h”,按两次【Tab】键。

[root@RedHat ~]# h<tab><tab>

 这里<tab><tab>表示按了两次【Tab】键,得到的结果如下。

[root@RedHat ~]# h
halt          hash          hcitool       hex2hcd       hostid        hwclock
handle-sshpw  hciattach     hdparm        hexdump       hostname      hypervfcopyd
hangul        hciconfig     head          history       hostnamectl   hypervkvpd
hardlink      hcidump       help          host          hunspell      hypervvssd
[root@RedHat ~]#
1.2.2 历史命令

想查看前期输入过的命令,可以执行history命令。

[root@RedHat ~]# history1  ip add2  ls -help3  ls --help4  ls -help5  ls --help6  ls7  pwd8  ls -a9  ls -l /boot/anaconda-ks.cfg10  ls -l anaconda-ks.cfg 11  ls -lh anaconda-ks.cfg 12  ls -lhd /boot/13  du -sh /boot/14  date15  cal 8 202516  whoami17  bc -q18  cat /etc/shells 19* 20  history
[root@RedHat ~]#

 此时可以按键盘上的上,下箭头来调用历史命令中的那些命令。支持history -c命令可以清除所有历史命令。

1.2.3 调整光标位置

当输入了一条较长的命令之后,可以通过快捷键来调整光标的位置。

按【Ctrl+A】组合键或【Home】键,可以把光标调整到行的开头。

按【Ctrl+E】组合键或【Enter】键,可以把光标调整到行的结束。

按【Ctrl+U】组合键可以从光标位置往前删,一直删到开头。

按【Ctrl+K】组合键可以从光标位置往后删,一直删到结尾。

在浏览器中经常打开多个标签来访问不同的页面,同样地,在Linux的终端中我们也需要打开多个标签,方便我们执行命令。

1.2.4 用户切换

        在Linux中,管理用户是root,在终端中的提示符是#。root的权限很大,为了防止误操
作,平时尽量使用普通用户登录,普通用户登录的提示符是$,但有时普通用户登录时,会遇到权限不够的情况,例如,执行下面的命令。

[bdqn@RedHat ~]$ mount /dev/cdrom /mnt/
mount: 只有 root 能执行该操作
[bdqn@RedHat ~]$

这个命令是什么意思暂且不管,后面会讲。但是这里使用 blab 用户执行此命令,被告知
没有权限,只有root用户才能执行这个命令。

su命令可以从当前用户切换到其他用户,su的用法如下。

su 用户名
su - 用户名 #注意“ ‐ ”两边是有空格的

 如果后面没有跟用户名,则默认为root。这里带“ - ”和不带“ - ”的区别在于切换用户之后的环境变量不一样,关于环境变量后面讲到脚本时会讲,区别如下。

[bdqn@RedHat ~]$ whoami
bdqn
[bdqn@RedHat ~]$ pwd
/home/bdqn
[bdqn@RedHat ~]$

这里当前用户是bdqn用户,所在的目录是bdqn的家目录/home/bdqn。下面通过su root切换到root用户,注意这里su后面没有“-”。

[bdqn@RedHat ~]$ su root
密码:
[root@RedHat bdqn]# whoami
root
[root@RedHat bdqn]# pwd
/home/bdqn
[root@RedHat bdqn]#

 这里通过su命令已经切换到root用户了,因为 su 后面没有加“ - ”,所以切换之后所在目录并没有发生任何改变,仍然是在/home/bdqn中的。这样即使切换到root用户了,使用仍然是bdqn用户的PATH变量。

[root@RedHat bdqn]# echo $PATH
/home/bdqn/.local/bin:/home/bdqn/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
[root@RedHat bdqn]#

下面退回到root用户。

[root@RedHat bdqn]# exit
exit
[bdqn@RedHat ~]$ echo $PATH
/home/bdqn/.local/bin:/home/bdqn/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
[bdqn@RedHat ~]$

 可以看到,环境变量是一样的,再次查看当前用户及所在目录。

[bdqn@RedHat ~]$ whoami
bdqn
[bdqn@RedHat ~]$ pwd
/home/bdqn
[bdqn@RedHat ~]$

下面使用su - root切换到root用户,注意这里su后面有“-”。

[bdqn@RedHat ~]$ su - root
密码:
[root@RedHat ~]# whoami
root
[root@RedHat ~]# pwd
/root
[root@RedHat ~]#

 可以看到,现在已经切换到 root 用户了,且所在目录也变成了 root 的家目录 /root。此时使用的是root用户的PATH变量。

[root@RedHat ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@RedHat ~]#

su后面不加用户名,默认就是root,所以 su - 和 su - root 相同。su和su root相同。root用户su命令切换到任何用户都不需要输入密码。

http://www.xdnf.cn/news/11493.html

相关文章:

  • 推荐一些python的论坛,一起学习才有意思!
  • H264编码基础概念+格式分析
  • Zeromq模式详解
  • UAC 实现原理及绕过方法
  • 【infiniband】SDR、DDR、QDR、FDR、EDR、HDR、NDR
  • 一文读懂ISM频段
  • asio中的锁到底严不严重
  • 拟合是什么意思
  • 转载--Linux下Modules的概念及使用详解
  • 什么是域名 --每天一个小知识
  • DFA 的化简
  • 一. NSIS介绍
  • 初探BFF架构
  • AutoGPT怎么用?一文配置自己的AutoGPT!
  • JavaScript中object对象
  • 私藏的18个黑科技网站,想找什么软件就找什么软件!!!
  • Java里什么是POJO
  • Css---vertical-align 属性的用法与应用
  • 【整理】TAC码是什么?TAC码和IMEI有什么关系?
  • 数据结构-二维数组
  • HTTP代理和SOCKS代理
  • Fortran语言的入门与心得
  • BST(二叉搜索树)
  • finalize方法_finalize()方法详解
  • HLS RTSP RTMP的区别
  • java injection_injection(注入)
  • MySql下载和安装
  • Linux基础知识汇总,收藏
  • 推荐几个精致的web UI框架及常用前端UI框架(1),web开发进阶
  • 各类编程语言的历史以及现状发展情况