3-1文件目录操作命令(cd pwd mkdir rmdir rm)
绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。
1.cd命令(change directory),切换目录
cd . ==>当前目录
cd .. ==>返回上一层目录
cd - ==>返回上一次访问目录
cd ~ ==>返回家目录
2.pwd命令(print working directory),显示当前所在目录
pwd
pwd -P ==>显示出确实的路径,而非使用连结 (link) 路径,加-P
3.mkdir命令(make directory),创建目录
mkdir /test1
mkdir -p /test1/test2/test3 ==>创建递归目录,必须带-p
4.rm命令(remove directory)删除命令
rmdir /test1 ==>删除空目录
rmdir -p /test1 ==>删除目录和子目录
3-2文件目录管理命令(ls scp cp mv rm)
1.ls(list)查看文件或目录
ls -a ==>列出全部文件,含隐藏文件
ls -l ==>列出文件名、属性、权限
ls -d ==>仅列出目录
ls -al ==>列出所有文件及属性、权限,含隐藏文件
ls -l /tmp/test1 /tmp/test2 ==>列出多个指定目录的文件
2.cp(copy)复制文件或目录
cp -r /etc /tmp ==>复制目录,加-r
cp ~/.bashrc /tmp/bashrc ==>复制文件,并更改名称
cp -a /var/log/wtmp wtmp2 ==>保留原有文件的属性和权限,加-a
cp source1 source2 source3 dir ==>复制多个文件或目录到dir
3.scp (secure copy)基于ssh登陆进行安全的远程文件拷贝
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
4.mv(move)移动文件或目录
mv file1 file2 ==>文件变更名称
mv file1 dir1 ==>文件移动到指定目录
mv dir1 dir2 ==>目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
mv -f dir1 dir2 ==>操作前无任何提示,强制执行,加-f
5.rm(remove)删除文件或目录
rm -rf ~/.bashrc ==>删除目录及子目录所有文件,加-r;无确认信息,强制执行,加-f
rm -i ~/.bashrc ==>删除前提示防止误删,加-i
3-3文件内容修改命令
4.VI命令模式下替换
:s/p1/p2/g ==>将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g ==>将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g ==>将文件中所有p1均用p2替换
5.VI命令模式下其它常用命令
set nu ==>显示行号
u ==>回退上一次操作
. ==>重复进行上一次操作
/xxx ==>查找某个关键字“xxx”
:x ==>直接跳转到第x行 连续按两次大写的“Z”键 ==>保存退出
连续按两次“Esc”键 ==>确保vi在命令模式下。
3-4文件内容查看命令
3-5文件大小查看命令
3-6文件压缩打包命令
3-7grep命令
RPM命令
1.模式与参数(root权限才可以执行rpm)
.安装模式:rpm–i
.查询模式:rpm–q
.验证模式:rpm–V或–verify
.删除模式:rpm–e
.安装参数:rpm <model> <option> --force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
2.使用示例
rpm -ivh ==>安装一个包
rpm -Uvh ==>升级一个包
rpm -e ==>移走一个包
rpm -qa ==>列出所有被安装的rpm package
脚本中有DOS字符^M
定位问题:file查看,cat -v 查看
解决问题:dos2unix
字符串截取
str="abcdef" echo ${str:} # 从第二个位置开始提取字符串, bcdef
echo ${str::} # 从第二个位置开始提取3个字符, bcd
echo ${str:(-):} # 从倒数第二个位置向左提取字符串, abcde
echo ${str:(-):} # 从倒数第二个位置向左提取6个字符, cde
shell include 不止可以包含函数,也可以包含全局变量。
. /home/macg/testshell/testlib
if [ $SYSTEM = "Linux" ] ; then # 如果是linux话输出linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi # 判断结束,以fi结尾
参考文档: