什么是命令?
Linux命令
- 用来实现某一类功能的指令或程序
- 命令的执行依赖于解释器
- 命令行基础
绿色代表可以执行的程序
在Linux中大多数命令在执行时,都要找到对应的执行程序
which查找命令对应的执行程序
which poweroff 查找poweroff命令对应的执行程序
执行程序的文件路径 : /sbin/poweroff
- 命令的执行依赖于解释器(默认解释器 : bin/bash)
- 用户---->解释器---->内核---->硬件
cat /etc/shells 查看当前系统的解释器有哪些
/bin/sh
/bin/bash # /bin/bash 是linux操作系统默认的解释器
/usr/bin/sh
/usr/bin/bash
Linux命令的分类(了解即可)
- 内部命令:属于解释器的一部分
- 外部命令:解释器以外的其他程序
命令行的一般格式基本用法
命令字 [选项]... [参数1] [参数2]
打 刀枪棍棒 小明 小王
cat /etc/readhat-release /etc/shells 查看etc/readhat-release与/etc/shells的文件内容
cat --help 查看帮助信息
cat -n /etc/shells 给/etc/shlls的每一行加上行号
ls -l /etc/shells 长格式(显示详细属性)
ls -l /root 显示目录内容的详细属性
选项,调控命令的执行方式(一般情况下)
- 短选项: -l -A -c -d ...
- 多个选项-->复合选项: -lh -lA -ld ...
- 长选项: --help ...
参数,命令的操作对象,如目录或文件
例如 : ls -hd /home/ /boot/
mount挂载
挂载点有什么作用?
- Linux访问设备必须是在有挂载点的情况下访问
- 挂载点是为了让目录成为设备的访问点
从光盘中获得众多的软件包
命令行显示光盘内容
Windows:
光盘文件---->光驱设备 ----->CD驱动器(访问点)
Linux:
光盘文件---->光驱设备------->访问点(目录)
查看Linux的光驱设备
淡蓝色代表 : 快捷方式
光驱接口的实际名字叫sr0,快捷方式是/dev/cdrom
ls -l /dev/cdrom
挂载设备命令
mkdir /dvd
mount /dev/cdrom /dvd # 创建挂载点必须左边写设备 右边写访问目录
# 挂载成功后 : mount:/dev/sr0写保护,将以只读方式挂载
ls /dvd
ls /dvd/Packages/ # 查看linux系统的软件包,软件包以rpm结尾
卸载设备命令
umount /dvd # 卸载挂载点设备命令
mkdir /nsd01
mount /dev/cdrom /nsd01
ls /nsd01
ls /nsd01/Packages
注意事项
1.卸载时,当前所在位置不能是访问点(卸载时如果系统监测到有人在访问点,会认为有人在访问数据,卸载数据会消失)
2.挂载时,强烈建议自行创建目录(挂载成功会导致根下已经存在的一些目录消失,会直接影响一些重要数据的读取)
3.挂载时,允许一个设备有多个挂载点(但是一个挂载点,不允许有多个设备)
必须要知道的概念
- 1.在Linux中,设备是不能直接访问的,必须要通过访问点才可以访问到
- 2.Linux的访问点就是一个目录,它可以是新创建的也可以是根下已经存在的
- 3.目录跟设备本来是没有联系的,必须要通过mount命令建立联系
目录文件的管理
cd
.. # ..返回上一级目录
. # .代表当前目录
~ # 表示用户家目录(专门存放登陆用户个性化信息的目录)
/root:为管理员的家目录
cd ~root # 切换root用户的家目录
pwd
# /root
ueradd nana # 创建普通用户nana
cd ~nana
pwd # 切换nana用户的家目录
# /home/nana
Linux每新建一个新用户,会为该用户在/home下新增一个同名的家目录
显示目录内容ls
常用命令选项
- -l:以长格式显示,显示详细信息
- -d:显示目录本身(而不是内容)的属性
- -h:提供易读的容量单位(K,M等)
- -A:显示所有内容包含影藏数据
- -R:递归(目录本身以及目录下所有)显示内容
ls -l /etc/passwd 显示文件属性信息
ls -l /root 显示目录下所有文件的属性信息
ls -ld /root 显示目录本身的属性信息
ls -lh /root 大小加上易读的单位
ls -lh /etc/passwd 大小加上易读单位
Linux目录下,以.开头的目录或者文件就是影藏数据
ls -A /root 查看影藏数据
touch /root/.SB.txt 创建影藏数据
ls -R /boot/ 显示目录本身以及目录下所有文件
通配符
- 针对不确定的文档名称,以特殊字符表示
* 匹配任意多个字符
ls /root/a* 显示root目录下以a开头的全部文件
ls /etc/*tab 显示etc目录下以tab结尾的全部文件
? 匹配单个字符
ls /dev/tty? 显示dev目录下以tty开头且结尾为一个字符的全部文件
ls /etc/??tab 显示etc目录下开头任意两个字符且以tab结尾的全部文件
[] 匹配多个字符或连续范围中的一个,若无则忽略(匹配数字只能识别0-9)
ls /dev/tty[1-9] 显示dev目录下以tty开头且结尾为1-9的全部文件
ls /dev/tty[20-30] # 显示错乱
{}:多组不同的字符串,全匹配
ls /dev/tty{1,13,52,27} 显示dev目录下以tty开头,且以1,13,52,27结尾的全部文件
ls /etc/{fs,rw}tab 显示etc目录下以fs,rw开头,且以tab结尾的全部文件
别名alias
-
简化复杂的命令
-
定义别名是临时的,设置别名不要与基本命令冲突,如果冲突了会覆盖基础命令
alias pwd="hostname"
pwd # 执行pwd命令执行的是显示主机名
alias 查看系统中所有有效的别名
alias hn = "hostname" 定义新的别名
alias myls = "ls -ld" 定义新的别名
unalias hn 删除hn别名
新建目录
mkdir -p /opt/aa/bb/cc/dd 创建多层目录结构
ls -R /opt/aa 查看多层目录目录结构
删除rm
- 删除之后是没有回收站的,慎用!!!
删除文件:
rm /root/a.txt
# rm:remove regular empty file "a.txt"?
# 输入:y(删除)/n(不删除),如果直接Enter,那么默认为不删除
递归删除(含目录):
rm -r /root/abc
# rm:remove directory "/root/abc"?
# 输入:y(删除)/n(不删除),如果直接Enter,那么默认为不删除
强制删除
rm -rf /root/b.txt # 无需确认,直接删除
rm -rf /root/a* # 配合通配符一起使用,删除root目录下以a开头的全部文件(不会删除影藏文件)
移动与重命名mv
文件移动
touch /opt/a.txt
mv /opt/a.txt /root 将opt目录下的a.txt剪切到root目录下
mkdir /opt/abc
mv /opt/abc /root 将opt目录下的新目录abd剪切到root目录下
重新名:重新命名数据的名称(路径不变)
mv /root/a.txt /root/A.txt
mv /root/abc /root/ABC
在移动的时候,可以重新命名目标路径下的名称
mv /root/A.txt /opt/a2.txt 将root目录下的A.txt文件移动到opt目录下并改名为a2.txt
mv /root/ABC /opt/a3 将root目录下的ABC目录移动到opt目录下并改名为a3
在移动的时候,可以支持多个参数,永远会把最后一个参数作为目标(目录),其他所有参数都作为源
touch /root/1.txt
mkdir /root/123
mv /root/1.txt /root/123 /opt 将文件1.txt和目录123 移动到opt目录下
复制cp
rm -rf /opt/* # 删除opt目录中下的所有目录与文件
复制文件
touch /opt/a.txt
mkdir /opt/A
cp /opt/a.txt /opt/A 将opt目录中的a.txt复制粘贴到opt目录中的A目录中
复制目录(复制目录必须要-r)
cp -r /opt/A /root 将opt目录中的A目录复制粘贴到root目录中
复制出现同名,强制覆盖
cp -r /opt/A /root 将opt目录下的A目录覆盖root目录下已经存在的A目录
\cp -r /opt/A /root/ 将本次操作临时取消别名
alias cp="cp -i"
-i代表有一个确认提示,-f与-i意思相反,-f一般情况下是可以覆盖-i的,比如rm -rf ,就是通过-f去覆盖了-i的命令
只有cp的命令,-f优先级低于-i,可以通过\.../来临时取消的别名
在复制的时候,可以重新命名目录路径下名称
cp /etc/redhat-release /opt/rr.txt 将目录ect下的文件redhat-release复制粘贴到目录opt下并且改名成rr.txt
在复制的时候,可以支持多个参数,永远会把最后一个参数作为目标(目录),其他所有参数都作为源
cp -r /opt/rr.txt /home /root 将目录opt下的文件rr.txt与home目录复制粘贴到目录root中
在复制的经常与点进行连用,将数据复制到当前路径下
cd /root
cp -r /home . 将目录home复制到当前目录路径root下
过滤文本文件内容grep
grep [选项] "字符串" 文本文件...
· 常用命令选项
-
-v 取反匹配
-
-i 忽略大小写
-
^word 以字符串word开头
-
word$ 以字符串word结尾
-
^$ 匹配空行
注意 : grep默认情况下是不支持通配符的
grep root /etc/passwd
grep -v root /etc/passwd # 不包含root的行
grep man /etc/man_db.conf
grep -i man /etc/man_db.conf # 忽略大小写
grep ^root /etc/passwd # 以root开头的行
grep bash$ /etc/passwd # 以bash结尾的行
grep ^$ /etc/default/useradd # 匹配空行
grep -v ^$ /etc/default/useradd # 匹配非空行的文件内容