linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
Linux Shell 截取字符串
shell 判断文件夹或文件是否存在
Mac nginx目录
#配置文件
/usr/local/etc/nginx
#默认站点地址1.15.7是安装的nginx版本号
/usr/local/Cellar/nginx/1.15.7/html/
#启动ngxin
#查看nginx的配置文件是否
ngxin -t
#重新加载配置
nginx -s reload
git 如何同步本地、远程的分支和tag信息
git 如何同步本地tag与远程tag
git tag -l | xargs git tag -d #删除所有本地分支
git fetch origin --prune #从远程拉取所有信息
查找并删除程序:
ps -ef|grep nginx
kill -int xxxx
将这个命令放入自定义操作
Mac下SourceTree自定义操作导出文件
查找文件:
#在/usr/文件夹下查找名字是以.png结尾的文件
find /usr/ -name "*.png"
查找文件安装路径
#查找vapor的安装路径
which vapor
Mac 删除git文件夹,删除svn文件夹
cd到该文件夹
#删除文件夹下的所有 .svn 文件
find . -name ".svn" | xargs rm -Rf
#删除文件夹下的所有 .git 文件
find . -name ".git" | xargs rm -Rf
shell 拆分字符串变为数组
str="192.168.31.65"
array=(${str//\./ })
for i in "${!array[@]}"; do
echo "$i=>${array[i]}"
done
判断文件夹是否存在
# 判断/User/admin/code/test这个文件夹是否存在,不存在就创建文件夹
if [ ! -d /Users/admin/code/test ];then
mkdir -p /Users/admin/code/test
else
echo dir exist
fi
zip
/unzip
压缩与解压命令
zip -q -r -e -m -o [yourName].zip someThing
#-q 表示不显示压缩进度状态
#-r 表示子目录子文件全部压缩为zip //这部比较重要,不然的话只有something这个文件夹被压缩,里面的没有被压缩进去
#-e 表示你的压缩文件需要加密,终端会提示你输入密码的
#还有种加密方法,这种是直接在命令行里做的,比如
zip -r -P Password01! modudu.zip SomeDir,
#就直接用Password01!来加密modudu.zip了。
#-m 表示压缩完删除原文件
#-o 表示设置所有被压缩文件的最后修改时间为当前压缩时间
zip -q -r -o [yourName].zip someThing
#当跨目录的时候是这么操作的
zip -q -r -e -m -o '\user\someone\someDir\someFile.zip' '\users\someDir'
#解压文件
#将压缩文件text.zip在当前目录下解压缩。
unzip text.zip
#将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
unzip -n text.zip -d /tmp
#查看压缩文件目录,但不解压。
unzip -v text.zip
本文主要是讲 linux 系统的命令操作。会尽量保持命令与 mac 兼容。因为两者的使用本来就差不多。
cd
进入某个目录
#cd 是英文 change directory 的缩写,更改目录的意思。
#例如,我们要进入我们的家目录,可以输入下面的命令:
cd ~
#再例如,我们要进入下载目录,就是这样的命令:
cd ~/Downloads/
#要输入这样的命令,是不是感觉有点长呢?其实大可不必,我们可以用 tab 键快#如果需要返回上级目录,则是使用
cd ..
#在 linux 系统中 . 代表当前目录,..代表上级目录。如果是上级的上级目录,就是 ../..。
ls
展示当前目录下的文件
#ls 是英文 list 的缩写
ls
#然后我们就可以看到这个目录的文件了。
#这里,我们只能看到文件或者文件夹的名字,如果我们想要看到更多的内容,就可以加上 -l 参数。
#这样,就会以一个列表的形式,把所有的内容全部输出出来。
ls -l
#如果你还想要看看隐藏的文件,可以输入
ls -a
#当然,聪明的你肯定想要了,这命令可以组合起来吗?当然可以,如下:
ls -la
#linux/mac 系统和 windows 系统有一个很大的区别,就是,隐藏文件。
#在 linux 其中中,只要一个文件或者文件夹的名字第一个字符是 . 就表示这是一个隐藏文件。
#而 windows 系统是用文件的属性来设置的。
#所以,使用 linux 系统,你如果想要给某个文件夹或者文件隐藏,右击属性什么的,是做不了什么的。
#只需要重命名文件,加个 . 就可以了。
mv
移动,重命名文件
在 linux 系统中,没有 重命名 这个概念。只有一个概念,叫移动文件。把 a 文件重命名为 b 文件这个操作,要理解为——把 a 文件移动到 b。
#mv 是英文 move 的缩写,如下命令就是把 a 文件重命名为 b。
mv a b
#当然,这本来就是移动文件,也就是剪切文件。我们可以这样操作,如下命令表示:把下载目录下的 love.txt 文件,移动到文档目录中
mv ~/Downloads/love.txt ~/Documents/
cp
复制文件和文件夹
复制文件也是一个很常见的操作。最简单的,把 a 文件复制为 b 文件,执行下面的命令
#cp 是英文 copy 的缩写
cp a b
#当然,和 mv 命令一样,也是可以跨目录复制的。
cp ~/Downloads/love.txt ~/Documents/
#如果你需要保留文件所有的权限属性之类的,可以加上参数 -a。
cp -a a b
#如果你复制的不是文件,而是文件夹,则要加上一个递归的参数 -r
cp -r a b
#当然,复制文件夹,并且要保留所有的权限属性,加上参数 -ra
cp -ra a b
#另外,如果你复制的文件夹里面有很多内容,你想看到实时进度的话,可以用 -v 参数
cp -rav a b
#如上命令,你就可以把 a 目录的所有内容原封不动的复制到 b 目录去,并且可以看到实时的复制过程。
rm
删除文件或文件夹
请注意, rm 命令进行的删除操作,是不会放到系统的回收站里面去的。而是直接删除,如果你希望通过软件把文件找回来的话,也是很困难的。所以,在输入 rm 命令的时候一定要头脑清晰哦!
#rm 是英文 remove 的缩写,我们想要删除某个文件,可以输入:
rm a
#命令进入删除。但是删除的时候,一般 linux 会给你提示,你需要输入 yes 同意,才能删除。但是 mac 不会给提示,直接就删除掉了。
当然,如果你不想看到这个提示,而是希望直接就删除掉,可以加上一个参数 -f,这样,就会直接删除掉,不会再要求你输入 yes 了。
rm -f a
#如果删除的是某个目录,直接用上面的命令是不行的。删除目录必须进行递归操作,所以需要加上参数 -r ,另外,你可能也不想确认,所以,命令就是:
rm -rf a
#最后,删除操作一定要谨慎。
touch
新建文件
我们可以新建一个任意的文件。命令是 touch 至于为什么是这个命令,我不太清楚,我联系不上 触摸 和 新建 之间的关系。
但是这个单词是一个非常简单的单词,我们可以轻松的记住。
#创建一个文件
touch a
#创建多个文件,如下命令就可以创建 a b c d 这四个文件了。
touch a b c d
#我们可以创建任意文件。只需要加上不同的后缀就可以了。
touch a.txt b.jpg c.doc d.pdf
#创建并进入编辑
vim a
mkdir
新建文件夹
新建文件夹的命令是 mkdir 应该能够看出来,这个命令是英文 make directory 的缩写。
#新建一个文件夹
mkdir a
#新建多个文件夹
mkdir a b c d
#新建多个层级的目录,这就需要加上参数 -p 了。
mkdir -p res/style/scss
less
查看文本文件
如果我们需要简单的查看一个文件的内容,可以使用 less 命令。这个单词是少的意思。同样,多的英文 more 也可以用来查看文件。
不过一般情况下,我们使用 less 命令。如下:
#如果文件比较长,可以使用 ctrl + f 往下翻页,也可以使用 ctrl+b 向上翻页。
less index.html
pwd
看看自己在哪个目录下
如果你的目录层级比较多,你导出溜达着,忘记你在哪里了,怎么办?或者,你需要把你当前的目录路径给复制出来,怎么办?
没关系,我们可以使用 pwd 命令,迅速输出你的当前目录路径。
#查看当前所在的文件目录,这里会返回完整的路径,而不是 ~/xxx 这样的缩写路径。
pwd
man 查看某个命令的详情
如果你看到一个命令,不清楚这是干啥的,就可以用 man 命令来看看这个命令的详细介绍:
#就可以看 cp 命令的详情
man cp
不过,这个命令输出的内容是英文的。如果你英文不行,可以到一个中文网站来看。网址是:http://man.linuxde.net/
需要注意的是,中文内容不一定是准确的,或者是最新的。
小结
好,掌握以上日常使用的命令,基本上你就可以愉快的使用命令行了。需要更多的内容,基本上可以使用搜索引擎来解决,你只需要提出正确的问题,基本上都能得到解答的。
网友评论