Linux & Ubuntu
linux
$ ps -e | grep apt
$ ps aux |grep mysqld
服务端网卡
| 1 | sudo dhclient enp0s8 | 
Ubuntu桌面
- 在命令行运行以下命令更新
| 1 | apt-get update | 
- 安装桌面
| 1 | apt-get install -y ubuntu-desktop | 
- 安装xrdp
| 1 | apt-get install -y xrdp | 
安装完成后,即可使用Windows远程桌面工具登录Ubuntu。
Ubuntu换源
| 1 | $ sudo vim /etc/apt/sources.list | 
ubuntu查看处理器和系统架构
| 1 | uname -a; | 
21.04 hirsute
20.04 focal
18.04 bionic
16.04 xenial
14.04 trusty
12.04 precise
Ubuntu删除无用的dpkg包
dpkg -l 命令可以查看所有安装的包,其中rc状态的包是卸载了包但配置文件还在,可以使用以下命令进行清理:
$ dpkg -l | grep ^rc | cut -d’ ‘ -f3 | sudo xargs dpkg –purge
包管理 dpkg 解释
https://blog.csdn.net/qiuchangyong/article/details/97505379
$ sudo dpkg –add-architecture arm64 (当前状态,不行就remove掉)
$ sudo dpkg –remove-architecture arm64
sh: /bin/bash^M:执行错误
原因是windows下的文件是dos格式,即每一行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识。
| 1 | vim xxx.sh | 
挂载
| 1 | fdisk -l | 
查看文件或文件夹占用大小
| 1 | du 命令常用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh | 
删除snap旧的包
查看包文件
| 1 | cd /var/lib/snapd/snaps/ | 
查看文件版本的可用性
| 1 | snap list --all | 
脚本自动删除
Alan Pope 在 Snapcraft 团队工作时写的一个灵巧的 bash 脚本
| 1 | cd | 
| 1 | 
 | 
| 1 | chmod +x clean_snap.sh | 
计算文件hash值
| 1 | shasum filename | 
网络共享文件夹:samba
$ sudo apt install samba
$ sudo vim /etc/samba/smb.conf
| 1 | 
 | 
重启samba服务
$ sudo service smbd reload
打印登录成功后显示的 MOTD 信息
| 1 | $ sudo run-parts /etc/update-motd.d/ | 
可以在 /etc/update-motd.d/ 按格式编写想打印的内容/文件
会按照文件前的序号,顺序打印
查看有关“java”的进程
ps aux|grep java
查看DNS ip链路
nslookup google.cn
制作服务,并开机自启
参考文章:
编写 *.service 文件
- [Unit] 区块:启动顺序与依赖关系
- Description - 给出当前服务的简单描述 
- Documentation - 给出文档位置 
- Before - 在什么服务之前执行 如sshd.service应该在哪些服务之前启动 
- After - 在什么服务之后执行 如network.target或sshd-keygen.service - 注:[After和Before字段只涉及启动顺序,不涉及依赖关系] 
- Wants - 与某服务之间存在“弱依赖”关系,即如果某服务启动失败或停止运行,不影响继续执行 
- Requires - 表示“强依赖”关系,即如果某服务启动失败或异常提出,那么当前服务也必须退出 - 注:[Wants字段与Requires字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的] 
- [Service] 区块:启动行为
- Type 置进程的启动类型。必须设为 - simple, exec, forking, oneshot, dbus, notify, idle之一- simple(默认值) - ExecStart字段启动的进程为主进程 
- exec - 与 simple 类似,不同之处在于, 只有在该服务的主服务进程执行完成之后,systemd 才会认为该服务启动完成。如果不能成功调用主服务进程(例如 User= 不存在、或者二进制可执行文件不存在), 那么 systemctl start 将会执行失败。 
- forking - ExecStart字段将以fork()方式启动, 
 此时父进程将会退出,子进程将成为主进程(后台运行)
- oneshot - 与 simple 类似,不同之处在于, 只有在该服务的主服务进程退出之后,systemd 才会认为该服务启动完成,才会开始启动后继单元。 此种类型的服务通常需要设置 RemainAfterExit= 选项。 当 Type= 与 ExecStart= 都没有设置时, Type=oneshot 就是默认值。 
- dbus - 类似于simple,但会等待D-Bus信号后启动 
- notify - 类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务 
- idle - 类似于simple,但是要等到其他任务都执行完,才会启动该服务。 
 一种使用场合是为让该服务的输出,不与其他服务的输出相混合。- 注意: 
 (1)仅可用于改善控制台输出,切勿将其用于不同单元之间的排序工具;
 (2)延迟最多不超过5秒, 超时后将无条件的启动服务进程。
 
- User - 用户 
- EnvironmentFile - 环境变量 
- WorkingDirector - 工作目录 
- ExecStart - 定义启动进程时执行的命令 
- ExecReload - 重启服务时执行的命令 
- ExecStop - 停止服务时执行的命令 
- ExecStartPre - 启动服务之前执行的命令 
- ExecStartPost - 启动服务之后执行的命令 
- ExecStopPost - 停止服务之后执行的命令 
| 前缀 | 效果 | 
|---|---|
| “ @“ | 如果在绝对路径前加上可选的 “ @“ 前缀,那么其后的那些参数将依次作为”argv[0] argv[1] argv[2] …”传递给被执行的进程(注意,argv[0] 是可执行文件本身)。 | 
| “ -“ | 如果在绝对路径前加上可选的 “ -“ 前缀,那么即使该进程以失败状态(例如非零的返回值或者出现异常)退出,也会被视为成功退出,但同时会留下错误日志。 | 
| “ +“ | 如果在绝对路径前加上可选的 “ +“ 前缀,那么进程将拥有完全的权限(超级用户的特权),并且User=,Group=,CapabilityBoundingSet=选项所设置的权限限制以及PrivateDevices=,PrivateTmp=等文件系统名字空间的配置将被该命令行启动的进程忽略(但仍然对其他ExecStart=,ExecStop=有效)。 | 
| “ !“ | 与 “ +“ 类似(进程仍然拥有超级用户的身份),不同之处在于仅忽略User=,Group=,SupplementaryGroups=选项的设置,而例如名字空间之类的其他限制依然有效。注意,当与DynamicUser=一起使用时,将会在执行该命令之前先动态分配一对 user/group ,然后将身份凭证的切换操作留给进程自己去执行。 | 
| “ !!“ | 与 “ !“ 极其相似,仅用于让利用 ambient capability 限制进程权限的单元兼容不支持 ambient capability 的系统(也就是不支持AmbientCapabilities=选项)。如果在不支持 ambient capability 的系统上使用此前缀,那么SystemCallFilter=与CapabilityBoundingSet=将被隐含的自动修改为允许进程自己丢弃 capability 与特权用户的身份(即使原来被配置为禁止这么做),并且AmbientCapabilities=选项将会被忽略。此前缀在支持 ambient capability 的系统上完全没有任何效果。 | 
- RestartSec - 设置在重启服务(Restart=)前暂停多长时间。 默认值是100毫秒(100ms)。 
 如果未指定时间单位,那么将视为以秒为单位。 例如设为”20”等价于设为”20s”。
- TimeoutStartSec - 设置该服务允许的最大启动时长。 如果守护进程未能在限定的时长内发出”启动完毕”的信号,那么该服务将被视为启动失败,并会被关闭。 如果未指定时间单位,那么将视为以秒为单位。 
- TimeoutStopSec - 此选项有两个用途: - (1)设置每个 ExecStop= 的超时时长。如果其中之一超时, 那么所有后继的 ExecStop= 都会被取消,并且该服务也会被 SIGTERM 信号强制关闭。 
 如果该服务没有设置 ExecStop= ,那么该服务将会立即被 SIGTERM 信号强制关闭。- (2)设置该服务自身停止的超时时长。如果超时,那么该服务将会立即被 SIGTERM 信号强制关闭。 
 如果未指定时间单位,那么将视为以秒为单位。
- TimeoutSec - 一个同时设置 TimeoutStartSec= 与 TimeoutStopSec= 的快捷方式。 
- RuntimeMaxSec - 允许服务持续运行的最大时长。 如果服务持续运行超过了此处限制的时长,那么该服务将会被强制终止,同时将该服务变为失败(failed)状态。 - 注意,此选项对 Type=oneshot 类型的服务无效,因为它们会在启动完成后立即终止。 默认值为 “infinity” (不限时长)。 
- WatchdogSec - 设置该服务的看门狗(watchdog)的超时时长。 看门狗将在服务成功启动之后被启动。 - 默认值”0”表示禁用看门狗功能。设为”20”等价于设为”20s”。 
- Restart - 当服务进程 正常退出、异常退出、被杀死、超时的时候, 是否重新启动该服务。 - no(默认值):退出后不会重启 
 on-success:只有正常退出时(退出状态码为0),才会重启
 on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启
 on-abnormal:只有被信号终止和超时,才会重启
 on-abort:只有在收到没有捕捉到的信号终止时,才会重启
 on-watchdog:超时退出,才会重启
 always:不管是什么退出原因,总是重启
 Restart设为on-failure,表示任何意外的失败,就将重启sshd。如果 sshd 正常停止(比如执行systemctl stop命令),它就不会重启。
- RemainAfterExit - 当该服务的所有进程全部退出之后, 是否依然将此服务视为活动(active)状态。 默认值为 no 
- GuessMainPID - 在无法明确定位 该服务主进程的情况下, systemd 是否应该猜测主进程的PID(可能不正确)。 - 该选项仅在设置了 Type=forking 但未设置 PIDFile= 的情况下有意义。 - 如果PID猜测错误, 那么该服务的失败检测与自动重启功能将失效。 默认值为 yes 
- PIDFile - 该服务PID文件的路径(一般位于 /run/ 目录下)。 强烈建议在 Type=forking 的情况下明确设置此选项。 - 如果设为相对路径,那么表示相对于 /run/ 目录。 systemd 将会在此服务启动完成之后,从此文件中读取主服务进程的PID 。 - systemd 不会写入此文件,但会在此服务停止后删除它(若仍然存在)。 - PID文件的拥有者不必是特权用户, 但是如果拥有者是非特权用户,那么必须施加如下安全限制: - (1)不能是一个指向其他拥有者文件的软连接(无论直接还是间接); - (2)其中的PID必须指向一个属于该服务的进程。 
- BusName - 设置与此服务通信 所使用的 D-Bus 名称。 在 Type=dbus 的情况下 必须明确设置此选项。 
- [Install] 区块:定义如何安装这个配置文件,即怎样做到开机启动。
- WantedBy - 表示该服务所在的 - Target。- Target 的含义是服务组,表示一组服务。 
一个示例
test.service
| 1 | [Unit] | 
test.sh 
| 1 | 
 | 
注册服务实例
配置文件目录
systemctl脚本目录:/usr/lib/systemd/	=>	/etc/systemd/
系统服务目录:/usr/lib/systemd/system/	=> /etc/systemd/system/
用户服务目录:/usr/lib/systemd/user/	=> /etc/systemd/user/
在/etc/systemd/system/可以看到很多 *.target.wants 的文件夹
编写的 /usr/lib/systemd/system/ 在 systemctl enable *.service 之后
会根据 WantedBy 移入到相应的目录下
编写完*.servise 之后,都需要移入到相应的/etc/systemd/文件夹下,如/etc/systemd/system/
然后在通过 systemctl 命令 运行/启动
开机启动
- 将 - *.service移动到- /etc/systemd/system/下
- 设置开机启动,可以看相关的输出判断是否成功 - $ systemctl enable *.service
- 也可以先单独执行,判断是否能正常运行 - systemctl start *.service
相关命令
| 1 | # 重载系统服务: | 
| 1 | 
 | 






