文本内容在命令行的操作
文本过滤:grep
文本三剑客: gerp sed awk
grep 选项 关键的字符串 文件
grep root /etc/passwd 查找root(交集查找)
^ 以……为开头
$ 以……为结尾
Grep ^root /etc/passwd 找 以root为开头
Grep nologin$ /etc/passwd 找以nologin为结尾
若没找到,正常输出
Grep ^$ /etc/passwd 找空行
Grep -v ^$ /etc/passwd 找非空行 -v表示取反
Grep [0-9] /test/a 匹配带数字的行
Grep [^0-9] /test/a 匹配除了 带数字的行 反选
Grep ^[^0-9] /test/a 首 非 匹配不是数字开头的行
Grep ^[^$] /test/passwd 非空行
Grep [a-z] /test/a 匹配和字母相关的
Ls | grep fire 找文本里的file
切割显示 cut
Cut -d “” -f 1 /test/file 以空格切显示第一列
指定分隔符 查看第几列
没有分割符原样输出
-c 按照字符切
内容排序 sort
Sort /test/ file 按照单个字符排序,小的在,大的在后,数字在前,字母在后
按行排序
Sort -n /test/file 按照数字排序
sort -u file 去重
Sort -r file 逆序
去重命令 uniq
Uniq file 只去重,不排序,连续相同的行才会去重,不连续的行不去重
Uniq 选项
替换 tr
Tr 集合1 集合2 用2换1,2的范围最好 >=1
Cat c | tr test 123 单个字符对应替换
cat c | tr 'a-z' 'A-Z' 小写改为大写
统计 wc
Wc /test/fire 统计有多少行,单词,字符数
-w 多少单词 (不会检查对错,连载一块就是一个单词)
对于文档,不是文本内容
复制 cp 源文件 新文件
Cp a ~/a 把a复制到~/a
Cp a /root/aa
源文件 路径 (注意相对,绝对路径)新名称
移动 mv 源文件 新文件
Mv /root/aa . aa移到。下 . 当下是test目录
Mv /test/ aa ~/bb a文件移动到家目录下改名bb
Mv /test/ a ./aaa 重命名
同一个目录里不能有同名的文件
查找文件的路径
1,whereis
whereis + 参数, Whereis ls 或者 cd 或者 cat 用来找命名的
cat命令的执行文件: /usr/bin/cat 可以知道命令装在哪里;命令的详细信息
2,which
Which + 参数 , which ls 查看对应的命令的执行文件在哪里
/usr/bin/ls
alias 别名
执行文件类似于源文件
/usr/bin/cat c == cat c 查看cat里面的c文件
执行文件 + 目录 (没颜色) 命令 + 目录 (有颜色)
3,locate(不好用)
Locate + 命令
4,find命令
1>按照名字查找
Find /test -name aaa 在/test下面找aaa文件
. -name aaa
-iname 表示不区分名字的大小写
2>模糊匹配,模糊搜索
Find . -name * 或者 ?
? 表示一个字符,内容可以数字,字母,符号
* 表示零个或多个字符
通配符,可以代替字符,数字,字母
特殊符号带引号
Find . -name a* 找和a有关的文件
Find . -name "motd* " 找 和motd有关的文件
root的家目录下找.cfg 的文件 Find /root -name ".cfg"
.cfg一般情况下为配置文件
Find / -type f(f表示普通文件,在find里表示)
Find / -type d 找目录
在/etc下找名字中包含group的普通文件 Find /etc -name "*group*" -type f
3,按照大小查找
Find . -size +2k 在当前的目录里找大于2k的目录文件
+ 表示大于
- 表示小于
4,按照时间
Find . -mtime +1 两天前
-5:代表 5 天内修改的文件。
5:代表前 5~6 天那一天修改的文件。
+5:代表 6 天前修改的文件。
stat:查看文件详细信息
5,
-exec {}\; 类似于管道符的效果,exec命令执行出来的结果放到{}中
找名称是aa的文件复制到家目录下
Find . -name aaa -exec cp {} ~/a5 \;
在etc下面找group的普通文件,把找到的结果复制到test目录里
Find /etc -name "*group*" -type f -exec cp {} /test \;
前后都加*
打包压缩相关命令
.zip .gz .bz2 .xz 不会单独使用 与tar一起使用
重点 zip tar
zip命令
Zip 文件名称
Zip file.zip file 把file压缩到file.zip
压缩文件的名称 要压缩的文件
Unzip file.zip 解压缩
zip压缩后原文件还在
-m : 压缩文件1 文件2 把2压入1 zip -m test1.zip test2.txt
-r :和目录一起压缩 zip -r dir1.zip dir1/
-d :删除压缩文件中的文件 zip -d test1.zip test2.txt
解压 unzip 压缩文件名称
解压unzip
-v : 查看压缩文件目录,但是不解压 unzip -v test.zip
-d :将1 在指定目录2下解压缩 unzip test.zip -d dir1
Gzip aaa 把aaa压缩为aaa.gz,自动生成后缀.gz且删除原文件
-r 带目录一起压缩 gzip -r dir/
-c 压缩后保留原文件 gzip -c test2.txt > test2.txt.gz
解压 gunzip aaa.gz
查看压缩过得文件内容 : xzcat,xzless,xzcat(看笔记)
tar命令
Tar 选项
必选:
-f 用于指定打包文件名
三选一:
-c 创建.tar格式的包文件
-x 释放.tar格式的包文件
-t 查看包中的文件列表
辅助选项:
进行打包压缩时,源文件还在
Tar -cvf bcd.tar b c d 创建,显示详细信息
主命令 包 文件
Tar -tf bcd.tar 查看包里面有什么
Tar -xvf bcd.tar 释放包里的东西 释放后包里文件没了 包在
Tar -xvf bcd.tar -C 目标路径 提取包文件到指定路径
打包加压缩 bcd
Tar -czf bcd.tar.gz b c d (加-要注意顺序,-可以取掉)
打包时排除某个文件
tar cf 文件名.tar --exclude=路径/文件 路径
注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径
传输文件 xftp
Linux 拖到 windows
Windows 拖到 linux
命令行里操作:(笔记)
Sftp 用户@路径 sftp root@223.6.6.6
下载get
上传put
SHELL命令解释器(笔记)
shell:命令解释器,负责解析用户输入的命令。
命令分两类:
内置命令 (shell内置),shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是
大部分都差不多
外置命令,在文件系统的某个目录下,有个与命令名称相同的文件
type 命令查看命令是file(外置)、alias(别名,给二进制文档)还是builtin (内置)
type -a 列出当前命令可以如何执行
type -t 仅列出命令按照哪种方式执行
环境变量叫做PATH
执行命令时,可执行文件路径存储在环境变量path中
查看path echo $PATH
1、普通变量
普通变量也可称为局部变量,只能在创建它们的Shell函数或Shell脚本中使用,普通变量一般由开发者在 开发脚本程序时创建。
Test.sh 是一个脚本
Vim test
:wq 保存退出
2、环境变量
环境变量也可称为全局变量,可以在命令行中使用,环境变 量又可分为自定义环境变量和 bash 内置的环境变量。
(1)bash内置的环境变量:用于定义 Shell 的运行环境,保证 Shell 命令的正确执行,Shell 通过环境
变量来确定登录用户名、命令路径、终端类型、登录目录等
(2)自定义环境变量:(永久保存)
对当前用户生效 可在当用户用户家目录下的 .bash_profile 或 .bashrc文件中,
对所有都生效 全局配置 /etc/bashrc 或 /etc/profile 文件中定义,
环境变量名字用大写表示 echo $PATH
定义变量:
变量命名的规则:只能使用数字、字母和下划线,且不能用数字开头
变量名和变量值用“=”连接
等号两边不能有空格符
vim中
变量的赋值,一般有五种写法:
name=value 变量名=值
name1='value' 变量名='值' 弱引用
name_2="value" 变量名="值" 强引用
_name_3=`cmd` 变量名=`命令`
_na_me_4=$(cmd) 变量名=$(命令)
Linux中的特殊符号
命令历史
家目录下面 ~/ bash/history 不是实时更新
History 命令
!+ 数字 执行对应命令 !375
!! 或者 上键 执行上一条命令
命令中的快捷键
命令别名:命令的快捷方式
alias 别名=’原命令 [选项]…… [参数]……
Alias 别名=
查看正在使用的别名有哪些
命令行中定义
Alias cdt='cd /test'
使用结果
命令行中root定义的,登录别的用户,别名不能用
虚拟机重启后,别名消失,无效
把别名写到配置文件中永久生效
临时有效在命令行写,永久有效在配置文件下写
家目录下面的.bashrc
~/.bashrc
root用户一直能使用别名,其它用户不能使用别名
对谁生效,在谁的家目录下 用root用户配置
bash重新加载一下或者重登陆,重启
Vim .bashrc
:wq 保存退出
bash重新加载 或者重启
在/Etc/bashrc操作 所有用户都能使用
Vim /etc/bashrc
找不到的话,文档最后一行,alias data='date -R'(引号里面写命令,著名零参数)
自己定义的名字和原来的名字不能相同
:wq 保存退出
Bash
使用命令 data