Linux命令基础及shell基础

一世执手 提交于 2020-03-06 03:40:27

■Linux基本命令

进入当前目录下的文件夹

  cd 文件夹名

进入从根目录算起的文件夹

  cd /home/文件夹名

返回上一级

  cd ..

显示当前文件夹

  pwd

给文件夹赋予访问权限

  chmod 777 文件夹名

把windows文件转成unix文件(将windows的\r\n替换成\n)

  dos2unix 文件名

显示文件一览

  dir ll ls

清屏

  clear

创建文件夹

  mkdir

创建文件

  touch 文件名

复制文件

  cp 源文件名 新文件名

执行shell脚本

  bash xx.sh

■Shell

变量定义

  str=abcd

变量使用

  str1=$str

If判断(-d是判断文件夹是否存在 rm -rf是强制删除文件夹)

  if [ -d $folder ];
    then
    rm -rf $old_folder
  fi

For循环(循环5次,从1到5,每次的值保存在num中,touch 是创建文件)

  for  num in `seq 1 5`
  do
    touch  $old_folder/CSV_OLD_${num}.csv 
  done

文件读取

  #!/bin/bash
  for i in `cat name.txt`;
  do
    echo $i
  done

逐行读取放到变量数组里

  cat property.ini |while read line
  do
    array=($line)
  done

输出控制台

  echo 'hello world'

字符串拼接

  ${str1}"abcd"${str2}

使用指定的分割符来分割字符串

#!/bin/bash
string="hello,shell,haha"  
array=(${string//,/ })  
for var in ${array[@]}
do
   echo $var
done

#!/bin/bash
string="hello,shell,haha"
OLD_IFS="$IFS"
IFS=","
array=($string)
IFS="$OLD_IFS"
for var in ${array[@]}
do
   echo $var
done

把文件复制到另一个文件夹中并重命名

#!/bin/sh

#定义复制源文件夹和目标文件夹名字变量
old_folder=old_folder
new_folder=new_folder


#测试用文件做成,如果源文件夹不存在,新建文件夹
if [ -d $old_folder ];
  then
    rm -rf $old_folder
fi
mkdir $old_folder 

#新建5个测试文件,文件名是CSV_OLD_1~5
for  num in `seq 1 5`
do
  touch  $old_folder/CSV_OLD_${num}.csv 
done

#创建目标文件夹
if [ -d $new_folder ];
  then
    rm -rf $new_folder
fi

mkdir $new_folder

#读取property文件,内容是新旧文件名的对照关系
#这里把windows的文件转成unix风格文件,主要是处理回车换行符
dos2unix property.ini

#逐行读取property文件
cat property.ini |while read line
do
  array=($line);
  #拆分成新旧文件名
  old_fileName=${array[0]}
  new_fileName=${array[1]}

  echo "ファイルコピー中:"${new_folder}"/"${new_fileName}

  #把旧文件复制到新文件夹中,文件名字用property中读进来的名字
  cp ${old_folder}"/"${old_fileName}  ${new_folder}"/"${new_fileName}
done
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!