万物皆文件
Linux系统文件分隔符 /
windows系统文件分割符 \
相对路径中: ./ 表示当前目录 …/表示上一层文件目录
文件分类:
普通文件:各类数据文件
目录文件:即文件夹,只允许管理员对其进行修改,程序只能用不能改
设备文件:系统把每个设备映射为一个文件,用于向IO提供连接的文件,分字符设备和块设备
管道文件:用于进程间的通信
链接文件:类似win快捷方式,可分为软连接和硬连接
文件权限:
读:r --4
写:w --2
执行:x --1
命令使用格式:
command [-option] [parameter1] …
空格隔开(空格数量无限制)
多个option间可以不用加空格
命令 | 选项 | 功能 | 实例 |
---|---|---|---|
–help | 查看命令的使用帮助 | ls --help |
命令 | 选项 | 功能 | 实例 |
---|---|---|---|
man | 1 2 3 4 5 6 7 8 | 查看命令的使用手册 | man 1 ls |
默认为1 | |||
1表示标准命令 | 2表示系统调用 | 3表示库函数 | 4设备文件说明 |
5文件格式 | 6游戏和娱乐 | 7杂项、惯例与协定等 | 8管理员命令 |
命令 | 选项 | 选项含义 | 功能 | 实例 |
---|---|---|---|---|
ls | -a | all | 显示指定目录下所有子目录及文件(包含隐藏) | ls -a |
-l | list? | 以列表的方式显示文件的详细信息 | ls -l | |
-h | human readable | 配合 -l 以人性化的方式显示文件的大小 | ls -l -h或者ls -lh | |
la | ls -a | |||
ll | ls -la |
通配符 | 含义 | 实例 | 实例含义 |
---|---|---|---|
* | 所有字符(256个以下) | ls t*e | 查找以t开头结尾的文件 |
? | 代表文件名中任意一个字符 | ls a.? | 查找3个字符的文件前两个字符为a. |
[] | 表示字符数组中任意一个 | ls [a-d]* | 查找以a-d开头的文件 |
\ | 转义字符,将通配符变成普通字符 | ls \*a | 查找名为*a的文件 |
将命令输出结果重定向到一个文件中
命令 | 功能 | 实例 | 实例含义 |
---|---|---|---|
> | 输出重定向 | ls > a.txt | 将ls将要显示是内容保存到a.txt中,覆盖 |
>> | ls >> a.txt | 追加 |
一个命令的输出通过管道作为另一个命令的输入
命令 | 功能 | 实例 | 实例含义 |
---|---|---|---|
| | 一个命令的输出通过管道作为另一个命令的输入 | ls | grep a | 查看当前目录并查看a |
命令 | 功能 |
---|---|
cd ~ | 到用户主目录 |
cd . | 切换当前目录 |
cd … | 切换到上一级目录 |
cd - | 切换至上一步所在目录 |
pwd | Print Working Directory 打印当前目录路径 |
命令 | 功能 | 参数 | 实例 | 实例含义 |
---|---|---|---|---|
mkdir | make directory创建目录 | -p | mkdir -p a/b/c | 递归创建目录a/b/c |
rmdir | remove directory删除目录,目录必须为空 | rmdir c | 删除目录c | |
rm | 删除文件 | -i 交互式删除 | -r 删除文件夹 | -f 强制删除 |
软链接:类似快捷方式,不占内存,源文件删除则失效 ln -s 源文件 链接文件
硬链接:只能链接普通文件不能链接目录,占内存,类似copy但能始终与源文件保存一致 ln 源文件 链接文件
类型 | 说明 | 格式 | 注意 |
---|---|---|---|
软链接 | 类似快捷方式,不占内存,源文件删除则失效 | ln -s 源文件 链接文件 | 不再同一路径下不能使用相对路径 |
硬链接 | 占内存,类似copy但能始终与源文件保存一致 | ln 源文件 链接文件 | 只能链接普通文件不能链接目录 |
cat a | 查看a内容 |
---|---|
cat a b > c | 把a b 内容合并到c |
Globally search a Regular Expression and Print 在全局范围内搜索正则表达和打印
grep ‘搜索内容串’ 文件名
参数 | 实例 | 实例含义 |
---|---|---|
grep ‘abc’ a.txt | 搜索a.txt中包含‘abc’的内容,打印所有行 | |
-v | grep -v ‘abc’ a.txt | 搜索a.txt中不包含‘abc’的内容,打印所有行 |
-n | grep -n ‘ab’ a.txt | 额外显示匹配行及行号 |
-i | grep -i ‘a’ a.txt | 忽略大小写 |
grep 搜索内容可以是正则表达式
grep常用正则表达式
参数 | 实例 | 含义 |
---|---|---|
^a | grep -n ‘^a’ a.txt | 行首,搜索以a开头的行 |
a$ | grep -n ‘a$’ a.txt | 行尾,搜索以a结尾的行 |
[Ss]igna[Ll] | grep -n ‘[Ss]igna[Ll]’ a.txt | 匹配[]内所有字符中的一个,即搜索signal首尾字母大小写均可 |
. | grep -n x.x a.txt | 点代表任意一个字符 |
* | grep -n x*x a.txt | 任意个任意字符,可以换行 |
wc=word count?
实例 | 含义 |
---|---|
wc a.txt | 输出a.txt文件的行数、字数、字节数 |
wc -l a.txt | 查看a.txt的行数 |
wc -w a.txt | 查看a.txt的字数。一个字被定义为空格、换行分割的字符串 |
wc -c a.txt | 查看a.txt的字节数 |
wc -m a.txt | 查看a.txt的字符数,不能与-c一起使用 |
通常用来在特定的目录下搜索符合条件的文件
命令 | 含义 |
---|---|
find ./ -name test.sh | 查找当前目录下所有名为test.sh的文件 |
find /tmp -size 2M | 查找/tmp文件下大小为2M的文件 |
find /tmp -size +2M | 查找/tmp文件下大小大于2M的文件 |
find /tmp -size -2M | 查找/tmp文件下大小小于2M的文件 |
find …/ -size +4k -size -5M | 查找上一级文件夹下大小大于4k小于5M的文件 |
find ./ -perm 777 | 查找当前目录下权限为777的文件或目录 |
cp [选项] [源文件] [目标文件]
选项 | 实例 | 含义 |
---|---|---|
-a | cp /a ~/b | 拷贝a文件夹到主目录b文件夹中,保持文件原有属性进行拷贝(常用于文件夹拷贝) |
-f | cp test /d -f | 删除已经存在的目标文件而不提示 |
-i | 交互式复制,在覆盖目标文件前会给出提示 | |
-r | 递归复制文件夹,目标文件必须为一个目录 | |
-v | 显示拷贝进度 |
mv [选项] [源文件] [目标文件]
可用来重命名
选项 | 含义 | 实例 |
---|---|---|
-f | 禁止交互操作,即时覆盖也不提示 | |
-i | 交互式操作 | |
-v | 显示移动进度 |
file 文件
tar [选项] 文件名 文件
选项 | 实例 | 含义 |
---|---|---|
-c | creat tar -cf a.tar a.txt b.txt c.txt | 生成档案文件,创建打包文件,没有进行压缩 |
-v | verbose | 显示详细过程,显示进度 |
-f | file | 指定档案文件名,其后一定要接.tar文件必须放选项最后 |
-t | list | 列出档案中包含的文件 |
-x | extract tar -xf a.tar | 解开档案文件 |
-C | tar -xvf a.tar.gz -C ./test/ | 解压到指定目录 |
打包 | 解包 |
---|---|
tar -cvf 生成的包.tar 待打包文件1 待打包文件2… | tar -xvf 待解包名.tar |
压缩 | 解压 |
---|---|
gzip -r a | gzip -d a.zip |
tar cvzf 压缩包名称 文件1 文件2 … | 指定压缩包的格式为:压缩文件名称.tar.gz |
---|---|
tar zxvf 压缩包包名 | 指定压缩包的格式为:压缩文件名称.tar.gz |
zip -r 目标文件 源文件 | 压缩文件 |
unzip -d 解压后目录文件 压缩文件 | 解压文件 |
指令 | 实例 | 含义 |
---|---|---|
which | which ls | 查看ls指令位的位置 |
whoami | whoami | 查看当前用户 |
who | who | 查看登陆用户 |
exit | exit | 退出 |
su | su 或者su - | 切换root用户 su - 会停留在当前路径 |
su 用户名A | 切换到用户A | |
last | last | 查看最后登陆的用户 |
chmod | chmod [u/g/o/a] [+/-/=] rwx 文件名 | 修改文件权限 |
chmod 777 文件名 | ||
chown | chown 用户名 文件或目录 | 修改文件所有者 |
chgrp | chgrp 用户组名 文件或目录 | 修改文件所属组 |
指令 | 实例 | 含义 |
---|---|---|
cal | cal | 查看当前日历 |
date | date [MMDDhhmm[[CC]YY][.ss]]+format | 设置时间格式(需要管理员权限) |
format格式 : %H %M %S | 时 分 秒 | |
ps | ps | 查看进程信息 |
ps -a | 显示终端上的所有进程,包括其它用户的进程 | |
ps -u | 显示进程的详细状态 | |
ps -x | 显示没有控制终端的进程 | |
ps -w | 显示加宽,以便显示更多的信息 | |
ps -r | 只显示正在运行的进程 | |
top | top | 动态显示进程 |
kill | kill [选项] 进程ID | 终止进程 |
kill -9 进程ID | 强制终止进程 | |
init | init 0 | 关机 |
init 6 | 重启 | |
df | 检测磁盘空间 | |
df -a | 显示所有文件系统的磁盘使用情况 | |
df -m | 以1024字节为单位显示 | |
df -t | 显示各指定文件系统的磁盘使用情况 | |
df -T | 显示文件系统 | |
du | du [选项] 目录或文件名 | 检测目录所占磁盘空间 |
rmp | rmp [选项] 软件包 | 软件安装与卸载 |
-i | 安装 | |
-e | 卸载 | |
apt-get | sudo apt-get update | 获取最新软件包的列表 |
sudo apt-get install 软件包 | 从源安装软件 | |
sudo apt-get remove 软件包 | 卸载软件 | |
ifconfig | ifconfig | 查看网卡信息 |
ping | ping ip地址 | 测试远程主机连通性 |
vim有输入模式和命令模式
常用命令
按键 | 功能 |
---|---|
命令模式下 | |
1.进入插入模式 | |
a | 光标位置右侧插入文字 |
i | 光标位置当前处插入文字 |
o(字母) | 光标位置下方开始新行 |
O(字母) | 光标位置上方开始新行 |
I | 光标所在行首插入文字 |
A | 光标所在行尾插入文字 |
2.退出vim | |
ZZ(shift+z+z) | 保存退出 |
:x | 保存退出 |
:wq | 保存退出 |
:q | 退出,会提示是否保存修改 |
:q! | 退出不保存 |
:!命令 | 暂时离开vim,执行命令 |
3.删除和修改 | |
:w 文件名 | 保存到指定文件 |
[n]x | 删除光标后n个字符 |
[n]X | 删除光标前n个字符 |
D | 删除光标所在位置到此行结尾的字符 |
[n]dd | 删除当前行开始的n行(准确来说是剪切下来) |
[n]yy | 负责当前行开始的n行 |
p | 把剪切板的内容粘贴到当前行 |
dG | 删除光标位置开始到文件尾的所有内容 |
J | 合并两行 |
. | 执行上一次操作 |
u | 撤销上一次操作 |
4.行定位 | |
ctrl+f | 向前滚动一个屏幕 |
ctrl+b | 向后滚动一个屏幕 |
gg | 到文件行首 |
G | 到文件最后一行行首 |
到文件最后一行行首 | |
nG | 到低n行 |
/内容 | 查找指定内容 |
5.文本查找功能 | |
/字符串 | 查找字符串 |
n | 寻找下一个 |
N | 回到前一个 |
? | 寻找上一个 |
/^字符串 | 查找以字符串开始的行 |
/$字符串 | 查找以字符串结尾的行 |
/a.b | 查找字符串a任意字符b |
6.替换功能 | |
r | 替换当前光标字符 |
:r 文件名 | 在光标当前位置下一行载入另一个文件 |
/p1/p2/g | 将当前行中所有的p1替换为p2 |
:g/p1/s//p2/g | 将文件中所有的的p1替换为p2 |
:n1,n2s/p1/p2/g | 将n1到n2行中所有的的p1替换为p2 |
7.set指令 | |
:set ic | 搜索时不区分大小写 |
:set noic | 搜索时区分大小写 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
SSH Secure Shell
操作命令 | 含义 |
---|---|
ssh -l username hostip | -l(字母l) username 被远程登陆的用户名,hostip远程登陆的ip |
scp FileName RemoteUserName@RemoteHostIp:RemoteFile | 远程传输文件 |