Linux

tar

tar [-cxtzjvfpPN] 文件与目录

参数说明:

-c :建立一个打包文件;

-x :解开一个打包文件;

-t :查看 tar包里面的文件;

-z :打包后用gzip压缩,生成.tar.gz文件;

-j :打包后用zip2压缩,生成.tar.bz2文件;

-v :压缩的过程中显示文件;

-f :使用文件名,请留意,在f之后要立即接文件名,不要再加其它参数;

-p :保持原文件的属性;

-P :使用绝对路径来压缩;

-N :设定日期(yyyy/mm/dd),比后面接的日期还要新的文件才会被打包进新建的文件中;

–exclude FILE:在打包的过程中,不要将剔除FILE文件。

chmod

chmod [-cfvR] [--help] [--version] mode file...

mode:

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行

  • c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

例如, 765 将这样解释:

  • 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
  • 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
  • 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。

FROM:菜鸟教程

目录结构

/etc:此目录非常重要,绝大多数系统和相关服务的配置文件都保存在这里,这个目录的内容一般只能由管理员进行修改。像密码文件、设置网卡信息、环境变量的设置等都在此目录中。此目录的 rcn.d 目录中存放不同启动级别所启动的服务,network 目录放置网卡的配置信息等。

/home:此目录是所有普通用户的宿主目录所在地,在一般情况下,如果想要对用户进行磁盘限额功能,最好将此目录单独分区。

/bin :此目录中放置了所有用户能够执行的命令。

/sbin:此目录中放置了一般是只有系统管理有才能执行的命令。

/dev:此目录中保存了所有设备文件,例如,使用的分区:/dev/hda\1,/dev/cdrom 等。

/mnt:此目录主要是作为挂载点使用。

/usr:此目录包含了所有的命令、说明文件、程序库等,此目录下有很多重要的目录,常见的有:/usr/local 这个目录包含管理员自己安装的程序;/usr/share 包含文件的帮助文件;/usr/bin 和/usr/sbin 包含了所有的命令。

/var:包含了日志文件、计划性任务和邮件等内容。

/lib:包含了系统的函数库文件。

/lost+found:包含了系统修复时的回复文件。

/tmp:包含了临时的文件。

/boot:系统的内核所在地,也是启动分区。

/media:主要用于挂载多媒体设备。

/root:系统管理员的宿主目录。

Screen

非常强悍

#Todo(

systemctl

1.创建systemd文件

vim /usr/lib/systemd/system/**.service

(1)[Unit] 区块:启动顺序与依赖关系

[Unit]

Description=[简单描述]

Documentation=[文档位置]

# 启动顺序(多个服务中间用空格隔开)

After=network.target[当前服务在指定服务之后启动]

Before=[当前服务在指定服务之前启动]

# 依赖关系

Wants=[弱依赖关系服务,指定服务发生异常不影响当前服务]

Requires=[强依赖关系服务,指定服务发生异常,当前服务必须退出]

(2)[Service] 区块:启动行为

[Service]

EnvironmentFile=[EnvironmentFile 字段:指定当前服务的环境参数文件。该文件内部的 key=value 键值对,可以对 $key 的形式,在当前配置文件中获取。]

ExecStart=[启动服务时执行的命令]

ExecReload=[重启服务时执行的命令]

ExecStop=[停止服务时执行的命令]

ExecStartPre=[启动服务之前执行的命令]

ExecStartPost=[启动服务之后执行的命令]

ExecStopPost=[停止服务之后执行的命令]

# 启动类型

# simple(默认值):ExecStart字段启动的进程为主进程

# forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程

# oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务

# dbus:类似于simple,但会等待 D-Bus 信号后启动

# notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务

# idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合

Type=[启动类型]

# 如何停止服务

# control-group(默认值):当前控制组里面的所有子进程,都会被杀掉

# process:只杀主进程

# mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号

# none:没有进程会被杀掉,只是执行服务的 stop 命令。

KillMode=[如何停止服务]

# 重启方式

# no(默认值):退出后不会重启

# on-success:只有正常退出时(退出状态码为0),才会重启

# on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启

# on-abnormal:只有被信号终止和超时,才会重启

# on-abort:只有在收到没有捕捉到的信号终止时,才会重启

# on-watchdog:超时退出,才会重启

# always:不管是什么退出原因,总是重启

Restart=[服务退出后,Systemd 的重启方式]

RestartSec=[表示 Systemd 重启服务之前,需要等待的秒数]

(3) [Install] 区块

[Install]

# Target(服务组)说明

# 例:WantedBy=multi-user.target

# 执行 sytemctl enable .service命令时,.service的一个符号链接,就会放在/etc/systemd/system/multi-user.target.wants子目录中

# 执行systemctl get-default命令,获取默认启动Target

# multi-user.target组中的服务都将开机启动

# 常用Target,1. multi-user.target-多用户命令行;2. graphical.target-图形界面模式

WantedBy=[表示该服务所在的Target]

2.相关命令说明

# 启动

systemctl start **

# 关闭

systemctl stop **

# 重启

systemctl restart **

# 查看运行状态

systemctl status **

(1)Loaded行:配置文件的位置,是否设为开机启动;

(2)Active行:表示正在运行;

(3)Main行:主进程PID;

(4)Status行:由应用本身提供的软件当前状态;

(5)CGroup行:应用的所有子进程

(6)日志块:应用的日志

# 设置开机自启

systemctl enable **

enable命令相当于在/etc/systemd/system/目录里添加了一个符号链接,指向/usr/lib/systemd/system/里面的**.service

开机时,Systemd会执行/etc/systemd/system/目录里面的配置文件

# 杀死服务进程

systemctl kill **

# 查看配置文件

systemctl cat **

# 查看multi-user.target 包含的所有服务

systemctl list-dependencies multi-user.target

# 切换到另一个 target

systemctl isolate graphical.target

# 重新加载配置文件

systemctl daemon-reload

results matching ""

    No results matching ""