目录
一、linux命令行操作以及目录操作
1.Shell
(1)linux的操作界面常称为Shell。
(2)概念:
Shell是操作系统提供给用户使用的界面(图形、字符),它提供了用户与内核进行交互操作的一种接口。当用户发出指令(命令或鼠标操作),先将这些指令发送给Shell,由Shell将用户的指令翻译后传送给内核,再由内核来控制硬件的工作。然后内核将硬件的工作情况发送给Shell,并由Shell返回硬件的工作信息和情况。
(3)查看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
(4)查看当前默认的Shell
[root@localhost ~]# echo $SHELL
/bin/bash
切换为普通用户
[root@server ~]# su - student
[student@server ~]$
(5)Shell提示符
#:管理员
$:普通用户
普通用户登录:[当前登录用户@主机名 当前工作目录 ] $
root用户登录:[root@主机名 当前工作目录 ] #
这种格式包含了以下三个方面的信息:
启动 Shell 的用户名,也即 root;
本地主机名称,也即 localhost;
当前目录,波浪号~是主目录的简写表示法。
Shell 通过PS1和PS2两个环境变量来控制提示符格式:
PS1 控制最外层命令行的提示符格式。
PS2 控制第二层命令行的提示符格式。
[student@server ~]$ echo $PS1
[\u@\h \W]\$
[student@server ~]$ echo $PS2
>
(6)登录字符终端和图形终端方法
图形终端-->字符终端: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
2.使用桌面访问命令行
法1:点击活动--->Terminal
法2:Alt+F2。打开Enter a Command,输入gnome-terminal
3.常用简单命令
(1)echo:输出字符串或者变量的值
echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为:
“echo [字符串] [$变量]”
这是在Linux系统中最常用的几个命令之一,执行“echo 字符串”或“echo $变量”就可 以,其中$符号意思是提取变量的实际值,以便后续的输出操作。
[root@localhost ~]# echo "Hello World"
Hello World
[root@localhost ~]# echo "Username:$USER"
Username:root
(2)date:查看或设置日期时间
[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
(3)timedatectl命令
[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 设置当前时区
(4)开关机
重启命令:
reboot
shutdown -r row
init 6
关机命令:
halt
shutdown -h now
poweroff
init 0
(5)下载命令:
wget:-c 支持断点续传
接下来,使用wget命令递归下载www.baidu.com网站内的所有页面数据以及文件,下载完后会自动保 存到当前路径下一个名为www.baidu.com的目录中,该命令的执行结果如下:
[root@kongd ~]# wget -r -p https://www.kongd.com
(6)查看系统信息
查看主机名:hostname
查看ip地址:ip address
查看操作系统:cat /etc/redhat-release
查看内核:uname -r
4.Bash执行命令
(1)Shell命令一般格式:
命令名 [选项] [参数]
其中命令名、选项、参数之间使用空格隔开,多余的空格将被忽略,而用方括号括起来的部分表明该项是可 省略的,如直接在提示符后面输入命令date,显示当前的日期和时间。
<1> 命令:做什么
<2> 选项:怎么做
短格式 -l 多个短格式的选项可以合并。例:ls -a -l --> ls -al
长格式 --all
<3> 参数:对谁做
一般指的是文件/目录
<4> 按【Ctrl+C】键可中断正在执行的命令。
<5> linux的命令、选项、参数均区分大小写,大多数情况下是小写。
(2)命令、选项和参数的自动补全
[root@localhost ~]# rpm -q bash-completion
bash-completion-2.7-5.el8.noarch
两种补全:
补全命令:输入命令关键字的前几个字符后,按Tab键,可实现命令自动补全。
补全文件名和目录名(当前路径下的)
5.命令帮助
(1)命令类型:内部命令,外部命令
<1> 如何区分内部和外部命令?type
linux中对应的命令的类型分为内部命令和外部命令,外部命令对应的是path环境变量下可以找到的与命令名称一致的文件的名称,其中每一个外部命令对应的是一个可执行的程序。内部命令是外部命令中含有的命令的,比如bash中存在内部的命令cd ,内部命令的对应的信息展示固定。
外部命令:以文件形式保存在磁盘上
<2> 系统上有多少内部命令?help之中列出来的全都是内部命令
(2)命令帮助
内部命令:help 命令
外部命令:命令 --help
(3)man和pinfo
<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命令选项含义
6.目录结构
------哲学思想:一切皆文件
(1)特点:使用树形目录结构来组织和管理文件。
(2)树状目录结构,/代表根。
面试必考:一级目录作用。
请说出下列目录作用:/etc /boot /bin /dev /home /usr /var
(3)路径
绝对路径:是指以根目录“/”为起点来表示系统中某个文件(或目录)的位置的方式
相对路径:是以当前目录为起点,表示系统中某个文件或目录在目录结构中的位置的方式。
附:
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
(4)文件类型:
使用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)
7.目录操作命令
(1)创建目录:mkdir
<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
(2)显示目录内容
<1> 列表(list)ls
格式:ls [ 选项 ] 文件名或目录名
<2> tree:树状显示目录结构
1> 查看:
[root@localhost ~]# tree /d
/d
└── d1
└── d12
2 directories, 0 files
2> 常用选项:
(3)更改:改名
[root@localhost ~]# mv /dir1 /dir123(3)删除
(4)删除:
<1> rmdir:删除空目录
<2>
[root@localhost ~]# rm -rf /:危险系数高,谨慎使用
[root@localhost ~]# tree /d1
/d1 [error opening dir]
0 directories, 0 files
(5)列出目录内容:ls
(6)切换目录:cd
<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
8.文件操作命令
(1)创建文件:
<1> touch filename---如果文件不存在,则创建空文件;如果文件存在,则修改文件的时间戳.
1> 格式: touch [选项] 文件或目录名列表
2> 选项:
<2> 借助重定向(>)生成文件
[root@localhost ~]# echo 'hello world'>h.txt
<3> 借助类似vi或者nano等生成文件。
[root@server ~]# nano c.txt
(2)文件改名:
[root@server ~]# mv a.txt b.txt
(3)复制文件:cp
格式: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
(4)移动文件:mv
格式: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
(5)删除文件或目录:rm
格式: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
(6)为文件或目录创立链接(link)---ln
格式: ln [选项] 被链接的源文件或目录 链接文件或目标目录
选项:
-s——建立符号链接(软链接),不加该选项时建立的链接为硬链接。
-f——删除已经存在目标文件与源文件之间的链接关系。
-i——交互式地删除目标文件与源文件之间的链接关系。