目录
Shell是操作系统提供给用户使用的界面(图形、字符),它提供了用户与内核进行交互操作的一种接口。当用户发出指令(命令或鼠标操作),先将这些指令发送给Shell,由Shell将用户的指令翻译后传送给内核,再由内核来控制硬件的工作。然后内核将硬件的工作情况发送给Shell,并由Shell返回硬件的工作信息和情况。
- 方法1:cat /etc/shells
- [root@localhost ~]# cat /etc/shells
- /bin/sh
- /bin/bash
- /usr/bin/sh
- /usr/bin/bash
- 方法2:chsh -l
- [root@localhost ~]# chsh -l
- /bin/sh
- /bin/bash
- /usr/bin/sh
- /usr/bin/bash
[root@localhost ~]# echo $SHELL
/bin/bash
切换为普通用户
[root@server ~]# su - student
[student@server ~]$
#:管理员
$:普通用户
- 普通用户登录:[当前登录用户@主机名 当前工作目录 ] $
- root用户登录:[root@主机名 当前工作目录 ] #
- 这种格式包含了以下三个方面的信息:
- 启动 Shell 的用户名,也即 root;
- 本地主机名称,也即 localhost;
- 当前目录,波浪号~是主目录的简写表示法。
- Shell 通过PS1和PS2两个环境变量来控制提示符格式:
- PS1 控制最外层命令行的提示符格式。
- PS2 控制第二层命令行的提示符格式。
- [student@server ~]$ echo $PS1
- [\u@\h \W]\$
- [student@server ~]$ echo $PS2
- >
图形终端-->字符终端:ctrl+Alt+F2~F6
字符终端-->字符终端:Alt+F2~F6
字符终端-->图形终端: 1:Alt+F1 方法 2:登录后输入startx 3:登录后输入init 5
通过网络登录:
ssh root@192.168.174.123 后跟所需要登录的IP地址,root是账户名
附:logout(注销):使用ctrl+d或exit
法1:点击活动--->Terminal


法2:Alt+F2。打开Enter a Command,输入gnome-terminal

echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为:
“echo [字符串] [$变量]”
这是在Linux系统中最常用的几个命令之一,执行“echo 字符串”或“echo $变量”就可 以,其中$符号意思是提取变量的实际值,以便后续的输出操作。
- [root@localhost ~]# echo "Hello World"
- Hello World
- [root@localhost ~]# echo "Username:$USER"
- Username:root
- [root@localhost ~]# date
- Sat Oct 22 18:06:58 CST 2022
- [root@localhost ~]# date +%Y-%m-%d
- 2022-10-22
- [root@localhost ~]# date +%F
- 2022-10-22
- [root@localhost ~]# date +%H:%M:%S
- 18:26:30
- [root@localhost ~]# date +%T
- 18:26:46
- [root@localhost ~]# date +%F-%T
- 2022-10-22-18:27:59
- [root@localhost ~]# date +"%F %T"---常用
- 2022-10-22 18:28:18
- [root@server ~]# date +%j---今天是今年的第几天
- 310


- [root@localhost ~]# timedatectl status ---查看状态
- Local time: Sat 2022-10-22 18:30:42 CST
- Universal time: Sat 2022-10-22 10:30:42 UTC
- RTC time: Sat 2022-10-22 10:30:42
- Time zone: Asia/Shanghai (CST, +0800)
- System clock synchronized: no
- NTP service: inactive
- RTC in local TZ: no
- [root@localhost ~]# timedatectl set-timezone Asia/Shanghai 设置当前时区
重启命令:
reboot
shutdown -r row
init 6
关机命令:
halt
shutdown -h now
poweroff
init 0
wget:-c 支持断点续传
接下来,使用wget命令递归下载www.baidu.com网站内的所有页面数据以及文件,下载完后会自动保 存到当前路径下一个名为www.baidu.com的目录中,该命令的执行结果如下:
[root@kongd ~]# wget -r -p https://www.kongd.com
查看主机名:hostname
查看ip地址:ip address
查看操作系统:cat /etc/redhat-release
查看内核:uname -r
命令名 [选项] [参数]
其中命令名、选项、参数之间使用空格隔开,多余的空格将被忽略,而用方括号括起来的部分表明该项是可 省略的,如直接在提示符后面输入命令date,显示当前的日期和时间。
<1> 命令:做什么
<2> 选项:怎么做
短格式 -l 多个短格式的选项可以合并。例:ls -a -l --> ls -al
长格式 --all
<3> 参数:对谁做
一般指的是文件/目录
<4> 按【Ctrl+C】键可中断正在执行的命令。
<5> linux的命令、选项、参数均区分大小写,大多数情况下是小写。
- [root@localhost ~]# rpm -q bash-completion
- bash-completion-2.7-5.el8.noarch
两种补全:
补全命令:输入命令关键字的前几个字符后,按Tab键,可实现命令自动补全。
补全文件名和目录名(当前路径下的)
<1> 如何区分内部和外部命令?type
linux中对应的命令的类型分为内部命令和外部命令,外部命令对应的是path环境变量下可以找到的与命令名称一致的文件的名称,其中每一个外部命令对应的是一个可执行的程序。内部命令是外部命令中含有的命令的,比如bash中存在内部的命令cd ,内部命令的对应的信息展示固定。
外部命令:以文件形式保存在磁盘上
<2> 系统上有多少内部命令?help之中列出来的全都是内部命令
内部命令:help 命令
外部命令:命令 --help
<1> man用来提供在线帮助,使用权限是所有用户。在Linux系统中存储着一部联机使用的手册,以 供用户在终端上查找。使用man命令可以调阅其中的帮助信息,非常方便实用。
man命令常用按键以及作用
<2> 使用pinfo命令可以查看info文件。
pinfo命令将搜索当前录、/usr/share/info、/usr/info、/usr/local/share/info、/usr/local/info及/opt/info等目录。
pinfo 命令的帮助信息是一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一 个小章节。
命令语法:pinfo [选项] [info|manua]
pinfo命令选项含义
------哲学思想:一切皆文件
面试必考:一级目录作用。
请说出下列目录作用:/etc /boot /bin /dev /home /usr /var

绝对路径:是指以根目录“/”为起点来表示系统中某个文件(或目录)的位置的方式
相对路径:是以当前目录为起点,表示系统中某个文件或目录在目录结构中的位置的方式。
- 附:
- pwd:打印当前工作目录
- [root@localhost ~]# pwd
- /root
- (要求切换到/usr下面的local目录)
- 法一:使用相对路径
- [root@localhost usr]# pwd
- /usr
- [root@localhost usr]# cd local
- [root@localhost local]# pwd
- /usr/local
- 法二:使用绝对路径
- [root@localhost ~]# cd /usr/local
使用ls -l查看:

附:
- 使用file查看系统文件类型
- # file anaconda-ks.cfg
- anaconda-ks.cfg: ASCII text
- # file /dev/sda
- /dev/sda: block special
- # file /dev/tty1
- /dev/tty1: character special
- # file /tmp
- /tmp: sticky directory
- # file /dev/log
- /dev/log: socket
- # file /bin/sh
- /bin/sh: symbolic link to `bash'
- # file /run/dmeventd-client
- /run/dmeventd-client: fifo (named pipe)
<1> 命名格式:mkdir [-p] [/路径/] 目录名
1> 长度不能超过25个字符;
2> 不能使用/当文件名
3> 严格区分大小写
<2> 常规使用:-p——可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖
<3> 示例:
- 1> 创建/dir1
- [root@localhost ~]# mkdir /dir1
- 2> 创建/d/d1/d12
- [root@localhost ~]# mkdir /d/d1/d12
- mkdir: cannot create directory ‘/d/d1/d12’: No such file or directory
- (多层目录结构需加上-p,实现递归式的创建。)
- [root@localhost ~]# mkdir -p /d/d1/d12
<1> 列表(list)ls
格式:ls [ 选项 ] 文件名或目录名

<2> tree:树状显示目录结构
1> 查看:
- [root@localhost ~]# tree /d
- /d
- └── d1
- └── d12
- 2 directories, 0 files
2> 常用选项:


[root@localhost ~]# mv /dir1 /dir123(3)删除
<1> rmdir:删除空目录
<2>
[root@localhost ~]# rm -rf /:危险系数高,谨慎使用
[root@localhost ~]# tree /d1
/d1 [error opening dir]
0 directories, 0 files

- <1> 例1:切换到路径/usr/local/src
- [root@localhost src]# cd /usr/local/src/
- <2> 例2:返回上次路径
- [root@localhost src]# cd ..
- <3> 例3:返回用户主目录
- 1> root:/root student:/home/student
- 方法1:[root@localhost local]# cd
- 方法2:[root@localhost local]# cd ~
- 2>返回指定用户的主目录
- [root@localhost ~]# cd ~student
- [root@localhost student]# pwd
- /home/student
-
- # cd /usr/local/lib //改变目录到/usr/local/lib目录下
- # cd .. //进入当前目录的父目录
- # cd ../etc //进入当前目录的父目录下的etc子目录
- # cd ~ //进入root用户登录时的工作目录(家目录)
- # cd 桌面 //进入当前目录下的“桌面”子目录
- # cd //进入当前用户的家目录
附:面试题:当前路径是/usr/local/src/,当用户在键盘敲入cd命令,路径变成什么?
- [root@server src]# pwd
- /usr/local/src
- [root@server src]# cd
- [root@server ~]# pwd
- /root
- 返回用户的主目录,root用户主目录为/root
<1> touch filename---如果文件不存在,则创建空文件;如果文件存在,则修改文件的时间戳.
1> 格式: touch [选项] 文件或目录名列表
2> 选项:

<2> 借助重定向(>)生成文件
[root@localhost ~]# echo 'hello world'>h.txt
<3> 借助类似vi或者nano等生成文件。
[root@server ~]# nano c.txt
[root@server ~]# mv a.txt b.txt

格式:cp [选项] 源文件 目标文件
- <1> 例1:复制/etc/hosts文件到当前路径
- [root@localhost ~]# cp /etc/hosts .
- <2> 例2:复制/etc/hosts文件到当前路径,文件为hosts.txt
- [root@localhost ~]# cp /etc/hosts host.txt
- <3> 例3:复制/etc/host.conf /etc/hostname 到/opt
- [root@localhost ~]# cp /etc/host.conf /etc/hostname /opt/
- [root@localhost ~]# ls /opt
- host.conf hostname
- <4> 例4:复制/etc/host开始的文件到/opt目录
- (通配符:* 代表任意个)
- [root@localhost ~]# cp /etc/host* /opt/
- cp: overwrite '/opt/host.conf'? n
- cp: overwrite '/opt/hostname'? n
- [root@localhost ~]# ls /opt
- host.conf hostname hosts hosts.allow hosts.deny
- <5> 例5:复制/etc/host开始的文件到/opt目录,如果/opt目录有同名文件强制覆盖
- 分析:管理员使用cp命令的时候,实际上使用了别名cp,即cp-i
- 法1:使用cp命令的绝对路径
- [root@localhost ~]# /usr/bin/cp /etc/host* /opt
- 法2:将cp命令转义
- [root@localhost ~]# \cp /etc/host* /opt
- <6> 例6:复制/opt目录及子目录和文件到/d目录下
- [root@localhost ~]# cp -r /opt /d
- [root@localhost ~]# ls /d
- d1 opt
格式:mv [参数] 源文件名称 目标文件 名称
- 注意:使用mv命令时,源和目的路径一致,相当于改名
- [root@localhost ~]# mv /d/opt/hosts /tmp/
- [root@localhost ~]# mv /d/opt/hostname /tmp/hostname.txt
- [root@localhost ~]# ls /d/opt
- host.conf hosts.allow hosts.deny
格式:rm [选项] 文件或目录名及路径
- [root@localhost ~]# ls /d/d1
- d12
- [root@localhost ~]# rm -fr /d/d1
- [root@localhost ~]# ls /d/d1
- ls: cannot access '/d/d1': No such file or directory
格式: ln [选项] 被链接的源文件或目录 链接文件或目标目录
选项:
-s——建立符号链接(软链接),不加该选项时建立的链接为硬链接。
-f——删除已经存在目标文件与源文件之间的链接关系。
-i——交互式地删除目标文件与源文件之间的链接关系。
