Linux是严格区分大小写的,如果没有特别的说明,保持小写
Linux所有的内容都是以文件形式保存,不靠扩展名区分文件类型
命令之间都是有空格的,不要向英文字母一样,全部挤在一起
系统命令
- 登录基本信息:当前登录用户名、主机名、当前目录
- (# 管理员用户提示符,$ 普通用户提示符)
- who:查看登入的用户
- whoami:确认自己的身份
- su + 用户名:切换用户
- history :查看当前用户运行命令的历史
- ipconfig :查看IP地址
- ping + 网址 :检查网络是否通畅(ping www.baidu.com)
目录操作命令
- pwd:显示当前路径 (print working director
-
cd :切换目录 (change directory)
1, cd .\ 当前目录
2,cd .. 切换到上级目录
3,cd \ 切换到根目录
4,cd ~ (或只有 cd) 切换到当前用户主目录(home下以用户名命名的文件夹)
5,cd \user\ -> cd bin 和 cd \user\ -> cd \bin 的区别
(cd bin 是从user下查找 bin文件;cd \bin 是从根目录下查找bin文件) -
创建/删除目录
mkdir + 目录名 :创建目录 (make dirctory)
mkdir -p dir1/dir12/dir13 dir2/dir23 dir3 :一次创建多个带层级的目录
rmdir + 目录名: 删除空目录 (remove dictory)
rm -r + 目录名:删除带有文件的目录
rm -rf + 目录名/文件名:强制删除目录或文件
文件操作命令(重点)
touch:创建文件
touch [路径]file :创建一个文件名为file的文件,可以加后缀(路径必须存在)
touch dir1/file1 file2 file3 :一次创建多个文件vim [路径]文件名,再按 i 键进入编辑状态
esc键:退出编辑状态,再按shift+:,输入以下命令:
wq (保存退出);q (退出不保存);q! (强制退出,不保存);write filename (内容保存到新建文件中)
进入文件后一些边便捷方法:(按非编辑魔术下按shfit+:才能输入)
1,输入 /lemon:从光标开始处,向文件末尾搜索 lemon
2,输入 ?lemon:从光标开始处,向文件首搜索 lemon
3,输入 :set nu :显示每一行的行数
4,按大写的 G,光标定位到末尾;按小写的 g,定位到首行(非编辑模式下)ls :查看目录及文件
1,Is [选项] 路径,若没有路径则显示当前目录的内容
2,- a 显示所有文件,包括隐藏文件
3,- l 显示文件属性
4,ls -a -l ./Linux/test1 :查看test1目录下的所有文件并显示属性,包括隐藏文件cp :复制命令(copy)
1,基本用法:cp [选项] [路径]文件名/目录 目标地址
2,- R 拷贝目录和目录下所有的目录和文件
3,cp a.txt b.txt ,将a文件复制,且命名为b文件(目录名)
4,cp dir1/dir11/file1 dir2/file2:将file1复制到dir2下,命名为file2
5,cp -R dir1/dir11 dir2/dir22:将dir11目录及下面的文件复制到dir22目录下,目录名不变mv 移动命令
1,move 文件名或目录 目标目录
2,mv a.txt ../ 将a文件移动到上级目录(将文件移动到另一个目录没有重命名)
3,mv a.txt ../b.txt 将a文件移动到上级目录并改名为b文件(将文件移动到另一个目录并且重命名)
4,mv dir1/dir12 dir2/dir22:将目录dir12及下面的文件移动到目录dir22下rm 删除文件或目录
1,rm -f 强制删除文件
2,rm -r 删除目录
3,rm -rf 强制删除文件或目录 (慎用)-
find 查找文件
1,用法:find [路径] [选项] 查找内容
2,常用选项有:- find . -name '*.log' 在当前目录查找以 .log 结尾的文件
- find ./dir -name '* test *' 在当前目录的dir目录下查找文件名包含test的文件
- find / -name log 在根目录查找 log 命令的目录
grep 字符串 [路径]文件名1 文件名2 :在指定文件中查找字符(串)并打印该行
grep 'hello word' test1/file1 file2 file3 在file1 file2 file3文件中串查找hello word 并打印所在行
经常和管道符|一起使用,|grep 字符串cat 命令:显示文件内容
1,cat [路径]文件名:显示文本文件内容
2,cat -n ./Linux/test1/file1 : 查看file1文件内容,对所有行(包括空白行)进行编号,从1开始
3, cat -b ./Linux/test1/file1 : 查看file1文件内容,对所有非空白行进行编号
4,cat -s ./Linux/test1/file1:查看file1文件内容,有多行空行的只显示一行空行
5,cat -e ./Linux/test1/file1 : 查看file1文件内容,并且在每行的结尾处附加$符号,包括空白行
6,cat -n file>file1,对file文件中每一行加上行号后然后写入到file1中,会覆盖原来的内容,文件不存在则创建它。
7,cat -n file>>file2,对file1文件中每一行加上行号后然后追加到file2中去,不会覆盖原来的内容,文件不存在则创建它。head :查看前几行(不带参数默认获取前10行)
heah file1 :查看file1文件的前10行
head -n 20 file1:查看file1的前20行tail :查看后几行(不带参数默认获取倒数10行)
tail file1 :查看file文件的倒数10行内容
tail -n 20 file1:查看file文件的倒数20行内容
tail -f error.log 不断刷新,看到最新内容,一般用于查看日志
tail -500f error.log :查看最新500条数据sed -n "开始行,结束行p" [路径]文件名:查看开始行到结束行的内容
sed -n 5p file1 :输出第5行
sed -n '5p;8p;10,20p' file1 :输出第5行,第8行,第10到20行的内容
sed -n '15,20p' file1: 输出file1文件的15-20行的内容(等同于 head -n 20 file4 |tail -n 5 )more/less:
cat error.log|grep 'https'|more : 分页查看更多内容sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" 'grep 查找字段 -rl 路径`文件名
(实操失败,会进入quote>。grep前后的点是esc下面那个键上的点)vim状态下文件内容替换(只能操作一个文件)
先vim file1,再shift+:,输入以下命令
注释:%s表示替换文件全部,s表示替换光标所在行,g表示替换所有,不写g表示替换第一个,分隔符/ 也可以使用#,此时/不会当作分隔符,以下是部分示例
1,%s/hello word/hello baby/g:把文件中所有的hello word替换为hello baby
2,%s#/usr/bin#/bin#g :把文件中所有的路径/usr/bin替换为/bin
3,s/hello word/hello baby:把当前行的第一个hello word替换为hello babyperl 命令直接替换文件中的字符串(不用打开文件,可以批量替换多个文件)
示例:
1,perl -p -i.txt -e"s/hello word/hello baby/g" ./dir1/file1 ./file2
将dir1目录下的file1和当前目录下的file2文件中的所有hello word替换hello baby,旧文件备份为file1.txt 和file2.txt
2,perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c
将所有C程序中的foo替换成bar,旧文件备份成.bak
参数详解:
-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }
-n 自动循环,相当于 while(<>) { 脚本; }(实际操作会清空文件内容)
-i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份
-e 执行指定的脚本
-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F 指定-a的分隔符,可以使用正则表达式
-l 对输入内容自动chomp,对输出内容自动添加换行