Linux基础1
1 Linux命令、命令行
2 ls命令
3 目录切换及相关命令cd/pwd
4 相对路径、绝对路径和特殊路径符
5 创建目录命令 mkdir
Linux基础2
1 文件操作命令 touch、cat、more、cp、mv、rm
touch 创建文件
格式:touch linux路径
touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
[root@node1 ~]# ls
a aa aaa anaconda-ks.cfg a.txt b hello.txt mysql
[root@node1 ~]# touch 1.txt
[root@node1 ~]# ls
1.txt a aa aaa anaconda-ks.cfg a.txt b hello.txt mysql
[root@node1 ~]# touch /root/aa/1.txt
[root@node1 ~]# cd /root/aa
[root@node1 aa]# ls
1.txt
cat 查看文件内容
格式:cat linux路径
cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
[root@node1 ~]# cat a.txt
121212
hello linux
hello linux
hello linux
hello linux
more命令查看文件内容
more命令同样可以查看文件内容,同cat不同的是:
• cat是直接将内容全部显示出来
• more支持翻页,如果文件内容过多,可以一页页的展示
分页查看文件的方式:
1- 通过回车, 可以往下查看一行
2- d字符: 查看半屏
3- 空格: 查看下一页
4- q 随时退出查看
格式:more linux路径
• 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
cp命令: 拷贝, 对文件的拷贝操作
格式:
cp [-r] 参数1 参数2
-r: 递归拷贝, 当拷贝的是文件夹的时候, 务必添加此参数
参数1: 拷贝谁
参数2: 拷贝到哪里
eg:将 /root/b/c下有一个a.txt文件, 请将其拷贝到 /root/a 目录下,绝对路径
[root@node1 ~]# cp /root/b/c/a.txt /root/a
[root@node1 ~]# cd /root/a
[root@node1 a]# ls
a.txt b test
eg:将 /root/b 目录整体拷贝到 /root/a目录中
[root@node1 a]# cp -r /root/b /root/a
[root@node1 a]# pwd
/root/a
[root@node1 a]# ll
总用量 0
-rw-r--r--. 1 root root 0 4月 26 13:42 a.txt
drwxr-xr-x. 3 root root 15 4月 25 08:59 b
drwxrw-r--. 2 root root 6 4月 25 20:19 test
[root@node1 a]# cd b/
[root@node1 b]# ll
总用量 0
drwxr-xr-x. 3 root root 28 4月 26 13:44 c
[root@node1 b]# cd c
[root@node1 c]# ll
总用量 0
-rw-r--r--. 1 root root 0 4月 26 13:44 a.txt
drwxr-xr-x. 2 root root 19 4月 25 09:00 d
[root@node1 c]# pwd
/root/a/b/c
mv命令:移动文件/目录
mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move
格式:
mv 参数1 参数2
参数1: 移动谁
参数2: 移动到哪里
eg:将 /root/ 下a.txt 移动到 /root/a/目录下
[root@node1 ~]# mv /root/a.txt /root/aa
[root@node1 ~]# ls
a aa aaa anaconda-ks.cfg b hello.txt mysql
[root@node1 ~]# cd /root/aa
[root@node1 aa]# ls
a.txt
eg:将aa目录 整体移动到根目录下, 请使用相对路径
[root@node1 ~]# pwd
/root
[root@node1 ~]# mv ./aa ../
[root@node1 ~]# ls
a aaa anaconda-ks.cfg b hello.txt mysql
[root@node1 ~]# cd /
[root@node1 /]# ls
1 b bin data etc home lib64 mnt proc run srv tmp var
aa bigdata boot dev export lib media opt root sbin sys usr
eg:工作中常用mv改名字来实现逻辑删除
[root@node1 ~]# ls
a aaa anaconda-ks.cfg b hello.txt mysql
[root@node1 ~]# mv hello.txt hello.txt.delete
[root@node1 ~]# ls
a aaa anaconda-ks.cfg b hello.txt.delete mysql
rm删除文件、文件夹
格式: rm [-r -f] linux路径
-r: 递归删除, 在删除文件夹的时候需要
-f: 强制删除, 在删除不提示是否删除
注意: rm -rf 操作慎用 , 尤其不要执行 rm -rf /* 类似于格式化windows的C盘
在删除的时候, 路径上面可以添加 * 通配符 表示renyi
例如:rm /a/a.*
表示, 将 以a为命名文件不管是什么类型的, 都会被删除
eg:删除 /root/b下的 a.txt
[root@node1 ~]# rm /root/b/c/a.txt
rm:是否删除普通空文件 "/root/b/c/a.txt"?y
[root@node1 ~]# cd /root/b/c/
[root@node1 c]# ls
[root@node1 c]#
eg:删除 a目录下的a.txt文件, 要求强制删除
[root@node1 a]# ls
a.txt b test
[root@node1 a]# cd
[root@node1 ~]# rm -f a/a.txt
[root@node1 ~]# cd a/
[root@node1 a]# ls
b test
eg:强制删除 a 目录
[root@node1 ~]# rm -rf /root/a
[root@node1 ~]# ls
aaa anaconda-ks.cfg b hello.txt.delete mysql
2 查找命令(which、find)
which:查询linux命令对应的执行文件在哪里
格式: which 命令
无需选项,只需要参数表示查找哪个命令
eg:查询cd 的执行文件路径
[root@node1 ~]# which cd
/usr/bin/cd
find命令:按文件名查找文件
find 作用:查询系统中指定的文件
按文件名查找:find 查询路径 -name “查询的文件名字”
eg:在/root目录下,查询a.txt文件
[root@node1 d]# find / -name a.txt
/root/a.txt
/root/a/b/c/d/a.txt
/b/c/a.txt
在执行查询时,同样也是支持通配符*的,表示为任意,前后两端都可添加
eg:查询所有后缀.txt的文件
[root@node1 ~]# find / -name *.txt
/root/a.txt
/root/a/b/c/d/a.txt
/b/c/a.txt
按文件大小查找:find 查询路径 -size +|-n[kMG]
+、- 表示大于和小于
eg:查找小于1KB的文件
[root@node1 ~]# find / -size -1k
eg:查找大于100MB的文件
[root@node1 ~]# find / -size +100M
eg:查找大于1GB的文件
[root@node1 ~]# find / -size +1G
n表示大小数字
kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
3 grep、wc及其管道符 |
grep: 从内容中根据关键词进行过滤, 将关键词相关内容数据显示出来
格式:grep [-n] 关键词 文件路径
参数说明:
-n: 是否显示数据的行号 可选项
关键词: 必填项 要查询的内容
文件路径: 必填项 查询的输入的端口
eg:查询a.txt中包含fv的行的内容,-n显示其行号
[root@node1 ~]# cat a.txt
linux
mysql
oracle
python
linux
java
php
c++
c#
linux
c
JavaScript
[root@node1 ~]# grep linux a.txt
linux
linux
linux
[root@node1 ~]# grep -n linux a.txt
1:linux
5:linux
10:linux
wc 帮助统计数量
wc [-c -m -l -w] 文件路径
参数说明:
-c : 统计 bytes 数量
-m : 统计字符数量
-l : 统计行号
-w : 统计单词数量
文件路径: 内容输入端口
eg:统计文件
[root@node1 ~]# wc a.txt
12 12 67 a.txt
[root@node1 ~]# wc -c a.txt
67 a.txt
[root@node1 ~]# wc -m a.txt
67 a.txt
[root@node1 ~]# wc -l a.txt
12 a.txt
[root@node1 ~]# wc -w a.txt
12 a.txt
管道符号: | 将左边命令的执行结果, 作为右边命令的输入
含义:将管道符左边命令的结果,作为右边命令的输入
eg:查询a.txt的文件的内容,再此结果上筛选包含fv的内容
[root@node1 ~]# cat a.txt | grep linux
linux
linux
linux
eg:在上面结果的基础上统计一共有多少行符合结果
[root@node1 ~]# cat a.txt | grep linux | wc -l
3
4 echo、tail和重定向
echo:可以直接在命令行中输出指定内容
语法:echo 输出内容
无需选项,只有一个参数,表示要输出的内容,含有特殊符合建议用 ” “ 包裹
eg:输出一个hello linux 到命令行
[root@node1 ~]# echo "hello linux"
hello linux
eg:通过echo输出pwd命令的结果
[root@node1 ~]# echo `pwd`
/root
反引号 ` 优先执行
tail :从尾部查询文件内容,同时支持跟踪文件的最新内容
语法:tail [-f -num] 文件路径
-f:持续跟踪
-num :从尾巴查询多少行,默认10
文件路径,表示被查看的文件
作用:主要通过此命令查看软件的日志信息
eg: /root/a.txt查看倒数三行数据
[root@node1 ~]# tail -3 a.txt
linux
c
JavaScript
eg:递归查询a.txt,一旦a.txt中有新的内容添加后,立即捕获到
克隆一个会话,在新的终端中在a.txt添加新内容,这边也会持续更新
重定向符合:将一个结果重定向到另一个地方
[ > ]: 将左侧命令的结果,覆盖写入到符号右侧指定的文件中
eg:将Hello Linux覆盖写入到
[root@node1 ~]# echo "Hello Linux" > /root/a.txt
[root@node1 ~]# cat a.txt
Hello Linux
[ >> ]: 将左侧命令的结果,追加写入到符号右侧指定的文件中
eg:将hello linux追加写入到/root/a.txt
[root@node1 ~]# cat a.txt
Hello Linux
[root@node1 ~]# echo 'Hello Linux' >> /root/a.txt
[root@node1 ~]# cat a.txt
Hello Linux
Hello Linux
5 文件编辑命令 :vi/vim
格式: vi/vim 文件路径
执行后, 就会进行vi/vim的工作模式:
命令行模式: 基于vi提供的各种命令完成相关功能操作, 例如 复制 粘贴 (默认进入模式, 也是其他模式之间切换桥梁)
输入模式: 即为文件的编辑模式, 可以基于输入模式对文件进行编辑操作
底行模式: 以 : 开始, 常用于保存 退出 查询等等
说明: vi/vim 可以编辑新文件 也可以编辑旧文件
命令模式快捷键:
底线模式:在命令模式内,输入: ,即可进入底线命令模式,支持如下命令:
命令的选项
大多Linux命令所拥有的选项都是非常多的。
如简单的ls命令就有:
-a-A-b-c-C-d-D-f-F-g-G-h-H-i-I-k-l-L-m
-n-N-o-p-q-Q-r-R-s-S-t-T-u-U-v-w-x-X-1
等选项,此处只贴出部分常用选项,详情通过帮助文档可查看