shell:命令行解释器,他能使得用户能够与操作系统进行交互。完成用户与内核之间的交互。
内核:是操作系统的最底层,提供了系统的核心功能并允许进程以一种有序的方式访问硬件,用于控制进程、输入输出设备、文件系统操作、管理内存。
Linux shell命令:
1、系统管理命令:进程
ps 显示当前系统中由该用户运行的进程列表
ps命令的常见列表
ps -ef 查看进程及其PID,系统时间,命令详细目录,执行者等.
ps aux除可显示-ef所有内容外,还可显示CUP,进程状态.
top:动态显示系统中运行的程序.
pstree 以树形格式显示进程关系
2、磁盘相关命令
fdisk 查看硬盘分区情况及对磁盘进行分区管理
fdisk -l 列出文件系统的分区情况 (支持多文件系统)
注意:fdisk 必须使用root权限
free:查看当前系统内存的使用情况
df 查看文件系统的磁盘空间占用情况
du 统计目录(或文件)所占磁盘空间的大小.
3、文件,目录相关的命令
cd ls mkdir cat cp mv rm pwd
chmod chown chgrp grep find ln
4、压缩打包相关命令
gzip bzip2 gzip -d bzip2 -d tar -cvzf **** tar -xvzf*****-C ~
shell编程:一堆shell命令的集合。
1、创建一个.sh文件 touch demo.sh
2、给.sh文件添加可执行权限 chmod 777 demo.sh
3、运行 ./demo.sh
案例:
1.判断用户的主目录下是否有file-dir或者dir-dir目录
如果这两个目录存在,询问用户是否删除这两个目录,
如果用户输入的是Y,将这两个目录删除,重新创建这两个目录
如果用户输入的是N,退出程序。
如果上述的两个目录不存在,创建这两个目录。
2.请用户输入一个路径,将这个路径下的文件拷贝到file-dir
将这个路径下的目录拷贝到dir-dir.
3统计拷贝的文件和目录的个数。
#!/bin/bash
#循环遍历你要查找的文件夹
for dir in $HOME/file-dir $HOME/dir-dir
do
#判断目录是否存在
if [ -d $dir ]
then
#目录存在
read -p "是否要删除该目录" OP
case $OP in
Y|y|yes)
rm -rf $dir
mkdir -p $dir
;;
N|n|no)
;;
esac
else
#目录不存在
mkdir -p $dir
fi
done
filecount=0 #记录文件的个数
dircount=0 #记录文件夹的个数
read -p "请输入路径
" pathname #注意输入的为绝对路径 /home/linux/...
flist=`ls $pathname` #将ls的结果给flist
for file in $flist
do
if [ -d $pathname/$file ]
then
#表示是文件夹
cp -r $pathname/$file $HOME/dir-dir
dircount=`expr $dircount + 1`
elif [ -f $pathname/$file ]
then
#表示是文件
cp $pathname/$file $HOME/file-dir
filecount=`expr $filecount + 1`
fi
done
echo "dircount=$dircount"
echo "filecount=$filecount"