Linux 笔记
系统目录结构
目录 | 说明 |
---|---|
bin | 二进制文件(可执行文件) |
etc | 软件和系统的配置文件 |
home | 家目录 |
boot | 引导文件 |
dev | 设备文件 |
lib(lib32、lib64..) | 系统库 |
media | 媒体文件(默认挂载光驱) |
mnt | 挂载目录 |
opt | 用户的文件(公共的) |
proc | 进程信息 |
root | root用户目录 |
sbin | 超级bin目录,有权限限制的可执行文件 |
sys | 系统文件目录 |
tmp | 临时文件目录 |
usr | 应用软件 |
var | 主要针对常态性变动文件,包括缓存(cache)、登录文件(logfile)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),或者例如Mysql数据库的文件等 |
命令
常用命令
命令 | 说明 |
---|---|
ls | 查看当前目录文件 [-l 详细信息 -h显示大小单位 -a 显示全部文件] |
tree | 以树状方式显示目录信息 |
pwd | 查看当前目录路径 |
clear | 清除终端内容 |
cd | 切换到指定目录 |
touch 文件名 | 创建指定文件 |
mkdir 目录名 | 创建目录(文件夹) |
rm 文件名或者目录名 | 删除指定文件或者目录 |
rmdir 目录名 | 删除空目录 |
cp | 拷贝文件、拷贝目录 |
mv | 移动文件、移动目录、重命名 |
mkdir | 创建文件夹 [-p 创建所依赖的文件夹] |
rm | 删除文件或文件夹 [-i 删除确认 -r 递归删除 -f 强制删除 -d 删除空目录] |
cp | 拷贝 [-i 提示 -r 递归拷贝 -v 显示拷贝后的路径描述 -a 保留文件的原有权限] |
mv | 移动文件 [-i 确认交互 -v 显示移动后的路径描述] |
clear | 清屏 (快捷键 ctrl + L) |
which | 查看命令位置 |
shutdown –h now | 立刻关机 |
reboot | 重启 |
passwd [user] | 修改用户密码,不指定用户默认修改当前登录用户密码 |
ps aux | 查看系统进程 ps aux | 想要查找的进程 [-a 表示所有用户 -u 表示显示用户名 -x 表示显示所有的执行程序] |
重定向命令
命令 | 说明 |
---|---|
> | 如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式 |
>> | 如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’ 模式 |
查看文件内容
命令 | 说明 |
---|---|
cat | 查看小型文件 |
more | 分屏查看大型文件(显示百分比,退出时保留文件内容 b 上一页 f或空格下一页) |
less | 分屏查看大型文件(不显示百分比,退出时不保留文件内容 b 上一页 f或空格下一页) |
管道 (|)
一个命令的输出可以通过管道做为另一个命令的输入,可以理解成是一个容器,存放在终端显示的内容。
1 | ls -lh | more # 将ls的信息分屏显示 |
链接命令
软链接
- 软链接文件,无论对哪个文件进行操作,都会影响另外一个文件
- 当原文件删除或移动或改名后,那么链接文件会失效,链接文件会变成红色,如果将这个文件名恢复,那么连接也会恢复
- 当创建软链接文件时,为了避免文件移动后链接失效,源文件需要使用绝对路径指定
- 可以对目录做软链接
硬链接
- 删除源文件,连接文件仍然能访问 (相当于新增引用计数)
- 硬链接 只能链接文件
- 硬连接不受路径影响
- 硬连接会保持数据同步
- 硬连接会改文件属性信息中的连接数据
- 不允许对目录做硬连接
- 目录的文件信息中的连接数表示 当前目录下包含多少子目录
命令 | 说明 |
---|---|
ln -s | 创建软链接 |
ln | 创建硬链接 |
1 | ls -s 源文件 目标文件 # 软链接 |
grep
grep 选项 ‘要查找的内容’ 被查找的文件
命令选项 | 说明 |
---|---|
-i | 忽略大小写 |
-n | 显示匹配行号 |
-v | 显示不包含匹配文本的所有行 |
grep 搜索时,可以使用正则来查找字符
正则表达式 | 说明 |
---|---|
^ | 以指定字符串开头 eg: ‘^xxx’ |
$ | 以指定字符串结尾 eg: ‘xxx$’ |
. | 匹配一个非换行符的字符 eg: ‘xxx.xxx’ |
查找文件
在查找时,查找的范围包含指定目录及指定目录下的子目录
find 查找路径 -name 被查找的文件
正则表达式 | 说明 |
---|---|
* | 表示任意个字符 |
? | 表示一个任意字符 |
通过 history
命令你可以找到最近用过的命令:
1 | history | grep "git clone" |
文件内容追加
1 | cat file1.txt >> file2.txt |
压缩解压
Linux默认支持的压缩格式:
- .gz
- .bz2
- .zip
.gz和.bz2的压缩包需要使用tar命令来压缩和解压缩
.zip的压缩包需要使用zip命令来压缩,使用unzip命令来解压缩
tar
tar命令选项:
选项 | 说明 |
---|---|
-c | 创建打包文件 |
-v | 显示打包或者解包的详细信息 |
-f | 指定文件名称, 必须放到所有选项后面 |
-z | 使用gzip压缩或解压缩,一般格式为xx.tar.gz或xx. tgz |
-j | 使用bzip2压缩,压缩或解压缩(一般格式为xxx.tar.bz2 ) |
-x | 解包 |
-C | 解压缩到指定目录 |
-O | 将文件解压到标准输出 |
-t | 列出档案文件中的内容 |
-r | 向压缩归档文件末尾追加文件 |
-u | 更新原压缩包中的文件 |
-v | 显示详细过程 |
–exclude | 在压缩过程中,排除某个文件 |
–remove-files | 在完成打包后,删除原文件夹 |
tar 命令可以将多个文件进行打包或解包
注意: 打包时是不会进行压缩文件的
使用选项时, f 选项一定在所有选项的最右侧, 后面跟的是包名
为了在打包时可以进行压缩,tar 集成了两个选项, z 和 j,用来在打包的同时对包文件进行实现压缩
z -> gzip 工具, 压缩格式是 .gz
j -> bzip2 工具, 压缩格式是 .bz2
固定格式
1 | tar -zcvf xxx.tar.gz 被压缩文件 |
zip和unzip命令
命令 | 说明 |
---|---|
zip | 压缩成.zip格式文件 |
unzip | 解压缩.zip格式文件 |
unzip命令选项:
选项 | 说明 |
---|---|
-d | 解压缩到指定目录 |
gzip和bz2 (不常用,建议使用tar命令)
1 | gzip |
权限
chmod修改文件权限有两种方式:
- 字母法
- 数字法
chmod 字母法的使用
格式: chmod 不同角色设置的权限 文件
1 | -rwxr-xr-x |
角色说明:
角色 | 说明 |
---|---|
u | user, 表示该文件的所有者 |
g | group, 表示用户组 |
o | other, 表示其他用户 |
a | all, 表示所有用户 |
权限设置说明:
操作符 | 说明 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设置权限 |
权限说明:
权限 | 说明 |
---|---|
r | 可读 |
w | 可写 |
x | 可执行 |
- | 无任何权限 |
chmod 数字法的使用
数字法就是“rwx” 这些权限也可以用数字来代替
格式: chmod 不同角色的权限值 文件名
1 | r w x - |
权限说明:
权限 | 说明 |
---|---|
r | 可读,权限值是4 |
w | 可写,权限值是2 |
x | 可执行,权限值是1 |
- | 无任何权限,权限值是0 |
管理员权限
sudo命令的使用
命令 | 说明 |
---|---|
sudo -s | 切换到root用户,获取管理员权限 |
sudo | 某个命令的执行需要获取管理员权限可以在执行命令前面加上sudo |
用户相关操作
/etc/passwod 文件,用来保存用户的信息
/etc/shadow 文件,用来保存用户的密码
/etc/group 文件,用来保存系统中的所有组
命令 | 说明 |
---|---|
whoami | 查看当前用户 |
exit | 退出当前登录用户 |
who | 查看所有的登录用户 |
useradd | 创建(添加)用户 [-m 自动创建目录民为用户名的主目录 -g 指定用户所属的用户组,默认不指定会自动创建一个同名的用户组] |
id | 查看用户信息: id username |
passwd | 设置密码: password [用户名] 不输入用户名则更改当前账号密码 |
su | 切换用户 (su - 用户名) |
userdel | 删除用户: userdel -r 用户名 (-r 删除用户时同时删除用户目录) |
groupadd | 创建(添加)用户组: groupadd 用户组名 |
groupdel | 删除用户组: groupdel 用户组名 |
远程连接
Linux 安装ssh服务器
sudo apt-get install openssh-server
连接服务器
ssh username@ip
###scp 远程复制
上传文件
scp 本地文件 username@ip:远端主机路径 -P 端口号
下载文件
scp username@ip:远端主机资源路径 本地路径
大量的文件上传和下载可以通过可视化工具FileZilla来完成。
vim的使用
三种模式:
- 命令模式
- 编辑模式.
- 末行模式
vim 的末行模式命令
命令 | 说明 |
---|---|
w | 保存 |
:wq | 保存退出 |
:x | 保存退出 |
:q! | 强制退出 |
:set nu | 设置行号 |
:set nonu | 取消行号 |
:syntax on/off | 开启/关闭语法高亮 |
vim常用命令
命令 | 说明 |
---|---|
i | 在当前光标位置处插入 |
a | 在当前光标下一个字符位置处插入 |
o | 在当前光标所在行的下一行插入一个空行 |
yy | 复制光标所在行 (nyy 复制n行) |
p | 粘贴 (np 粘贴n次) |
dd | 删除/剪切当前行(ndd 删除n行) |
u | 撤销 |
:/搜索的内容 | 搜索指定内容 |
G | 回到最后一行 |
gg | 回到第一行 |
数字+G | 回到指定行 |
x | 向后删除一个字符 |
X | 向前删除一个字符 |
>> | 往右缩进 |
<< | 往左缩进 |
:%s/要替换的内容/替换后的内容/g | 全局替换 |
:开始行数,结束行数s/要替换的内容/替换后的内容 | 局部替换 |
. | 重复上一次命令操作 |
0 | 回到行首 |
^ (shift+6) | 回到当前行的行首 |
$ (shift+4) | 回到当前行的行末 |
ctr+f | 下一屏 |
ctr+b | 上一屏 |
V | 按行选中 |
ctr+r | 反撤销 |
h | 光标向左移动 |
j | 光标向下移动 |
l | 光标向上移动 |
l | 光标向右移动 |
/查找内容 | 查找内容 (n 跳到下一个, N 跳到上一个) |
?查找内容 | 查找内容 (n 跳到上一个, N 调到下个一) |
软件的安装和卸载
离线安装和卸载
dpkg -i 安装文件.deb
dpkg -r 软件名
apt-get方式安装
是在线安装deb软件包的命令,主要用于在线从互联网的软件仓库中搜索、安装、升级、卸载软件。
sudo apt–get install 安装包
更改源
- 图形界面
系统设置-软件和更新-下载自-选择国内源
- 命令行
找到对应源配置-覆盖/etc/apt/sources.list
sudo apt/apt-get update
配置环境变量
1 | vim .bash_profile |
sh脚本文件
可以将经常使用的一系列终端命令行放在脚本文件中(shell),然后执行脚本文件
可以通过sh、bash、source来执行脚本文件
sh、bash 会启动一个子进程来执行脚本文件 执行后返回到父进程的shell环境(如脚本中有cd命令,不会改变当前目录)
source 在当前进程中执行脚本文件(如脚本中有cd命令,会改变当前目录)