常用易忘记命令

AWS EC2 Debian登录后切换到root用户

sudo -s

nodepadd++ 模糊查找替换

例如要替换sql中的所有AUTO_INCREMENT= 值为1,如果新从数据库导出的结构,该值因为是自增,一般每个表的值会不一样,想将sql导入一个新库,同时让该值设置为1。


CREATE TABLE `canal_jsc_bill_batch` (
  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  ...
  KEY `idx_State` (`State`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=134191 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='物流商汇款批次表';

CREATE TABLE `canal_jsc_bill_info` (
  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  ...
  KEY `idx_BatchSN` (`BatchSN`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1228689 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='对账单表';

切换查的模式为“正则表达式”。用\d来匹配数字

因为不知道最长的数字有多少个,可以先把\d的个数设置多一点,当达到某个长度无法查询出结果时,则表示超过了数字的长度,然后从长度减一开始查找替换。直至长度为一,全部完成替换

其它匹配符号

符号
解释

\s

匹配空格. 注意,会匹配标记的末尾. 使用 [[:blank:]] 来避免匹配新一行。

\S

匹配非空白

\w

匹配单词字符

\W

匹配非单词字符

\d

匹配数字字符

\D

匹配非数字字符

\b

匹配单词边界. ‘\bW\w+’ 找到W开头的单词

\B

匹配非单词边界. ‘\Be\B+’ – 找到位于单子中间的字母’e’


Linux 手动释放内存

drop_caches的值可以是0-3之间的数字,代表不同的含义: 0:不释放(系统默认值) 1:释放页缓存 2:释放[[dentries和inodes]] 3:释放所有缓存

有时在释放内存后,想将drop_caches的值改回0,会发现报如下错误

实际上只能使用值 1,2 和 3。没有值 0。启动清除缓存的触发器之后,缓存将立即再次开始缓存。


shell 批量注释

:<< + 一个字符串来标识注释的开头和结尾。则中间部分会全部注释。

延伸用法:

: 表示为空命令,即什么都不做,类似Python中的pass

<< 可以用做菜单,例如如下脚本执行后会输出1 2 3条内容


#ubuntu

ubuntu18.04 server 手动配置静态IP,使用netplan 严格注意yaml格式

改好配置之后


linux正在运行的前台脚本切换到后台


有多个命令要写入同一文件

可以精简为


shell中,引用某个命令的结果

建议使用$(),而不是`。同时$()建议用双引号引起来,防止命令被空格分割。不过在ubuntu上测试发现加上引号会影响for循环逐行读取


shell中切换目录时,为防止目录不存在,导致后续命令执行错误

可以加上 ||。跟 && 的意思相反,此外,该用法还适用其它命令

linux 用[[ls命令–显示指定工作目录下的内容及属性信息|ls命令]]查看当前目录下文件大小,还可以用[[du命令-统计文件大小]]


https://www.google.com/ncrarrow-up-right

NCR: no country redirect,google 的 url 参数,不根据国家位置重定向。


linux删除带特殊字符的文件

使用绝对路径加TAB补全文件名,例如tmp目录有一个--.xls文件


Linux 踢出登录用户

  • w # 查看用户操作命令

  • who -H # 查看用户登录地址及时间

  • pkill -u username # 踢出指定的所有用户

  • pkill -kill -t pts/0 # 根据用户访问进程踢出指定用户


[[yum命令]]安装选择版本


linux 下通过修改IFS来调整系统默认命令分隔符。可以用来处理linux中文件名有空格的问题。


#tar命令

[[Linux命令/tar命令–打包和备份的归档工具|tar命令]] 打包放到指定目录下

环境说明,需要打包的目录在 /tmp/ 下名为 test,打包后的压缩包放到 /usr/src/目录下

如果不加-P 或者 -P 参数在 -f 前,那就会报如下错误,虽然不影响打包结果,但说明命令格式是有误的。

其它用法,参考[[Linux命令/tar命令–打包和备份的归档工具]]


shell 写成一行

每个命令之间用;隔开

while 和 for

if

for循环写成一行,每行之间用英文分号;隔开即可

例:以下a变量存储的结果为登录系统失败的IP,通过for循环依次打印出来。


在centos7中增加脚本开机启动的两种常用的方法:

  1. 修改/etc/rc.d/rc.local文件并修改配置

  2. 脚本放到/etc/rc.d/init.d目录下并进行配置

rc.local的用法

以linux下指定sun用户在linux开机时执行/home/sun/startrun.sh为例: 以root登录linux 执行vi /etc/rc.d/rc.local 在文档末尾添加一行语句:su sun -c "/home/sun/startrun.sh" 保存rc.local即可。

rc.local里面的命令开机自启不生效的原因:

/etc/rc.d/rc.local 文件默认没有可执行权限


dirname去除文件名中的非目录部分,例如:

[[uniq去重命令]]


1、利用Linux wheel组限制只有指定用户可以使用su提权至root

Linux系统下wheel相当于是一个管理员组,配合相应的配置文件可以指定只有该组的用户才能使用su提升至root权限。如果不修改配置文件,跟普通用户组一样

操作步骤


linux挂载windows共享目录

这个命令使得自己搭建的FTP要共享某个目录的时候变得特别方便。如果要取消mount用命令:

如果mount --bind 也想写入fstab中的话格式如下:


centos6如何增加一个服务:

服务脚本必须存放在/etc/ini.d/目录下;放在该目录下的服务脚本即可使用service name start|stop|restart 来控制



启动 bind 时,需产生 rndc.key 文件,但长时间无响应

解决办法,建议先手动添加 rndc.key 文件 记得之前版本中, bind 默认会安装该文件,但导致每台机器 key 文件一致 可通过下面先方法手动生成文件

之后启动 bind 服务一切正常


linux 记录命令时间


批量结束同一程序进程

以下为批量结束名为webbench的进程,cut -c 9-15 显示第9到15位的字符(也就是PID)。xargs命令用于读取前面的PID,并执行后面的kill命令


centos 7.3直接复制yum源文件到其它服务器,提示以下错误

是因为/var/cache/yum/x86_64/7/目录下没有对应的文件,要一并复制过去


Linux 配置http proxy


给rm 命令加一个回收站

回收站位置,以root为例,在/root/Trash目录下 为了防止长时间不清空,导致回收站文件过多,可以通过crontab来定期清理


生成随机字符串的几种方法


tomcat之一:指定tomcat运行时JDK版本

修改$TOMCAT/bin/setclasspath.sh,在最前面加入以下两行(tomcat8.5)

Tomcat通过%D或%T统计请求响应时间

server.xml使用配置方式

  • %D 官方解释:Time taken to process the request, in millis,处理请求的时间,以毫秒为单位

  • %T 官方解释:Time taken to process the request, in seconds,处理请求的时间,以秒为单位

  • %F 官方解释:Time taken to commit the response, in millis,提交响应的时间,以毫秒为单位

java 环境变量配置

Linux环境下java项目后后台登录不了,加入以下环境变量


查找、删除符合条件的文件

[[tail命令]]

例如,有个目录下每天会产生一个.log文件,现需要每天自动删除目录下超过7天的.log日志 思路:过滤出包含log关键字的文件名,并记录行数, 用-gt 判断是否大于7,如果大于7,则用tail -n +8 (用tail 从结果的第8行开始显示)筛选出日志名称,并用xargs 调用该结果,交给/usr/bin/rm -rf 进行删除 if [ ls -l | grep log | wc -l -gt 7 ]; then ls -lt | grep log | tail -n +8 | xargs /usr/bin/rm -rf fi

更合理的方式应该是用[[find命令–查找和搜索文件|find命令]]来判断

[[head命令]]

shell整数比较

  • -eq # 等于;等于为true,不等于为flase

  • -ne # 不等于;不等于为true,等于为flase

  • -gt # 大于;大于为true,小于或等于为flase

  • -lt # 小于;小于为true,大于或等于为flase

  • -ge # 大于等于;大于等于为true,小于为flase

  • -le # 小于等于;小于等于为true,大于为flase


SWAP分区临时开关设置

永久关闭设置


linux登录提示信息修改


最后更新于