fin## 一些Linux 基本语句
1.路径
1. cd
cd www , 意思是 到www目录;
cd … , 意思是到上一级目录;
cd - ,意思是返回到上次的目录,类似windows返回 ;
cd /,意思是回到根目录。
2.输入命令行时的辅助操作
1.输入命令时,删除/还原语句
ctrl+u 把本行在光标前的全部删除(不包括光标上的字符)
Ctrl+d,删除光标后边的字符(就是光标覆盖的字符)
ctrl+k 把本行在光标后的全部删除
Ctrl+w 删除当前光标前的单词(不包括光标上的字符)
Alt+d 删除当前光标后的单词
Alt+Backspace 删除当前光标后的单词
Ctrl+y 恢复删除的文字
2.移动位置
Ctrl+左右键 单词间跳转
ctrl+a 把光标移动到本行的最前面
ctrl+e 把光标移动到本行的最后面
3.查看历史命令(不用一点一点翻了)
history
4.压缩/解压缩
1. zip/unzip->zip
1.压缩/解压缩(到指定文件夹)
- 将 test.txt 文件压缩为 test.zip ,当然也可以指定压缩包的目录,例如 /root/test.zip
zip test.zip test.txt
压缩当前的文件夹,-r 表示递归
zip -r ./xahot.zip ./*
压缩指定路径文件夹,
zip -r ./target.zip target_file/*
- 默认将文件解压到当前目录,如果要解压到指定目录,可以加上 -d 选项
unzip test.zip
unzip test.zip -d /root/
- 解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数
unzip -n test.zip
unzip -n -d /temp test.zip
- 解压到当前文件夹并改名
unzip example.zip && mv example examplefold
- 只看一下zip压缩包中包含哪些文件,不进行解压缩
unzip -l test.zip
- 查看显示的文件列表还包含压缩比率
unzip -v test.zip
- 检查zip文件是否损坏
unzip -t test.zip
- 将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件
unzip -o test.zip -d /tmp/
2.gzip/gunzip->gz
gzip test.txt
它会将文件压缩为文件 test.txt.gz,原来的文件则没有了,解压缩也一样
gunzip test.txt.gz
它会将文件解压缩为文件 test.txt,原来的文件则没有了,为了保留原有的文件,我们可以加上 -c 选项并利用 linux 的重定向
gzip -c test.txt > /root/test.gz
这样不但可以将原有的文件保留,而且可以将压缩包放到任何目录中,解压缩也一样
gunzip -c /root/test.gz > ./test.txt
5.复制
1.文件夹的整体复制(适用于数据/配置文件的复制,传输)
- 复制到指定目录
假设复制源目录 为 dir1 ,目标目录为dir2
- 如果dir2目录不存在
cp -r dir1 dir2
- 如果dir2目录已存在
cp -r dir1/. dir2
- 复制到当前目录
1 copy 一个目录下的所有文件以及递归文件到当前文件夹
cp -r dir1/* ./
2 只想复制文件,不想复制递归文件夹
cp dir1/* ./
- -rf 覆盖式 copy
cp -rf test/ ./
- 只复制指定格式,只复制以及目录下,没有子目录/test_fate/test_fate_v1_config/
cp test/*.wav ./
6.删除
1.删除文件夹
- 强制删除,没有提示,递归删除,子文件夹全部删掉
rm -rf dir1
"rm -f" 强行删除,忽略不存在的文件,不提示确认。(f为force的意思)
"rm -i" 进行交互式删除,即删除时会提示确认。(i为interactive的意思)
"rm -r" 将参数中列出的全部目录和子目录进行递归删除。(r为recursive的意思)
"rm -v" 详细显示删除操作进行的步骤。(v为verbose的意思)
- 删除所有.json文件,显示删除步骤
rm -rfv *.json
7.终端中创建文本
gedit readme.md
touch filename
touch常用命令
也可以直接
vim filename
8.查询
当前目录下查找,keyword为关键词
find -type f -print | grep keyword
或者
#这个点不能省
find . -name keyword
9.文件中查找关键字
过滤test.txt文件中hello内容
grep hello test.txt
统计test.txt中hello内容的行数,告诉你有多少行
grep -c hello test.txt
-c:统计符合字符串条件的行数
-v:显示不包括文本的所有信息
cat test.txt |grep hello
10.查找包含关键字文件
查找包含关键字文件名
命令形式:
grep -R --include="*.cpp" key dir
命令含义:
在dir目录下递归查找所有.cpp文件中的关键字key
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行的文本
[root@zcwyou ~]find / -type f -name "*.log" | xargs grep "ERROR"
或者
find . -name "*keyword*.log"
从当前目录开始查找所有扩展名为.c的文本文件,并找出包含”test”的行
[root@zcwyou ~]find . -name "*.c" | xargs grep "test"
很简洁的参考链接
参考链接
查找文件夹
1、全盘搜索,也可以指定目录搜索。find 搜索目录 -name 目标名字,
find / -name file 根目录
find . -name file 当前目录
10.echo
1.清空日志
echo ""> filename
11.看前几行,末尾几行
#查看/etc/profile的前10行内容,应该是:
head -n 10 /etc/profile
#查看/etc/profile的最后5行内容,应该是:
tail -n 5 /etc/profile
#如果想同时查看可以将前10行和后5行的显示信息通过输出重定向的方法保存到一个文档,这样查看文档即可一目了然。例如:将内容输出到/home/test文件中
head -n 10 /etc/profile >>/home/test
tail -n 5 /etc/profile>>/home/test
12.看文件大小
1.看行数
wc -l < file_name
2.看文件夹大小
du -sh folder
13.进程
#想要kill掉一个总的shell脚本中的全部子脚本
pkill -P $(pgrep -f main.sh)