Linux小技巧汇总
1.超时不操作自动退出登录TMOUT
|
|
查看是否生效
|
|
生效了!!!不操作等待90s会自动退出当前用户!!
如何取消呢?
只要将/etc/profile
文件中TMOUT=90
删除,然后退出使之生效。再次测试即可。
2.MNAP端口扫描
扫描系统版本:
nmap -O 目标主机
nmap -sV –script=banner 目标主机
快速扫描端口是否开放
nmap -p 端口号 -T4 目标主机
扫描默认1000个常见端口
nmap 目标主机
3.网络瓶颈测试工具
客户端
|
|
服务端
|
|
电子书集合:
|
|
4.Linux下不能连接ppa.launchpad.net的问题(中科大软件源)
每个ppa都会在/etc/apt/sources.list.d/目录下创建一个list文件,修改:
|
|
将文件中http://ppa.launchpad.net替换为https://launchpad.proxy.ustclug.org,如下所示:
|
|
更新源
|
|
5.查找指定文件中指定内容
|
|
使用这条命令查询,结果返回时间很短。
6.避免执行类似于 curl | sh 的命令
|
|
它的功能是从对应的 URL 获取脚本内容后,直接用 sudo bash
去执行。但是从安全性的角度这是不恰当的,因为网络上的脚本有可能包含恶意内容,直接执行可能会对系统带来安全风险。因此相关命令修改为了首先下载脚本到文件中(wordpress.sh
文件),然后再执行。如果对脚本内容有疑虑,则可以阅读脚本内容,检查其是否和你的预期相一致。
所以可以将以下命令更改为:
|
|
然后执行
|
|
7.流行的 Linux 发行版包管理器命令以及命令操作内容的对应关系
|
|
8.tldr 软件
通常,软件手册中的内容十分繁多,如果只是希望能够快速了解软件的常用用法,可以使用 tldr
软件。
tldr
软件中包含有一个由社区维护的精简版文档,通过几个简单的例子让用户可以快速地一窥软件的使用方法。
安装
|
|
使用
输入 tldr tar
的样例:
root@peng-VirtualBox:~# tldr tar
tar
归档实用程序。
通常与压缩方法结合使用,例如 gzip 或 bzip2.
更多信息:https://www.gnu.org/software/tar.
- 创建存档并将其写入文件:
tar cf 目标文件.tar 路径/到/文件1 路径/到/文件2 ...
- 创建一个 gzip 压缩文件并将其写入文件:
tar czf 目标文件.tar.gz 路径/到/文件1 路径/到/文件2 ...
- 使用相对路径从目录创建一个 gzip 压缩文件:
tar czf 目标文件.tar.gz --directory=路径/到/目录 .
- 详细地将(压缩的)存档文件提取到当前目录中:
tar xvf 源文件.tar[.gz|.bz2|.xz]
- 将(压缩的)存档文件解压缩到目标目录中:
tar xf 源文件.tar[.gz|.bz2|.xz] --directory=目标目录
- 创建压缩存档并将其写入文件,使用文件扩展名自动确定压缩程序:
tar caf 目标文件.tar.xz 路径/到/文件1 路径/到/文件2 ...
- 详细列出 tar 文件的内容:
tar tvf 源文件.tar
- 从存档文件中提取与模式匹配的文件:
tar xf 源文件.tar --wildcards "*.html"
9.非对称加密
GPG 签名是非对称密码体系的一个例子。这里,软件包发布者有两把密钥:公钥(供用户公开下载)和私钥(必须妥善保存,不能让别人知道)。发布者使用私钥对软件包签名后,用户可以用公钥验证软件包确实为该发布者发布,且未被篡改。
10.进程
优先级:
nice(NI)
范围:[-20,19]
默认值:0
数值越大,优先级越低。
priority(PRI)
计算公式:PRI = NI + 20
nice值调整:
|
|
在正常运行的 Linux 系统中,我们可能会发现有些进程的 PRI 值是 RT,或者是负数。这表明对应的进程有更高的实时性要求(例如内核进程、音频相关进程等),采用了与普通进程不同的调度策略,优先级也相应更高。
|
|
进程状态表:
状态 | 缩写表示 | 说明 |
---|---|---|
Running | R | 正在运行/可以立刻运行 |
Sleeping | S | 可以被中断的睡眠 |
Disk Sleep | D | 不可被中断的睡眠 |
Traced / Stopped | T | 被跟踪/被挂起的进程 |
Zombie | Z | 僵尸进程 |
后台运行进程不受signup影响
nohup
|
|
在需要屏蔽 SIGHUP 的程序前添加 nohup,则运行时的输出将被重定向到 nohup.out,也可以通过重定向手段自定义输出的文件。
孤儿进程:父进程先于子进程退出,此时子进程为孤儿进程(orphan)。
僵尸进程:子进程先退出,父进程未作出回应(wait),此时子进程为僵尸进程(zombie)。
孤儿进程(即留下的子进程)由操作系统回收,交给 init「领养」。
僵尸进程的进程资源大部分已释放,但占用一个 PID,并保存返回值。系统中大量僵尸进程的存在将导致无法创建进程。
11.定时任务
crontab配置教程:
|
|
12.日志
使用 journalctl
查看日志。
某个服务的日志
journalctl
的-u
参数可以指定 unit,例子如下:$ sudo journalctl -u ssh # 查看 ssh 服务的日志
某个正在运行的服务正在输出的日志
在第一条的基础上,可以指定
-f
参数,以获取正在输出的日志:$ sudo journalctl -u ssh -f
按下 Ctrl + C 退出输出即可。
系统正在输出的日志
$ sudo journalctl -f
系统日志对于调试系统状态来说是非常有用的信息。
上一次启动到关机的所有日志
$ sudo journalctl -b -1
-b
参数表示 boot(启动),-1
表示上一次启动。如果不添加-1
参数,则默认为当前启动的日志。
13.下载工具
wget
批量下载 filelist.txt 中给出的链接:
$ wget -i filelist.txt
安装 oh-my-zsh:
|
|
curl
输出必应主页的代码:
$ curl "http://cn.bing.com"
使用重定向把必应页面保存至 bing.html
本地:
$ curl "http://cn.bing.com" > bing.html
也可以使用 -o
选项指定输出文件:
$ curl -o bing.html "http://cn.bing.com"
下载 USTCLUG 的 logo:
$ curl -O "https://ftp.lug.ustc.edu.cn/misc/logo-whiteback-circle.png"
只展示 HTTP 响应头内容:
$ curl -I "http://cn.bing.com"
14.文本处理
sed
对于大多数用户来说,最常用 sed
的场合是替换软件源的时候。在阅读了上面的示例之后,以下例子就很简单了。
|
|
15.在linux下编译windows程序
hello.c
|
|
这里使用 mingw 来进行交叉编译。
|
|
16.history中不记录用户操作
需求:
使用下面命令更改test用户密码时,history中默认会存储明文密码,这样不安全。
|
|
解决方式:
在修改密码时,先设置:
|
|
然后再修改密码,这样就不会再看到密码了。
修改密码后想恢复记录操作输入以下命令就可以了。
|
|
注意:set 设置的效果只对当前窗口有效,对于别人打开的窗口是无效的。
完整操作如下:
|
|
17.vim下快速删除列
删除特定列的快捷方法(逐行删除)
如果你知道你需要删除哪一列的内容,并且该列的内容每行都是相同长度的,可以通过以下方法快速删除:
移动到第一行,按
Ctrl + v
进入可视块模式。使用方向键选中你想删除的列。
按
d
删除。
vim模式下快速选中数据,替换文字。
ctrl + v 进入VISUAL 模式,方向键选中文字。按英文冒号“:” s/原文字/替换后的文字。然后按enter。替换完成。
vim 显示下一个搜索结果
|
|
18.ssh免密登录(交换密钥方式)
服务端:
私钥 id_rsa
公钥: id_rsa.pub
生成公私钥
ssh-keygen
将公钥拷贝给客户端。
ssh-copy-id [email protected]
客户端:
公钥: id_rsa.pub
客户端收到公钥默认在用户目录的.ssh中
19.iptables保存规则并导入定义好的规则
使用如下命令保存当前规则:
|
|
下次开机可以导入规则:
|
|
20.递归当前文件夹内文件从大到小排序
|
|
21.yum安装软件包时,保存rpm包到本地。
我们使用yum install 命令安装软件包后,默认不会保留安装的rpm包。如果需要保留我们需要开启`keepcache=1`参数
|
|
然后保存的rpm文件路径
|
|
将找到的rpm包拷贝到/tmp目录下
|
|
22.同一台机器启动多个tomcat
tomcat启动后会监听5个端口,分别是8000、80、8005、8999、8009。
端口分析过程
|
|
使用命令筛选端口分别在哪个配置文件中,改掉就可以启动了。如果有端口冲突会抱以下错误:
|
|
可以发现80、8005、8009在同一个文件。在conf/server.xml内。
8000和8999在bin/catalina.sh。都改成和上一个tomcat不同端口后就可以启动成功了。
23.mongodb启动报错
mongo5.0以上需要cpu支持avx、avx2指令集。 使用cat /proc/cpuinfo| grep avx2 查看有没有,如果没有则会启动失败。 我使用virtualbox安装的rocky9.5系统的cpu不支持avx指令集,物理机是支持的。 参考:https://blog.csdn.net/NuOne_plus/article/details/120330419 暂时没找到原因。