Linux笔记整理

Linux笔记整理

查询所安装宝塔的信息

1
/etc/init.d/bt default

文件目录

树状目录结构:Linux 的一切资源都挂载在这个 / 根节点下

常用命令

查询一个命令的信息及用法, 命令 --help,如 cat --help

1. 目录相关命令

输入目录快捷键

输入前缀后按 Tab 会自动补全,如果多个满足则提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
cd    # 路径切换
cd /dir # 进入根目录下的 dir 目录
cd dir # 进入当前目录下的 dir 文件夹(目录)
cd .. # 返回上一级目录

ls # 列出当前目录下的文件,不包含隐藏文件
ls -a # 列出当前目录下的所有文件,包括隐藏文件
ls -l # 列出当前目录下的所有文件及其 属性和权限,不包含隐藏文件
ls -al # 组合使用
ls dir # 列出 dir 路径下的所有文件信息
ls -al dir # 组合使用

pwd # 列出当前所在的绝对路径

mkdir # 创建目录
mkdir dir # 创建名为dir的文件夹
mkdir -p dir1/dir2/dir3 # 递归地创建目录
mkdir dir1 file2... # 批创建

rmdir # 删除目录
rmdir dir # 删除目录,若目录不为空则无法删除
rmdir p dir1/dir2/dir3 # 递归地删除目录,目录不为空则无法删除
rmdir dir1 file2... # 批删除

cp # 拷贝文件
cp file dir # 将文件 file 拷贝到路径 dir 中
cp file1 file2 # 将文件 file1 拷贝一份,并命名为 file2
cp file dir/file1 # 可配合路径使用
cp file dir/file # 若文件重名,则会提示是否要覆盖

touch file # 创建文件(非目录)

rm # 删除文件或目录
rm file # 删除文件
rm -f file # 强制删除,即使文件不存在也不会警告
rm -r dir # 删除文件或目录
rm -rf dir # 组合使用,强制删除并无警告
rm -i file # 交互,即在删除前体用用户,并让用户做最终选择

mv # 移动文件
mv file dir # 移动文件 file 到目录 dir内
mv file1 file # 文件重命名,将文件 file1 重命名为 file
mv dir1 dir2 # 若目标目录 dir2 已存在,将目录 dir1 移动到目录 dir2
# 若目标 dir2 目录不存在,则将目录 dir1 改名为 dir2
mv dir file # 报错
mv -f a b # 组合参数,强制执行

2. 文件属性及权限

1
2
# 一个文件或目录到属性及权限信息,ls -l
drwxr-xr-x 3 root root 96 2 24 16:10 test5

文件的属性由左边第一部分的10个字符确定,上述为字符串 drwxr-xr-x

第一个字母代表文件到类型:

  • 当为 d 则为目录
  • 当为 - 则为文件
  • 若是 l 则表示为链接文档
  • 若是 b 则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 )
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )

接下来的9位字符中,每三个为一组,且均为r w x 的三个参数的组合

其中, r 代表可读(read), w 代表可写(write),x 代表可执行(execute)

注:这三个权限的位置不会改变,如果没有权限,就会出现减号 -

  • 第 1 - 3 位确定属主即文件的所有者拥有该文件的权限
  • 第 4 - 6 位确定属组,即与属主同组的用户拥有该文件的权限
  • 第 7 - 9 位确定其他用户拥有该文件的权限

Linux 系统按文件所有者(属主)文件所有者同组用户(属组)其他用户来规定了不同的文件访问权限

对于文件来说,它都有一个特定的所有者,也就是文件属主用户是按组分类的,一个用户属于一个或多个组

属主之外的用户又可以分为属组其他用户

修改文件属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
chgrp    # 更改文件属组
chgrp [-R] 属组名 文件名 # 将对应名称的文件或目录更改属组,加上 -R 后,递归更改其子路径下所有文件或目录的属组

chown # 更改文件属主也,可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名 # 用法基本同 chgrp

chmod # 更改文件权限,通过改变上述 drwxr-xr-x 描述文件属性的10个字符的后九位
# Linux文件属性有两种设置方法,一种是数字,一种是符号
# 对于数字,其权重分配为,r:4 w:2 x:1,每3位的和代表一个组的具体权限
# 如 7 = 4 + 2 + 1,代表 可读可写可执行
# 如 5 = 4 + 0 + 1,代表 可读不可写可执行,以此类推
# 最终一个权限数字组合,如 777 代表三个组都是 全权限,
chmod 770 file # 代表 修改 file 文件的权限为 770

3. 文件内容查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
cat    # 查看文件内容,从第一行到最后一行
cat file
cat -b file # 增加显示行号的功能

tac # 查看文件内容,与 cat 相反,从最后一行到第一行
tac file # 注 macos 终端不支持

nl # 同 cat -b file
nl file

more # 分页查看,分页后按 空格键翻页,回车键往下看一行,q命令推出
more file

less # 与 more 类似,除空格向后翻页,b 向前翻页,上下方向键可往前翻和往后翻一行
less file # /str / 命令查找字符串,向下查询,使用 ? 向上查询

head # 查看文件前几行
head file
head -n 30 file # 控制显示行数

tail # 查看文件末尾几行
tail file
tail -n 30 file # 控制显示行数

ifconfig # 查看本机相关网络信息,win ipconfig

4. 链接

Linux 链接分两种,——硬链接(Hard Link),和符号链接(Symbolic Link,软连接)

案例

1
2
3
4
5
6
7
8
9
10
11
12
touch file1   # 创建文件 file1
ln file1 file2 # 为 file1 创建一个硬链接 file2
ln -s file1 file3 # 为 file1 创建一个软链接 file3
echo "Hello world!" >> file1 # 想文件 file1 中写入信息

cat file1 # 输出: Hello world!
cat file2 # 输出: Hello world!
cat file3 # 输出: Hello world!

rm file1
cat file2 # 输出: Hello world!
cat file3 # 报错

分析:创建文件 file1,file1 只是指向了一块内存硬链接 file2 则指向了 file1 所指向的那块内存区域而软链接 file3 则指向了 file1;删除文件 file1 时,只是删除了内存的一个指向并未清空该内存,所以 file2 仍可正常访问,而 file3 找不到所指向的 file1 ,故报错。

可以简单的理解成,file2 是 file1 的备份,file3 只是 file1 的快捷方式,所有 file1 删除后 file2 仍可正常访问,file3 访问出错

5. vim 的简单实用

  • 非编辑转态:
    • 移动光标,上 - k,下 - j,左 - h,右 - l
    • 由非编辑状态转为编辑状态
      • i:在当前光标所在字符的前面,转为输入模式
      • I:在当前光标所在行的行首,转换为输入模式
      • a:在当前光标所在字符的后面,转为输入模式
      • A:在当前光标所在行的行尾,转换为输入模式
      • o:在当前光标所在行的下方,新建一行,并转为输入模式
      • O:在当前光标所在行的上方,新建一行,并转为输入模式
    • 退出文件:
      1. 首先退出至非编辑状态
      2. 然后保存退出命令
        • :q 退出
        • :q! 不保存并退出
        • :w 保存
        • :w! 强行保存
        • :wq 保存并退出
    • 设置行号
      • 设置显示行好
  • 编辑状态
    1. 移动光标,上下左右方向键
    2. 退出编辑状态,Esc 退出键

6. 磁盘管理

1
2
3
4
df    # 列出文件系统的整体磁盘使用量,容量单位为 字节
df -h # 将容量单位换成 M 或 G

du # 检查磁盘空间使用量

7. 进程管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ps    # 查询当前系统中正在执行的各种进程的信息
ps -A # 列出所有的进程
ps -w # 显示加宽可以显示较多的信息
ps -u # 以用户的信息显示进程
ps -x # 显示后台运行进程的参数
ps -au # 显示较详细的信息
ps -aux # 显示所有包含其他使用者的进程
# 筛查
ps -aux|grep mysql # 即查找所有符合条件的进程信息

ps -ef # 可以查看到父进程的一些内容

grep # 查找文件中符合条件的字符串

# 注: | 在 Linux 中称为 管道符,eg:A|B,表示 以A命令的结果作为输出来操作B命令

pstree # 以进程树的形式展示
pstree -pu

kill # 结束进程
kill 进程id # 结束进程
kill -9 进程id # 强制结束