对文件和文件夹的操作
ls ,mkdir,touch ,pwd,cp,mv,rm,ln
对文件内容进行操作—》看文件里的内容
cat more less head tail
vim编辑器概述
1.新建一个空文件
# touch liupeng.txt
2.使用vim编辑器
1. # vim luyongkang.txt
2. 按字母i进入插入模式,开始修改文本 (insert)
3. 输入内容
4. 按ESC键,进入命令模式 (escape)(逃离)
5. 输入:wq ,进入末行模式,退出并且保存(written quit)
#vim xiyouji.txt
如果xiyouji.txt存在,就是打开,如果不存在,vim编辑器会自动帮助我们新建
cat 用来查看文件里的内容
ls 是查看文件夹里的内容
cat命令
cat -n 显示文件内容和行号
-n, –number
number all output lines
tac命令
tac:用来倒序显示cat的结果
tac liupeng.txt |cat -n 用来倒序显示cat结果且有行号
| (管道符):将前面一个命令的输出送给后面一个命令作为输入 。借花献佛
PS:操作系统中进程与进程间的通信方式:
管道
系统IPC(消息队列、信号量、共享存储)
SOCKET
more命令
用途:全屏方式分页显示文件内容
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏 (back)
按q键退出 (quit)
# cat -n messages |more
显示行号并且分页
less命令
用途:与more命令相同,但扩展功能更多
交互操作方法:
与more命令基本类似,但个别操作会有些出入
【page up】【page down】上翻下翻页
head命令
(从开头看)
用途:查看文件开头的一部分内容(默认为开始10行)
格式:head -n 数字 文件名
# head -n 2 messages
显示前2行的内容
# cat -n messages |head -n 3
等价于
# head -n 3 messages |cat -n
tail命令
用途:查看文件结尾的少部分内容(默认为10行)—->尾10行
tail -f 文件名
tail命令高级用法
格式:tail -n 数字 文件名
命令参数:
-q 隐藏文件名
-v 显示文件名
-c 显示字节数
-n 显示的行数
例如:
tail -n +3 /etc/passwd 从第三行开始显示
tail -n -3 /etc/passwd 显示最后三行
head -n -3 /etc/passwd 显示除最后三行外的信息
head -n +3 /etc/passwd 显示前三行
练习题
对messages文件进行操作
1.显示第6行内容
2.显示第10行到20行的内容
3.显示第100行到200行的内容
# cat -n messages |head -6|tail -1
# cat -n messages |head -20|tail -11
# cat -n messages |head -200|tail -101
注意:head -3 等价 head -n 3
ps aux命令 查看当前系统进
# ps aux
ps 查看当前系统进程信息
ps - report a snapshot of the current processes.
-u userlist
aux 是选项
ax显示所有的进程
# ps aux|more 分页显示所有的进程信息
wc 统计命令
-c, --bytes
print the byte counts
-m, --chars
print the character counts
-l, --lines
print the newline counts
注意:一个数字、特殊符号、英文字母占1个字节,一个汉字占2-3个字节
注意中英文输入法
# ps aux|tail -n +2|wc -l
显示当前有多少进程数量
sed 对文本文件进行处理
# cat-n messages |sed -n '1,3p' 显示1到3行
# cat-n messages |sed -n '1p;3p;5p'
显示第1行、第3行、第5行
PS:p是输出相关的内容到屏幕上(print)
小结
cat :一瞬间全部显示,有显示行号的功能
more less:分页显示
head:头10行
tail:尾10行,高级功能,可以从第几行开始显示 tail -n +3 messages
PS:tail -n 3 等价 tail -3
cat 扩展功能
>
输出重定向符号:将本该在屏幕上输出的内容重新定向到一个文件里。(乾坤大挪移)
如果后面接的文件不存在,则自动建立。如果文件存在,则覆盖替换原来文件里的内容。
>>
输出重定向符号(追加):追加到文件的末尾,如果后面接的文件不存在,则自动建立。如果文件存在,则覆盖替换原来文件里的内容。
①# cat wangshuo.txt >ws.txt
覆盖
②# cat wangshuo.txt w.txt >1.txt
将两个文件合并为一个1.txt文件
here document <<
生成一个指定内容的文件,使用here document 和输出重定向功能,例:
# cat >LP.txt <
(新建一个LP.txt文档,并且往里面写入内容,且以EOF结束)
> wangnan
> dezhou
> EOF
PS:EOF,即 End OF the…,可以用别的字符代替EOF
怎么写脚本
(多写点英文注释)
#vim lp777.sh
(以下是脚本内容)
#!/bin/bash
#author : LP
#company : chinaitsoft
#function: create file and dirctory
#version: 1.0
执行脚本:
# bash lp777.sh
脚本执行的时候,从文件的第1条命令开始执行,到最后一条命令。
脚本,即scripts。其实脚本就是一个存放了很多条命令的文件
执行的顺序是从第1条到最后一条命令。
练习:
编辑一个脚本文件create_file.sh实现下面功能:
1.新建一个文件夹liudehua
2.进入liudehua目录,新建10个空文件zhangxueyou1 zhangxueyou2
到zhangxueyou10
3.生成一个文件叫wangjishun.txt,内容如下:
wang ji shun
18+
nan
qilu
4.输出wangjishun.txt的内容到屏幕上
5.输出一行***************在脚本执行的最后一行
补充小知识
# [ -d liudehhua ]
判断liudehua目录是否存在
$? 代表上一条命令的返回值,如果上一条命令执行成功为0,如果非0就表示不成功
初识if…else…
if 命令
then
命令1
命令2
....
else
命令3
命令4
....
if命令执行成功就是条件成立,不成功就是条件不成立。
条件成立,则执行then后面的语句命令,如果条件不成立,则执行else后面的语句命令。
if [ -d liudehua ]
then
echo "liudehua is exist"
else
mkdir liudehua
fi
例子:
#!/bin/bash
#author : LP
#company : chinaitsoft
#function: create file and dirctory
#version: 1.0
#create liudehua directory ----注释
if [ -d liudehua ]
then
echo "liudehua is exist"
else
mkdir liudehua
fi
cd liudehua
touch zhangxueyou{1..10}
#create file wangjishun.txt
cat >wangjishun.txt <
wang ji shun
18+
qilu
nan
EOF
cat wangjishun.txt
echo "*************************"
末尾的小总结
cat more less head tail :看文件里的内容
which whereis locate :查找系统里的命令文件存放在哪里?
which命令
用途:查找可执行文件并显示所在的位置
—— 搜索范围由 PATH 环境变量指定
格式:which 命令或程序名