Shell命令详解与Linux目录结构(重点)
Linux精髓在于命令行
Linux命令的通用命令格式
命令字 [选项] [参数]
选项:用于调节命令的具体功能
- 分类:
- “-“ 引导短格式选项(单个字符) EX: “-l”
- “–” 引导长格式选项(多个字符) EX: “–color”
- 多个短格式选项可以写在一起 EX: -a -l -z -x –> -alzx
- 分类:
参数:命令操作的对象,有文件、目录等
EX: ls -l /home
Linux目录结构
boot:存放系统引导文件和内核文件
bin: 存放可执行文件(二进制文件)(ls,cat,mkdir)
sbin:root用户执行命令
home:普通用户家目录
root:root用户家目录
dev:存放所有设备文件(外设)
如:/dev/md* /dev/sd* /dev/hd* .......
etc:存放所有配置文件(服务)
lib/lib64:动态链接库文件(共享库文件) lib64目录普通用户不可操作,类似于.dll
media:媒体库文件
opt:文件安装目录,安装软件就在opt目录下
mnt:挂载点目录
mount * *
var:存放一些需要改变数据的文件,如日志、某些大文件的溢出区
proc:虚拟文件系统目录,放的是内存的一个映射
可查看一些信息和设备运行状态
# cat /proc/cpuinfo //查看cpu运行状态 # cat /proc/meminfo //查看内存运行状态 # cat /proc/version //查看系统版本 [root@love ~]# uname -m //查看cpu架构 x86_64 [root@love ~]# uname -r //查看内核版本 3.10.0-862.11.6.el7.x86_64 [root@love ~]# uname -a //查看所有 Linux love 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
usr:最大的目录,只有用到的目录或者文件都在这
/usr/sbin /usr/doclinux
tmp:共享文件夹,临时目录
lost+found:非正常关机时才会有,平时为空,保存意外掉电的内存中数据
注:Linux中,以.开头的文件为隐藏文件
Linux常用命令
- 目录操作命令
- ls, cd, pwd, mkdir, rmdir
- 文件操作命令
- touch, cp, mv, rm, find
- 文件内容操作命令
- cat, less, head, tail, grep
- 归档及压缩命令
- tar
Linux中获得命令帮助
help:用于内部命令查找,如 cd, kill….共56条命令
# help cd
–help:适用于大多数外部命令,如 ls
ls --help
使用man手册进行命令查看(man:命令阅读手册)
[root@love]# man 命令字 上下键滚动文本 Page down & Page Up上下翻页 空格翻页 /查找内容
info 也可进行命令帮助查找(使用与man接近)
pinfo 命令名称 ——以浏览器形式查看详细的GUN信息
/usr/share/doc #所有已安装软件的说明文件
# firefox file:///usr/share/doc
Linux命令详解
目录操作
cd命令:切换工作目录
# cd [目录位置] 绝对路径: cd /home/student 相对路径: cd . //当前路径 cd .. //返回上级目录 cd - //回到上一次工作所在目录 cd ../../ //回到上一级的上一级目录 cd [~] //返回家目录 cd ~/Document
pwd:查看当前所在的工作目录(告诉你自己在哪)
ls:列出当前目录下的文件或目录
- 格式:# ls [选项] [目录或文件名]
- 选项:
- -l 以长格式显示
- -a 显示所有文件目录信息,包括隐藏文件
- -d 显示目录本身的属性
- -h 显示详细信息,变换了统计单位
- –color 以颜色区分不同类型的文件
- 注: ll == ls -l
mkdir:创建一个新目录
格式:# mkdir [选项-p] [路径] 目录名 mkdir -p: 递归创建多级目录 [root@love ~]# mkdir /test/adir/bdir/cdir/ddir/edir -p
rmdir: 删除一个空目录
rmdir -p a/b/c/ //递归删除一个目录
文件操作命令
touch:创建一个空文件,更新文件时间标记
格式:# touch filename
注意:在Linux中,不以后缀名区分文件
echo:打印某个东西,说什么就是什么
[root@love]# echo "hello world" hello world # 重定向写 echo "hello world" > a.txt
实验:在A目录里面,创建一个a.txt文件,写入几句话,然后在当前目录下继续创建一个a.txt文件,文件的内容还在吗
cp: 复制文件或目录
格式:cp [选项] 源文件/源目录 目标文件/目标目录 [root@love]# pwd /root/bb eg. cp /root/aa/a.txt /root/bb/ cp ../aa/a.txt .
- 选项
- -r:递归复制整个目录树
- 选项
rm 删除文件或目录
格式: rm [选项] 文件或目录
选项
- -r 递归删除整个目录树
- -f 不进行确认,强制删除
- -rf 使用万分谨慎
从删库到跑路(心有多大,路就有多远)
rm -rf /
mv:移动文件或者目录
格式:mv [选项] 源文件/目录 目标文件/目录
若移动目标位置与源位置相同(当前下操作),则此操作相当于重命名(改名)
eg. mv text text-1
find:用于查找文件或者目录
格式: find [查找范围] [查找条件]
查找条件:
-name: 按文件名查找
# find /root -name *ks*
-type: 按文件类型查找
f 普通文件
d 目录
b 块设备文件
c 字符设备文件
-user: 按文件属主查找
# find / -user student* -type f -name text
size:按文件大小进行查找
# find /var/ -size +10k -type f //查找/var目录下大于10k的普通文件
实验:在/var目录下查找大于100k,小于110k的文件
a:逻辑与
o:逻辑或
!:逻辑非
# find / ! -name temp -type f # find / -name anaconda-ks.cfg -o -name initial-setup-ks.cfg
文件内容操作命令
cat:文件内容查看,显示出文件的全部内容
格式: cat filename
less(more):全屏方式分页显示文件内容,more与less用法一致,只多了一个百分比显示
格式:less/more filename
按回车键逐行滚动,按空格键向下翻页,按b键向上翻页,按q键退出,按/后输入内容进行查找
head(头部):显示文件头部若干行,默认10行
格式: head[选项] filename eg. head -n 5 filename //查看文件前5行
tail(尾部):显示文件尾部若干行,默认10行
格式: tail[选项] filename eg. tail -n 5 filename //查看文件后5行
注:-n后的 + - 代表意思不同
wc:统计文件内容的…,默认情况下统计结果为:行数 词数 字节数
格式:wc [选项] filename
选项:
-w 统计字数 一个字被定义为有空白、跳格、换行为分隔的字符串
-l 行数
-c 字节数
-m 字符数 不能与-c一起使用
-L 打印最长行的长度
man wc
man –help
man -version
eg. wc -lcwL initial-setup-ks.cfg
grep:在文件中查找并显示包含制定字符串的行
格式: grep [选项] 查找条件 目标文件 eg. grep 'boot' initial-setup-ks.cfg
选项:
-c:显示匹配行的数量
-i:查找时不区分大小写
-v:反转查找
[root@love ~]# grep 'boot' initial-setup-ks.cfg -c -v 58 [root@love ~]# grep 'boot' initial-setup-ks.cfg -c 7
查找条件设置:
1.查找条件用引号引起来
2.”^XXXX”表示以XXXX开头
4.”XXXX$”表示以XXXX结尾
5.”^#”表示匹配空行
[root@love ~]# grep -c '^$' initial-setup-ks.cfg 6 [root@love ~]# grep -cv '^$' initial-setup-ks.cfg 59 [root@love ~]# grep '^#' initial-setup-ks.cfg [root@love ~]# grep 'ation$' initial-setup-ks.cfg
归档及压缩命令
tar:压缩与解压缩 制作归档文件和释放归档文件,包括.gz和.bz2两种格式
格式: - 制作归档文件: tar [选项] [目录] 归档文件名 源文件或者目录 - 释放归档文件: tar [选项] 归档文件 [-c目标文件] eg. - 压缩: tar -czvf [存放路径] 归档文件名.tar.gz 源文件或者目录 tar -cjvf [存放路径] 归档文件名.tar.bz2 源文件或者目录 -c 压缩 -z压缩为.gz格式 -vf显示详细信息 - 解压缩 tar -xzvf [存放路径] 归档文件名.tar.gz [-c 解压目录] tar -xzvf [存放路径] 归档文件名.tar.bz2 [-c 解压目录] -x 解压 若不加"-c 路径"则解压到当前目录
别名
alias:别名:为使用频率较高的命令设置简短的调用名称
查看当前用户所有别名
- 格式:alias [别名]
设置别名
格式:alias 别名=”实际要执行的命令”
eg. alis htpc="vi /etc/httpd/config/httpd.config"
取消别名
- 格式:
- unalias aa
- unalias -a //取消所有别名
- 格式:
以上别名只在当前Bash环境中生效,若想永久生效,则:
- 1.将别名设置在~/.bashrc文件中
补充命令:
- ln –link 链接
- 链接有两种:
- 软链接 ln -s 源文件 目标文件
- 硬链接 ln 源文件 目标文件
- 硬链接相当于cp -p + 同步更新
- 链接有两种:
Shell 暂告一段落
重定向与管道符
重定向
作用:将命令的执行结果输出到制定的文件中,而不是直接显示在屏幕上
0:标准输入 键盘 stdin 仅读取
1:标准输出 终端 stdout 仅写入
2:标准错误 终端 stderr 仅写入
3+ filename 其他文件 读/写
在Linux中构建了一个带有编号标记的通道(文件描述符)的进程结构来管理打开文件 通过进程连接到文件,进行文件数据的操作
类型 | 操作符 | 用途 | 示例 |
---|---|---|---|
重定向标准输出 | [1]> | 将命令的执行结果输出到指定文件中,而不是显示在屏幕上,覆盖写 | history > history.txt \\ find / -user yuxiang >history.txt |
[1]>> | 标准输出,追加写 | ||
重定向标准错误 | 2> | 将标准错误信息保存到指定文件中,进行覆盖写 | find / -user yuxiang 2> errors.txt |
2>> | 将标准错误信息保存到指定文件中,进行追加写 | ||
重定向标准输出和标准错误 | &> or &>> | 将标准输出和标准错误输出全部保存到一个文件中 | find / -user yuxiang 2>> resault.txt |
*特殊 | > > or >> >> or >> > | 将输出和错误分别保存到文件中 | find / -user yuxiang > true.txt 2> false.txt \\ find / -user yuxiang > true.txt 2>> false.txt |
管道
即传送,操作符为 | ,就是将管道前面输出的结果作为后面语句的条件执行
语句1 | 语句2 ... eg. # ls -l /usr/bin/ | more # find / -name root | find -size +10k | grep "pings" 注:管道符无上限