0%

Linux 使用

Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面

解压缩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-c 创建一个新tar文件
-v 显示运行过程的信息
-f 指定文件名
-z 调用gzip压缩命令进行压缩
-x 解开tar文件

# 解压
tar -zxvf 压缩文件 [-C] [指定解压目录]

# 压缩
tar -c[z]vf 压缩文件 目录

tar -cvf test1.tar /root/test1 #打包
tar -czvf test2.tar.gz /root/test2 #打包并压缩

系统管理

进程

1
2
3
ps -ef #查看所有进程

kill -9 12345 #立即杀死pid为12345的进程

管道

将一命令输出作为另一命令输入

1
ps -ef | grep php #查询名称中包含php的进程

用户

1
2
3
4
5
6
7
8
# 创建用户
useradd 用户名

# 设置密码
passwd 用户名

# 删除用户 -r 同时删除此用户关联的目录 /home/用户名
userdel [-r] 用户名

权限管理

Linux: 多任务多用户
用户管理包括 用户与组管理
Linux对于不同的系统资源拥有不同的使用权限,Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。

  • 所属用户: 文件的创建者
  • 所属用户组: 和所属用户在同一组的用户
  • 其他用户: 既不是所属用户,也不是所属用户组
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
ls -lh

第一位字符 文件类型
- 普通文件
d 文件夹
l 连接文件

剩余 9 字符
3位1组

[属主][属组][其他用户]

每一组
[rwx] 读r写w执行x

r-- 代表仅有读权限,-代表无此权限

7 = 4读 + 2写 + 1执行

chmod 761 1.txt
给 属主7, 属组6, 其他1 的权限 在 1.txt 文件

chmod u+x 2.txt
给属主 赋予增加执行 在 2.txt

chmod u=rwx,g=rw,o=x 3.txt
给 属主 赋予rwx, 属组赋予rw, 其他x 在 3.txt

文件权限
更改文件/目录 权限

更改文件所有者
chown username file|directory
change own

own 拥有者

更改文件所属组
chgrp groupname file|directory
change group

网络管理

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# 查看主机ip地址
ifconfig

# systemctl

# systemctl 命令是用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态,在Centos7.0之前,使用的是service命令,在Centos7.0之后,使用systemctl命令来进行服务控制

# systemctl 操作 服务名
# systemctl start 服务名 开启服务
# systemctl stop 服务名 关闭服务
# systemctl status 服务名 显示服务状态
# systemctl enable 服务名 设置开机自启动
# systemctl disable 服务名 关闭开机自启动

# systemctl
systemctl start network
systemctl stop network
systemctl restart network
# 重启网络

# ctl = control

# 防火墙操作
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl status firewalld.service #查看防火墙状态


traceroute
追溯路由
traceroute [选项] 目的主机名或IP地址
traceroute 10.22.48.46

ping –c 5 www.aust.edu.cn

# netstat [选项]
netstat -nr
当前路由表的详细信息

# stat = statitics
# 统计

ifconfig 网络接口设备名 [up|down]
up 开
down 关
简写 ifup/ifdown
ifup 网络接口设备名

ifconfig
没有指定网络接口,
ifconfig将返回系统所有的网络设备的TCP/IP参数,包括回环网络接口的信息,
否则返回指定的接口参数

临时生效,临时改网络配置,如需永久,则改网络配置文件

修改域名服务器
vim /etc/resolv.conf
修改 nameserver

/etc/hosts
供本地使用的域名,IP映射表
/etc/hosts 优先级 高于 nameserver


route
后到的route拥有更高的优先级
route add | del -net 网络地址 netmask 网络掩码 [gw 网关地址] [dev 网络接口]

yum
yum install java
yum remove java

network文件
hostnamectl set-hostname xxxx

进程

  • 进程 间 并发
  • 分配资源 单位
  • 程序 静态 指令集
  • 进程是 动态
  • 进程 是 程序 执行过程
  • 调度(Schedule)
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
# 控制进程间优先级

nice
nice [-priority] 程序名

priority 优先级,取值 -20-19
nice -18
nice --18

优先级数值越小 越高
-20 优先级最高, 19 最低

默认优先级 0

ps = process show
ps -l
-l = list 以列表形式
验证nice命令执行结果
PID 进程ID
PPID = parent pid 父进程ID
ps -l

renice
在 RedHat Linux 9 系统中

如果进程启动后需重新 调整优先级,可以使用 renice 命令
renice -10 pid

父进程、子进程

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
ps

ps -f
所有进程信息

ps -a

系统中与 tty 相关的 所有进程 的信息
TTY: 该进程建立时 所对应的终端

? 表示 该进程不占用终端

ps -r
正在运行 进程

ps -u
面向用户的格式

ps -x
所有终端上的进程信息

ps aux | grep java
查询 名为java的进程

# 中断进程
前台进程
kill -9 pid
杀死进程

-9 立刻
在某些情况下,也可能无法杀死
ctrl + c

后台进程
kill

路径

1
2
3
4
5
6
路径
相对
绝对
只要第一个字符为 / 就一定为绝对
. 一个点 当前目录
.. 两个点 当前的上一级目录

通配符

通配符
    *
        任意(数量)字符或字符串
    ?
        任意一个字符
    PS
        注意:在Linux中以.句点打头的文件是隐藏文件,不能与*匹配
        若要匹配这些特殊符号,则用反斜杠 \ 转义

文件系统

按照 一定规则组织 的文件结构,用于管理机器上的文件和目录,使之能够被有效地存取。

相关知识

目录

  • /:Linux系统的根目录,包含Linux系统的所有目录和文件。
  • /etc:有关系统设备与管理的配置文件。
  • /sbin:存放系统启动时所需的运行程序。
  • /bin:该目录中含有常用的命令文件,不能包含子目录。
  • /boot:操作系统启动时的核心文件。
  • /usr/local:存放用户后期安装的应用程序文件。
  • /root:超级用户主目录。
  • /dev:接口设备文件目录,保存外围设备代号。
  • /mnt:设备文件的挂接点,默认有/mnt/cdrom和/mnt/floppy两个目录,分别用于挂载光驱和软驱。
  • /home:用户的宿主目录,通常将其设置在独立的分区。

vim

底行模式

:w 文件 另存为
:w 保存(ctrl + s)
:q 退出, 如果没有保存,不允许退出
:q! 强行退出, 不保存退出
:wq 保存并退出
:x 保存并退出

常用配置文件

1
2
修改域名服务器  修改 nameserver
vim /etc/resolv.conf
1
2
3
供本地使用的域名,IP映射表
/etc/hosts 优先级 高于 nameserver
/etc/hosts

补充

查找所有nologin用户

1
2
查找所有nologin用户
grep nologin /etc/passwd

查找所有使用bash的用户

1
2
查找所有使用bash的用户
grep bash /etc/passwd

查询 名为java的进程

1
2
查询 名为java的进程
ps -aux | grep java

改变目录

1
2
3
4
5
6
当前用户主目录 /home/当前用户名
注意: 如果是root,用户,则 ~ 为 /root
cd ~

当前目录上两层
cd ../..

创建目录

1
2
3
4
5
6
7
8
创建文件夹/目录
mkdir targetDir

创建多级目录
mkdir -p new_dir/x/y/z

对新建目录 设置权限
mkdir -m

删除目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14

注意:目录被删除前,
1.必须为空,

2. 有对其父目录的写权限

一. 删除目录
rmdir targetDir



二. 递归删除目录 注意: 当子目录被递归删除后,此目录已经为空的话,也一并删除
rmdir -p targetDir # 等价于 rmdir --parents

  1. 比如我的A目录下面只有一个B目录

rmdir -p A/B
此时会先删除B目录,删除完之后B目录之后,A目录下面在没有其他子目录和文件,就会把A目录也一并删除了

  1. 比如我的A目录下面有B目录和C目录2个子目录

rmdir -p A/B
这是只删除B这个子目录,A目录不会被删除,因为下面还有一个C子目录

合并文件

1
2
合并 file1, file2 内容 到 file3
cat file1 file2 > file3

修改文件 的 修改时间

1
2
将上例创建的file1文件的最后修改时间修改为2008年12月28日
touch -m -t "12282008" file1 # 先月日再年

使用配置文件管理网络

网络接口的配置文件

/etc/sysconfig/network-scripts/ifcfg-eth0
采用修改此文件的方法可以 同时解决网络重启和系统重启后网络配置失效的问题

DNS客户机配置文件
用于设置DNS服务器的 IP地址 及 DNS域名,还包括了主机的域名搜索顺序
域名解析器(resolver,一个根据主机名解析IP地址的库)

/etc/resolv.conf
文件内容主要关键字 4 个

1
2
3
4
nameserver # 定义DNS服务器的IP地址
domain # 定义本地域名
search # 定义域名的搜索列表
sortlist # 对返回的域名进行排序

PS: domain 和 search 不能共存,若同存,后出现的会被使用(即覆盖)

su root 和 su - root 有什么区别?

su 后面不加用户是默认切到 root
su 是不改变当前变量
su - 是改变为切换到用户的变量
也就是说su只能获得root的执行权限,不能获得环境变量,而su -是切换到root并获得root的环境变量及执行权限