Learning(更新中)

learning make me happy

  1. 查看journalctl程序使用-u

    journalctl -u docker
    
  2. tcpdump查看详细包内容

     tcpdump -i fm1-mac10 -vvv tcp dst port 8001 -q -X
    
  3. 查看linux开机自启服务

    systemctl list-unit-files
    
  4. 统计py项目行数‘排除migrations文件夹

    find . "(" -name "*.py" ")" ! -path "*/migrations/*" -print | xargs wc -l 
    
  5. watch 后面加命令,动态查看命令行结果

  6. nmtui,网卡配置,不好用#

  7. lsblk,查看linux硬盘

  8. 查找大文件

     find . -type f -size +100M  # 这里是+ 不是> 
    
  9. 在cp指令前面加反斜杠可以不弹出是否覆盖的询问而直接覆盖

    cp /app/WEB-INF/com/cfg.properties /app_bak/WEB-INF/com/cfg.properties       //会询问是否覆盖
    \cp /app/WEB-INF/com/cfg.properties /app_bak/WEB-INF/com/cfg.properties      //不会询问
    
  10. C malloc内存不足会返回null

  11. yum安装brctl: bridge-utils

  12. go中int64和string之间的转化需要借助strconv包,强转会有问题

  13. ps aux |grep project_name | grep -v grep |cut -c 9-15 |xargs kill -9 //杀掉筛选出来的进程 linux

  14. 关于如何抓SNMP包

tcpdump -i any -nn port snmp -w ./snmp1.cap
tcpdump host IP地址  -w ./snmp1.cap
tcpdump  -vv -A -T snmp -s 0 "(dst port 162) or (src port 161) or (dst port 161) and (host <SpectroSERVER IP>)" -w ./snmp1.cap
tcpdump  -vv -A -T snmp -s 0 "(dst port 162) or (src port 161) or (dst port 161) " -w ./snmp1.cap
tcpdump  -i any -vv -A -T snmp -s 0 "(dst port 162) or (src port 161) or (dst port 161) " -w ./snmp1.cap
tcpdump  -i bond0.2 -vv -A -T snmp -s 0 "(dst port 162) or (src port 161) or (dst port 161) " -w ./snmp1.cap
  1. cat /proc/`pgrep python3|grep -v grep`/status 查找proc文件夹下进程名python3的pid的status文件

  2. 进程树查看

pstree -p pid
  1. strace 跟踪进程的系统调用
strace -tt -T -p pid
strace -T -e brk -p pid  只过滤brk

ltrace用法和strace基本一致 主要跟踪内核态,strace跟踪用户态 !!!目前使用ltrace时程序崩过一次 不清楚是不是这个导致的

  1. python pyinstaller打包时报错 (TypeError: an integer is required (got type bytes))
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz
  1. mysql直接在命令行查询,使用-e参数
mysql -uroot -ppasswd --default-character-set=utf8(编码 可选) -e "SELECT。。(。。sql语句)"  test(数据库名称) > test.txt (导出的文件设置)
  1. redis列表当作传输管道一次性取出所有
LRANGE key 0 -1
DEL key
  1. windows直接以管理员身份运行命令Administrator管理员用户名,pip3..为要执行命令,输入完成提示输入密码
runas /profile /user:Administrator "pip3 install -r requirements.txt"
  1. docker查看详细容器信息(网络信息、映射信息等等各种信息)
$ docker inspect  容器id/image
  1. docker时钟与宿主机同步(时区)
docker cp /usr/share/zoneinfo/ cmseasy_ubuntu: /usr/share/zoneinfo/
docker cp -L /usr/share/zoneinfo/Asia/Shanghai  cmseasy_ubuntu:/etc/localtime
  1. 动态规划第一步要做的:找出状态转移方程

  2. Fisher-Yates 洗牌算法

在遍历过程中,生成一个范围在当前下标到数组末尾元素下标之间的随机整数。然后将当前元素和随机选出的下标所指的元素互相交换。
  1. 虚拟机entering emergency mode 解决
xfs_repair -v -L /dev/dm-0
  1. 时间格式

带Z的意思是zero表示UTC标准时间,UTC时间没有时区,但是可以转化成区分时区的GMT时间
  1. linux建立tcp/udp连接
/dev/tcp/host/port
	 If host is a valid hostname or Internet address, and port is
	 an integer port number or service  name,  bash  attempts  to
	 open a TCP connection to the corresponding socket.
/dev/udp/host/port
	 If host is a valid hostname or Internet address, and port is
	 an integer port number or service  name,  bash  attempts  to
	 open a UDP connection to the corresponding socket.

可见,可使用以下shell命令发起tcp连接,
exec 9>/dev/tcp/192.168.0.136/5000

其中9为执行的文件描述符。这里>重定向符表示该文件描述符只能写入,如果想读取,可使用一下命令,
exec 9<>/dev/tcp/192.168.52.136/5000

至于关闭连接,则通过以下命令,
exec 9>&-

其中,9代表刚才创建的描述符。

关于 >&-的解释
REDIRECTION
	   ...
       Each redirection that may be preceded by a file descriptor number may instead be preceded
       by  a word of the form {varname}.  In this case, for each redirection operator except >&-
       and <&-, the shell will allocate a file descriptor greater than 10 and assign it to  var‐
       name.   If  >&-  or  <&-  is preceded by {varname}, the value of varname defines the file
       descriptor to close.
因此,也可以用以下命令关闭连接,
exec 9<&-
快速启动服务器与客户端
启动一个服务端:启动一个端口为80的服务端
# nc -l localhost 80

启动一个客户端:连接服务端的80端口
# nc localhost 80

查看连接建立情况
# netstat -natp | grep nc
  1. docker容器中启动uwsgi秒退
docker容器中启动uwsgi秒退,若用docker logs 容器 只有 [uWSGI] getting INI configuration from uwsgi.ini,无其他错误信息。那么就是 uwsgi.ini里用了daemonize 参数。该参数会使uwsgi在后台运行。
而docker容器启动时若无-d参数(用docker-compose的时候是无-d参数的),需要一个前台应用才不会自动退出。因为Docker容器仅在它的1号进程(PID为1)运行时,会保持运行。如果1号进程退出了,Docker容器也就退出了。
所以这种情况删掉daemonize 参数即可。
大部分的docker容器无错误信息自动退出的情况都是因为无前台应用维持容器运行
  1. ss命令(类似netstat命令,但是效率更高)
ss -l 显示本地打开的所有端口             
ss -pl 显示每个进程具体打开的socket                                             
ss -t -a 显示所有tcp socket                                          
ss -u -a 显示所有的UDP Socekt                                              
ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接 
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接 
ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程              
ss -s 列出当前socket详细信息:
  1. mysqldump导出数据时只导出数据或表结构
导出的时候
通过--no-data只导出表结构
通过--no-create-info只导出数据

warn 此种方式导入有问题,如果表结构有变更,目前暂时不用
  1. go程序编译时不显示cmd界面
    go build -ldflags -H=windowsgui来隐藏命令行窗口。例如,如果你的文件名为main.go,则可以运行以下命令:
sh
go build -ldflags -H=windowsgui main.go

这将生成一个没有命令行窗口的可执行文件。

posted @ 2020-08-28 13:35  seas  阅读(166)  评论(0编辑  收藏  举报