此blog为个人学习笔记blog,如有错误希望各位大佬指出。
-
ls 查看当前目录下所有文件
ls -a 同时显示当前目录下隐藏文件和开放文件
ls -l或ll 显示当前目录下各文件的详细信息 -
cd 访问文件
cd … 返回上一级目录
cd …/… 将当前目录向上级移动两级
cd - 返回最近访问目录 -
pwd 显示当前工作目录的绝对路径
-
mkdir 创建新文件夹
mkdir -p 在某个路径下创建目录 -
rm 删除指定文件
rm -r 递归地删除指定目录及其下属各级目录及文件,-后加个f,删除时不提示且忽略不存在的文件
rm -i 删除前提示 -
cp 复制文件到某个路径
cp -d 复制时保留文件目录
cp -i 覆盖文件前提示
cp -r 递归处理 -
mv 移动文件或者重命名文件
mv -i 覆盖时提示 -
cat 查看目标文件的内容(一次性显示全部内容)
-
more 查看目标文件内容
space 下翻页
b 上翻页
enter 下翻页
q 离开more
:f 显示文件名和行数
/字串 在当前文件中搜索字串 -
less 查看目标文件内容
space 下翻页
page up 上翻页
page down 下翻页
/字串 向下搜索字串
?字串 向上搜索字串 -
head 显示文件开头多少行(默认10行)
head -行数 从头显示多少行 -
tail 显示文件末尾多少行(用法同上)
tail -f 文件不断显示 -
date 显示时间日期
-
find 在文件树中查找文件
-
grep 将文件中搜索字符串,并打印出来
grep -i 大小写视为相同
grep -n 顺便输出行号
grep -v 输出非搜索字符串的行 -
tar 解压或压缩文件
-c 建立一个压缩文件
-x 解开一个压缩文件
-t 查看tarfile里面文件
-z 是否同时具有gzip属性
-j 是否同时具有bzip属性
-v 压缩过程中显示文件
-f 使用档名,f之后立即接文件名,不要再加参数 -
bc 进行浮点运算
echo “.321*2”| bc
2.642 -
echo 标准输出指令(用法如上)
-
\ 跳脱字符
-
| 上个指令的标准输出作为下个指令的标准输入(如17)
-
输出输入符号> >> <
cmd > file cmd命令的输出,输入到file中,直接覆盖file中原有内容
cmd >> file cmd命令的输出,输入到file中,追加到file中的内容后
cmd < file cmd命令从file中读入 -
for 循环
for i in {2…9}; do 命令 命令作用的对象; done
{a…z}
{1…100}
{A…Z} -
sed 不用打开文本,直接对立面的内容进行修改,前提是要是的内容的行号
sed ‘3s/0.01/0.02/g’ INCAR (将第三行的0.01换为0.02,g代表行内全部替换,
INCAR是要执行的对象)这样做并不会真正改变INCAR立面的值,
如果要将INCAR文件中的值真正替换,需要用以下步骤。
sed ‘3s/0.01/0.02/g’ INCAR > INCAR_1
cat INCAR_1 >INCAR
rm INCAR_1
sed -i 直接再源文件上改值(使用是要慎重)
sed -i ‘2d’ [文件名] 删除[文件名]中的第二行
sed -i ‘2,3d’ [文件名] 删除[文件名]中的第二、三行 -
for+sed的应用
for i in {1..9}; do cp INCAR INCAR_$i; sed -i "3s/0.02/0.0$i/g" INCAR_$i; done
for i in $(seq 8 2 16);
i等于从8开始,每次循环加 2,直到16时为止。
seq 8 2 1
等价于$(seq 8 2 16)
sed -i "3,5s/8/$i/g"
3,5s表示第三行到第五行
- Ctrl + c 取消正在执行的命令
- shell脚本正则表达式参考链接
- cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出
cut -c 以字符为单位进行分割
cut -b 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志 - vim 中
:set nu 显示文本行数
:set nonu 取消显示行数
:10,17s/$/F F F/g 在10行到17行的末尾追加F F F
Ctrl+v+上下左右 框选文本内容
dd 删除整行
d 删除 - split -d -行数 [文件名] [分完之后的文件名] 以多少行为基准分割,-d代表分完之后文件名的数字后缀