shell编程学习总结

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"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值