shell命令学习
2019-07-16 本文已影响0人
小眼睛的露鹿酱
linux命令
1. 线上帮助
man : man command 可以进入man page 如果想退出 直接敲“q”, 如果想检索关键字, 可以在最下面输入“/word”向下查询。 “?word”是向上查询, 点击n来跳到下一个
info: 是类似于man的网页式显示
help: 只能用于内部命令,不能用于外部命令
2. 目录操作
ls: ls是list的意思 ls -al 就是显示所有文件名以及相关属性。更改属性: chgrp chown chmod(改变文件权限)
chmod: chmod xyz filename。 xyz(ower, group, others)分别是是rwx(421)的和 有三个
假设 chmod 777 filename。那就是每个人不管是不是ower 是不是一个group都可以读写执行
tree: 跟目录。cd /。
pwd: 显示当前目录 print working directory
mkdir:新建文件夹
rmdir: 删除一个空的目录, 如果不明使用 rm -r filename
cd: 切换目录 注意搭配 cd .. (返回上一层) cd ~ (回到自己的主文件) cd / (回到根目录) cd -(回到刚才的目录) cd ../mail (相对路径去某个地方)
3. 文件操作
touch: 修改文件时间或创建新文件
cp: 除了复制,还能创建快捷方式, 对比两文件的新旧来赋予更新, 复制整个目录等
cp [option] 源文件 目标文件
常用的有 -i(若目标文件存在, 覆盖的时候会提示询问再进行; -r)
cp -l 创建一个硬连接。
cp -s 是软连接 就是创建快捷方式
cp -u 是比较目标文件与原文件有差异时, 进行复制, 备份时用这个比较好
mv: 移动文件, 重名命,
mv [command] 原文件 目标文件
-f: 强制 如果目标文件存在, 直接覆盖
-i: 若存在, 会询问覆盖
-u: 如果已经存在, 如果source是最新的, 那直接更新
当目标文件是一个新文件的时候, 就会重命名; rename其实也会用于重命名
rename
rm: 移除文件; rm [command] file
-f: force 忽略不存在的文件 不会有提示信息
-i: 删除时会进行询问; 默认使用的
-r: 递归删除, 目录删除; 若不想删除, 可以安Ctrl+C来结束删除
若果确认 不想提示删除, 使用 \rm -r file
in:
find:
4. 文件查看处理
cat: 由第一行显示内容
cat -n file 显示行号
tac: 倒写文件
more: more file 一页一页显示; q 直接离开
/word 搜索
:f 立即显示文件名以及目前显示的行数
less: 一页一页翻动, 可以上下翻动;
/word: 检索 搭配n/N使用next one
?word: 向上检索。搭配n/N 使用
head: 取出前面几行。head -n number。
head -n +100 file。 从100行开始列出n行信息
head -n 20 file 从最后20行开始列出
tail: 取出后面几行 tail -n number
cut: cut string -d ':' -f 4 将string中以:分割 取第4列数据
paste:
sort: sort [参数] file
-f 忽略大小写排序
-b 拂掠空格部分
-M 以月份的名字进行排序
-n 以纯数字进行排序
-r 反响排序
-u uniq 相同的数据 仅出现一行
-t 使用分隔符 默认是Tab
-k 以哪个区间来排序
cat file | sort -t ':' -k 3 文件file使用: 进行分割 第三列作为排序的列
uniq: 排序完成 去掉重复的数据
uniq [-ic]
-i: 或略大小写
-c: 进行计数
wc: wc [-lwm]。 默认就是全输出
-l: 行数
-w: 多少字
-m: 多少字符
cat file | wc
icon:
dos2unix
file: Linux file命令用于辨识文件类型;
-v 显示版本信息;
-z: 尝试去解读压缩文件的内容
diff: 用于比较文件差异
-b: 不检查空白行
-i: 不检查大小写
-w: 忽略空格
tree: 以树状图列出目录内容
chattr: 改变文件属性
lsattr: 显示文件属性
rev:
vimdiff
5. 文件打包压缩
gzip: 应用最广的压缩命令, 压缩后的文件名为*.gz; 压缩完, 原文件就会被替换, 不存在了
gzip [command] filename
-v: 显示压缩比例
-t: 查看压缩后有无错误
-c: 将压缩数据输出到屏幕上,可通过数据重定向来处理, 配合>使用
tar:
》压缩 tar -jcv -f filename.tar.bz2 filename(要被压缩的文件或目录)
》查询 tar -jtv -f filename.tar.bz2
〉解压缩 tar -jxv -f filename.tar.bz2 -C filername(想要解压缩的目录)
unzip
7. 搜索命令
find: Linux find命令用来在指定目录下查找文件
find . -name "*.c" 查看当前目录以及子目录中以.c结尾的文件
find . -type f 查看当前目录以及子目录中file类型的文件
find . -ctime -20 寻找近20天更新的文件
find / -type f -size 0 -exec ls -l {} \ 寻找file类型的文件 大小为0, 并将完整路径列出
which: which指令会在环境变量$PATH设置的目录里查找符合条件的文件
whereis: 指令只能用于查找二进制文件、源代码文件和man手册页
locate: 只需要输入 locate your_file_name 即可查找指定文件; ocate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库
19. 管道 pip |
管道仅仅会处理stanard output, 并不会处理有error 的输出
管道命令必须能够接受来自前一个命令的数据成为standard input继续处理才行 ls cp mv等不会接受stdin的数据
20. 三剑客
grep: 分析一行信息, 如果当中有我们需要的, 就把它拿出来
grep [-acinv] [--color=auto] ‘查找字符串’ filename
-a: 将binary文件以text文件的方式查找数据
-c: 计算找到‘目标字符串’ 的次数
-i: 忽略大小写
-n: 顺便输出行号
-v: 反向选择
--color=auto 高亮
sed: 管道命令, 可以分析stadard input; sed可以将数据进行替换 删除新增 选取特定等的功能.
sed [-nefr] [动作]
-n: 只有经过sed特殊处理的才会被列出来;默认是来自stdin的所有数据都被列出来
-e: 直接在命令模式上进行sed的动作编辑
-f: 直接将sed的动作写在一个文件中.
-r: sed的动作支持的是扩展型的正则表达式
-i: 直接修改读取的文件内容,而不是由屏幕输出
***动作***: [n1][,n2] function
n1 n2 为第几行到第几行; function 包含以下参数
a: 新增
c: 替换
d:删除
i: 插入
p:打印
s:替换
举例: n1 filename | sed '2a drink tea!'
n1 finename | sed '2,5d'
awk: 好用的数据处理工具
awk ‘条件类型1 动作1’ 条件类型2 动作2 ....‘ filename
awk ’{print $1 "\t" $2}‘
awk 还有三个内置变量: NF(列数)。NR(第几行)。FS(目前分隔符)
- 查看电脑上有哪些shell
cat /etc/shells
-
使用type能查看出某个命令到底属于shell内部的还是外部的
-
命令行的执行
如果命令太长可以考虑使用反斜杠/来跳到下一行继续, 注意反斜杠/后面不能有空格 否则表示转义空格 -
显示变量内容echo
echo $path
图片.png
-
查看哪些环境变量用env
-
查看所有环境变量的内容