主要内容:
Linux命令、Shell解释器、命令行一般格式、mount挂载/卸载、pwd ls及选项、通配符、alias别名、mkdir及选项、cp rm mv。
一、Linux命令
Linux命令,是在Linux终端或者称作命令行界面(CLI)中执行的指令,用来与操作系统交互。通过这些命令,用户和系统管理员可以完成从简单的文件操作到复杂的系统管理任务。这些命令被设计为简洁且功能强大,支持多种参数和选项以执行特定的功能。
- 用来实现某一类功能的指令或程序
- 命令的执行依赖于 解释器(例如:/bin/bash、/sbin/bash)
- 用户 ---> 解释器 ---> 内核 ---> 硬件
下面是一些基本的Linux命令示例:
ls
:列出目录内容。cd
:更改目录。pwd
:显示当前工作目录的路径。cp
:复制文件或目录。mv
:移动或重命名文件或目录。rm
:删除文件或目录。mkdir
:创建新目录。rmdir
:删除空目录。touch
:创建空文件或更改文件时间戳。echo
:在终端输出文字。cat
:查看文件内容、创建文件、文件合并、追加文件内容等功能。chmod
:更改文件或目录的权限。chown
:更改文件或目录的所有者和组。grep
:文本搜索工具,用于搜索文件中的字符串匹配。find
:在目录树中查找文件,并进行操作。
解释器,通常称为Shell,是Linux中的命令行界面。它是用户与Linux内核之间的接口,用于解释用户输入的命令并将其发送给操作系统执行。Shell也是一种强大的编程环境,支持变量、条件语句、循环和函数。
Linux系统中常见的几种Shell:
Bash(Bourne-Again SHell):
最常用的Linux shell之一,几乎所有的Linux发行版都将其作为默认shell。它是Bourne Shell的增强版,提供了更多的功能和改进。sh(Bourne Shell):
Unix系统上的原始shell,许多shell的鼻祖。zsh(Z Shell):
功能丰富的现代shell,强调用户友好和可定制性,具有许多与Bash兼容的特性。csh(C Shell):
由C语言的语法影响较大的shell,特别适合编程。tcsh:
C Shell的增强版,增加了自动补全和命令行编辑等功能。fish(friendly interactive shell):
最近几年获得流行的shell,重点在于用户友好和智能的特性。
示例:
[root@localhost / ]# hostname
localhost.localdomain
[root@localhost / ]# ls /usr/bin/hostname
/usr/bin/hostname
[root@localhost / ]# which hostname //查询命令对应的程序
/usr/bin/hostname
[root@localhost / ]# which poweroff //查询命令对应的程序
/usr/sbin/poweroff
二、命令行的一般格式
基本用法:命令字 [选项]... [参数1] [参数2]..
1)以 ls 选项为例,调控命令的执行方式,例如:
- 短选项:-l、-A、-c、-d ...
- 复合选项:-lh、-lA、-ld...
- 长选项:--help...
ls -la ## 列出当前目录下所有文件(包括隐藏文件)的详细信息。
ls -lh ## 以易读的格式列出当前目录下的所有文件的详细信息。
ls -lt ## 根据修改时间排序显示详细信息,最近修改的文件先显示。
ls -lR ## 递归地列出所有目录和子目录下的文件详细信息。
ls -lrS ## 根据文件大小反向排序显示详细信息,大小小的文件先显示。
2)除了之外,ls 命令还可以接受参数,通常是文件或目录的路径,例如:
ls /var/log ## 列出 /var/log 目录下的所有文件和目录。
ls myfile.txt ## 显示关于 myfile.txt 文件的信息。
三、挂载与卸载(monut/umount)
- 将光盘、U盘、分区、网络存储等设备装到某个Linux目录;
- 各种命令工具通过访问Linux目录来操作这些设备,让目录成为设备的访问点;
- Windows显示光盘内容:光盘 ---> 光驱 ---> 资源管理驱动图标(DVD驱动器)
- Linux显示光盘内容:光盘---->光驱设备---->自行创建访问点(目录)
步骤1:打开KVM虚拟系统管理器,打开【显示虚拟硬件详情】,打开【SATA CDROM1】,选择需要显示的光盘内容;
步骤2:选择并应用;
步骤3:在桌面即可显示光盘内容(挂载)
步骤4:Linux 查看光驱设备路径:/dev/cdrom,真实光驱设备为sr0
1、临时挂载光盘或分区
mount 命令 在 Linux 中用于挂载文件系统到指定的目录下。当需要访问光盘内容或其他分区的数据时,可以使用 mount 命令临时挂载它们到系统中。
格式:mount [选项] <设备名> <挂载点>
- <设备名>:是要挂载的设备的标识,例如 /dev/sdb1。
- <挂载点>:是文件系统结构中已经存在的目录,作为访问挂载设备内容的入口。
常用选项:
-t <类型>
:指定文件系统的类型,如ext4
,ntfs
,vfat
等。-o <选项>
:允许你指定各种挂载选项,如ro
(只读),rw
(读写),uid
,gid
等。
注意:
- 可以将设备同时挂载到多个挂载点目录,但一个挂载点目录不能挂载多个设备
- 强烈不建议在系统下的目录挂载光驱设备,会影响linux运行,建议创建空目录‘
例如:要挂载一个 CD-ROM(假设设备名为 /dev/cdrom),你可以按照以下步骤操作:
[root@localhost ~]# mkdir /dvd //光驱以文件显示,先创建目录
[root@localhost ~]# mount /dev/cdrom /dvd/ //挂载光驱设备
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /dvd/ //访问设备内容
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@localhost ~]# ls /dvd/Packages/
389-ds-base-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm
...
常见报错:若没有将光盘文件放入光驱设备cdrom中,遇到报错信息如下:
[root@localhost ~]# mount /dev/cdrom
mount: 在 /dev/sr0 上找不到媒体
[root@localhost ~]# mount /dev/cdrom /dvd/
mount: /dev/sr0 已经挂载或 /dvd 忙
/dev/sr0 已经挂载到 /run/media/root/CentOS 7 x86_64 上
/dev/sr0 已经挂载到 /dvd 上
如图所示:
2、卸载已挂载的光盘
当你完成操作后,可以使用 umount 命令 来卸载文件系统:
格式:umount <挂载点>
注意:不要在挂载点目录下卸载挂载点目录
例如:卸载 /dvd/,你可以按照以下步骤操作:
[root@localhost ~]# umount /dvd/
[root@localhost ~]# ls /dvd/
[root@localhost ~]# mkdir /mydvd
[root@localhost ~]# mount /dev/cdrom /mydvd/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mydvd/
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
常见报错:不要在挂载点目录下卸载挂载点目录,报错目标忙
[root@localhost ~]# cd /mydvd/
[root@localhost mydvd]# umount /mydvd/
umount: /mydvd:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
四、目录及文件管理
1)pwd(Print Working Directory)
用途:查看当前工作目录
2)cd(Change Directory)
用途:切换工作目录
格式:cd [目标文件夹位置]
- [~];表示家目录,家目录:专门存放用户个性化信息的目录
- ~user:用户user的家目录
- /root:Linux管理员root用户的家目录;
- /home:存放所有普通用户的家目录;
注意:默认在/home下创建与用户同名的子目录作为用户家目录,注意普通用户的家目录不是/home,而是存放同名的子目录
[root@localhost /]# useradd anj //创建普通用户
[root@localhost /]# ls /home
anj
[root@localhost /]# cd ~ //或cd ~ root,切换到root家目录
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd ~anj //切换到anj家目录
[root@localhost anj]# pwd
/home/anj
3)ls(list)
用途:列出文档及属性
格式:ls [选项]... [目录或文件名]
常用命令选项:
- [-l] 以长格式显示
- [-A] 显示所有内容,包含隐藏数据
- [-d] 显示目录本身(非内容)的属性
- [-h] 提供易读的容量单位(K、M等)
- [-R] 递归显示内容
例如1:
[root@localhost /]# ls -ld /boot //查看目录的详细属性
dr-xr-xr-x. 5 root root 4096 3月 1 15:14 /boot
[root@localhost /]# ls -lhd /boot //查看目录的详细属性(带单位)
dr-xr-xr-x. 5 root root 4.0K 3月 1 15:14 /boot
例如2:
[root@localhost /]# ls -lh /boot //查看目录中的文件详细属性
总用量 117M
-rw-r--r--. 1 root root 145K 4月 21 2018 config-3.10.0-862.el7.x86_64
drwxr-xr-x. 3 root root 17 3月 1 14:54 efi
-rw-r--r--. 1 root root 298K 4月21 2018 symvers-3.10.0-862.el7.x86_64.gz
-rwxr-xr-x. 1 root root 6.0M 4月 21 2018 vmlinuz-3.10.0-862.el7.x86_64
...
例如3:
[root@localhost /]# ls -lh /etc/passwd //查看文件的详细属性
-rw-r--r--. 1 root root 2.4K 3月 2 14:15 /etc/passwd
例如4:
[root@localhost /]# ls -lh /dev/cdrom //查看快捷方式的详细属性
lrwxrwxrwx. 1 root root 3 3月 2 11:46 /dev/cdrom -> sr0
例如:5:
[root@localhost /]# ls -A /root/ //显示目录下的隐藏文件
anaconda-ks.cfg .bashrc .dbus .local 公共 文档
.bash_history .cache .esd_auth .tcshrc 模板 下载
.bash_logout .config .ICEauthority .viminfo 视频 音乐
.bash_profile .cshrc initial-setup-ks.cfg .xauth903BB1 图片 桌面
例如5.1:
[root@localhost /]# touch /opt/.1.txt //隐藏文件以[.]开头
[root@localhost /]# ls /opt/
1.txt a.txt Linux.txt nsd.txt rh
[root@localhost /]# ls -A /opt/
.1.txt 1.txt a.txt Linux.txt nsd.txt rh
例如6:
[root@localhost opt]# ls -R /opt/ //显示展开所有目录
/opt/:
a.txt Linux.txt nsd.txt rh
/opt/rh:
五、通配符使用
在Linux中使用通配符可以帮助你快速地指定一组文件或目录,这些通配符在使用诸如ls, cp, mv, rm等命令时非常有用。以下是一些最常用的通配符及其用途:
1. 星号(*)
- 作用:匹配零个或多个字符。
- 示例:
ls *.txt
:列出当前目录下所有以.txt
结尾的文件。cp *.jpg /some/directory
:将所有.jpg
文件复制到指定目录。2. 问号(?)
- 作用:匹配任何单个字符。
- 示例:
ls ?.txt
:列出所有仅有一个字符并以.txt
结尾的文件。rm ??.txt
:删除所有有两个字符并以.txt
结尾的文件。3. 方括号([ ])
- 作用:匹配括号内的任何单一字符。
- 示例:
ls [abc]*
:列出所有以a
,b
, 或c
开始的文件。mv file[1-3].txt /other/directory
:移动file1.txt
,file2.txt
, 和file3.txt
到另一个目录。4. 脱字符(^)或感叹号(!)
- 作用:当用在方括号表达式中,匹配不在方括号中的任何单一字符。
- 示例:
ls [^a]*
:列出所有不以a
开始的文件。rm [!b]*
:删除所有不以b
开始的文件(在某些shell中)。5. 花括号({ })
- 作用:匹配花括号内的字符串模式。
- 示例:
ls {file1,file2,file3}.txt
:列出file1.txt
,file2.txt
,file3.txt
。cp /path/to/{file1,file2,file3} /new/path
:复制file1
,file2
,file3
到新路径。6. 反斜杠(\)
- 作用:转义字符,用来取消特殊字符的特殊意义。
- 示例:
ls \*.txt
:列出名为*.txt
的文件(而非所有以.txt
结尾的文件)。rm \?file.txt
:删除名为?file.txt
的文件。
【*】星号 示例:
[root@localhost /]# ls /root/a*
/root/anaconda-ks.cfg
[root@localhost /]# ls /etc/*tab
/etc/anacrontab /etc/crypttab /etc/inittab /etc/rwtab
/etc/crontab /etc/fstab /etc/mtab /etc/statetab
[root@localhost /]# ls /etc/r*.conf
/etc/radvd.conf /etc/resolv.conf /etc/rsyslog.conf
/etc/request-key.conf /etc/rsyncd.conf
若ls显示的通配符对象为一个目录,则将该目录下的所有匹配到记录,包括子目录全部展示,例如:
[root@localhost /]# ls /etc/a*
/etc/adjtime /etc/aliases.db /etc/asound.conf
/etc/aliases /etc/anacrontab /etc/at.deny
/etc/abrt:
abrt-action-save-package-data.conf abrt.conf gpg_keys.conf plugins
/etc/alsa:
alsactl.conf state-daemon.conf
【?】问号 示例:
[root@localhost /]# ls /dev/tty?
/dev/tty0 /dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8
/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9
[root@localhost /]# ls /etc/??tab
/etc/fstab /etc/rwtab
【[] 、{}】方括号 花括号 示例:
[root@localhost /]# ls /dev/tty[0-9]
/dev/tty0 /dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8
/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9
[root@localhost /]# ls /dev/tty{1,17,20}
/dev/tty1 /dev/tty17 /dev/tty20
六、别名的定义(临时定义)
用途:简化复杂的命令(alias别名优先级比系统命令高)
格式:
- alias [别名名称] //查看已设置的别名(系统生效中的别名)
- alias 别名名称=’实际执行的命令行’ //定义新的别名
- unalias [别名名称] //取消已设置的别名
例如1:
[root@localhost /]# alias //查看已设置的别名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost /]# alias hn='hostname' //定义新的别名
[root@localhost /]# hn
localhost.localdomain
[root@localhost /]# unalias hn //取消已设置的别名
[root@localhost /]# hn
bash: hn: 未找到命令...
例如2:
[root@localhost /]# alias myll='ls -ll' //定义别名,可带命令选项
[root@localhost /]# myll /etc/passwd
-rw-r--r--. 1 root root 2367 3月 2 14:15 /etc/passwd
例如3:(反斜杠,临时取消别名,强制不回复)
[root@localhost opt]# \cp -r /boot/ /opt/ //本次操作临时取消别名
七、文档相关操作
1)mkdir(Make Directory)
用途:mkdir 用于创建目录
格式:mkdir [-p] [/路径/]目录名... //-p表示连父目录一起创建
例如:
[root@localhost /]# mkdir /opt/aa/bb/cc/dd //无法直接创建
mkdir: 无法创建目录"/opt/aa/bb/cc/dd": 没有那个文件或目录
[root@localhost /]# mkdir -p /opt/aa/bb/cc/dd
[root@localhost /]# ls -R /opt/aa
/opt/aa:
bb
/opt/aa/bb:
cc
/opt/aa/bb/cc:
dd
2)cp(copy)源数据不会消失
用途:复制
格式:cp [选项]... 原文件... 目标路径
常用命令选项:
- [-r] 递归(复制目录时必须有此选项)
- [-p] 保持权限不变进行复制
例如1:复制可以支持重新命名目标路径下的数据名称
[root@localhost /]# cp /etc/passwd /opt/
[root@localhost /]# ls /opt/
passwd rh
[root@localhost /]# cp /home/ /opt/ //不包括home目录复制会有报错
cp: 略过目录"/home/"
[root@localhost /]# cp -r /home/ /opt/ //-r,包括home目录
[root@localhost /]# ls /opt/
boot home passwd rh
例如2:重命名进行强制覆盖
[root@localhost opt]# \cp -r /boot/ /opt/ //本次操作临时取消别名
例如3:第一次及二次拷贝差异
[root@localhost /]# ls /opt/
[root@localhost /]# cp -r /root/ /opt/myroot //第一次拷贝,因无目标路径,则自己创建目标路径
[root@localhost /]# ls /opt/
myroot
[root@localhost /]# ls /opt/myroot/
anaconda-ks.cfg root 模板 图片 下载 桌面
initial-setup-ks.cfg 公共 视频 文档 音乐
[root@localhost /]# cp -r /root/ /opt/myroot //第二次拷贝,因已有相同完整的目标路径,则直接在该路径下覆盖原文件
[root@localhost /]# ls /opt/myroot/
anaconda-ks.cfg root 模板 图片 下载 桌面
initial-setup-ks.cfg 公共 视频 文档 音乐
例如4:复制内容相同,则会覆盖
[root@localhost /]# cp /etc/redhat-release /opt/r.txt //改名
[root@localhost /]# cat /opt/r.txt
CentOS Linux release 7.5.1804 (Core)
[root@localhost /]# cp /etc/redhat-release /opt/r.txt
cp:是否覆盖"/opt/r.txt"? y
[root@localhost /]#
例如5:复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据
[root@localhost /]# mkdir /nsd05
[root@localhost /]# cp -r /home/ /etc/passwd /boot/ /nsd05/
[root@localhost /]# ls /nsd05/
boot home passwd
例如6:复制与一个点进行连用,将数据复制到当前路径下
[root@localhost /]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp /etc/passwd . //复制到当前路径
[root@localhost network-scripts]# ls p*
passwd
3)rm(remove)
用途:删除
格式:rm [选项]... 文件或目录...
常用命令选项:
- [-r] 递归删除
- [-f] 强制删除
- [-d] 删除空目录
例如1:
[root@localhost /]# mkdir -p /opt/aa/bb/cc/dd
[root@localhost /]# rm -rf /opt/aa
[root@localhost /]# ls /opt/
a.txt Linux.txt nsd.txt rh
例如2:
[root@localhost /]# ls /opt/
a.txt Linux.txt nsd.txt rh
[root@localhost /]# rm -rf /opt/a.txt
[root@localhost /]# ls /opt/
Linux.txt nsd.txt rh
补充:rm -r 和 rm -R 区别(用途不同、范围不同、数量不同)
① 用途
- rm -r :只能用于删除文件,不能用于删除文件夹;
- rm -R:既能用于删除文件,也能用于删除文件夹;
② 范围
- rm -r :删除范围是删除当前输入位置的文件;
- rm -R :删除范围是删除当前输入的目录文件夹里文件及其子目录里的文件;
③ 数量
- rm -r :只能删除指定的一个文件,不能同时删除多个文件;
- rm -R :既能删除指定的一个文件,也能通过删除指定的一个文件夹实现多个文件的删除;
4)mv(move)源数据会消失
用途:移动/改名(路径不变的移动则是重命名)
格式:mv [选项]... 原文件... 目标路径
注意:类似剪切,对原文件有影响
例如1:
[root@localhost opt]# mkdir /opt/nsd01 //创建新目录
[root@localhost opt]# touch /opt/1.txt //创建新文件
[root@localhost opt]# ls
1.txt Linux.txt nsd01 nsd.txt rh
[root@localhost opt]# mv /opt/1.txt /opt/nsd01/ //移动新文件到新目录
[root@localhost opt]# ls
Linux.txt nsd01 nsd.txt rh
[root@localhost opt]# cd /opt/nsd01/
[root@localhost nsd01]# ls
1.txt
例如2:
[root@localhost /]# mv /opt/nsd01 /opt/nsd02 //重新命名
[root@localhost /]# ls /opt/
nsd02
[root一、Linux命令
- 用来实现莫一类功能的指令或程序
- 命令的执行依赖于解释器(例如:/bin/bash /sbin/bash)
(用户 ---> 解释器 ---> 内核 ---> 硬件)
小结:
本篇章节为 【第一阶段】ADMIN-DAY3 的学习笔记,可以初步了解到 Linux命令、Shell解释器、命令行一般格式、mount挂载/卸载、pwd ls及选项、通配符、alias别名、mkdir及选项、cp rm mv。除此之外推荐参考相关学习网址:
Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解。