杂项技能--小而重的积累

shell去空格

我们需要除去空行,那些空行里面可能包括空格,制表符等不可见字符,可以使用如下命令:
1.grep -v ‘^\s*$’ 1.txt

2.sed ‘/^\s*$/d’ 1.txt

3.awk NF 1.txt

shell去注释

那么如果我想把代码里所有的注释都删掉呢?
就是那些以//开头的行,可能他们前面还有空格,制表符什么的。
还有麻烦一点的,多行注释,像被/* balabala */注释起来的内容,又怎么去掉呢?

1.把以//开头的行去掉:

sed -i "/^[ \t]*\/\//d" file

2.删除行末的注释//

 sed -i "s/\/\/[^\"]*//" file

3.删除只有一行的注释 /* balabala*/

sed -i "s/\/\*.*\*\///" file

4.删除多行注释

/*
balabala
balabala
*/
sed -i "/^[ \t]*\/\*/,/.*\*\//d" $file

这里有个缺点,就是在printf(“//ddd”)也会被去掉;

shell grep 跳过一些目录

要在一个文件夹下面查找特定字符,如果有svn,就会有.svn目录,那么如何跳过?
可以使用
grep --exclude=“THIRD-PARTY-NOTICES” -nR a
grep --exclude-dir=“THIRD-PARTY-NOTICES” -nR a
不同发行版本可能有不同的输出。

python输出时默认换行

给print()加一个取消自动换行的end=““参数即可:print(line,end=””)
print(“test”,end=“”)

mysql导出表数据

##mysqldump -u用户名 -p 数据库名 [表名]> 导出的文件名,导出test数据库下users表数据
mysqldump -uroot -p test  users > test.sql

加上-c可以导出列名:

mysqldump -uroot -c request auth_user > auth_user.sql 

mysqldump --help 查看更多

python paramiko 远程输出多行到文件

可以使用EOF
组成命令:
cat << EOF > des.txt
data
EOF
即可
如:
cmd=“cat << EOF >” file_name +“\n” + data +“EOF”,执行命令即可。

windows查看端口占用,并关闭对应进程:

以管理员权限登录cmd,netstat -ano|findstr "8082",可以查看进程PID,再得到进程名关闭进程。

maven发布:

mvn clean install -Dmaven.test.skip=true,这回将包发布到代码仓库,但是如果时正式版,如果在代码仓库里有了的话就不会在次发布。

idea 找不到包:

首先检查代码仓库里是否存在对应的包,版本对不对。如果存在,查看是否依赖到,如果没有依赖到,则删除当前项目重新导入。查看设置的jetty版本是否正确。

查看机器并发量:

netstat -pnt | grep :80 | wc -l

maven打印依赖树:

mvn dependency:tree

centos6.4编译gcc8.2.0

…/configure --prefix=/usr/local/gcc-8.2.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

make && make install

编译gdb,支持TUI,支持python

…/configure --prefix=/usr/local/gdb-8.2/ --enable-tui=yes --with-python

gdb python报错:

[root@~]# gdb
Python Exception <type ‘exceptions.ImportError’> No module named gdb:
gdb: warning:
Could not load the Python gdb module from `/usr/local/gdb-8.2/share/gdb/python’.
Limited Python support is available from the _gdb module.
Suggest passing --data-directory=/path/to/gdb/data-directory.将源码目录下的文件拷贝到安装目录即可:

cp -rf /data/gdb-8.2/gdb/python/lib/gdb/* /usr/local/gdb-8.2/share/gdb/python/gdb

运行时找不到库:

将对应的目录加到LD_LIBRARY_PATH(还可以添加ldconfig寻找路径),运行时找不到头文件,将对应文件加到CPLUS_INCLUDE_PATH或者C_INCLUDE_PATH。
使用ldconfig的方法,首先要有root权限。
查看文件:/etc/ld.so.conf : include ld.so.conf.d/*.conf

指明了动态库的配置文件,也就是说会去当前目录下的ld.so.conf.d种找出所有的.conf文件来,看看这个目录下都有哪些配置文件:
在这里插入图片描述在这里插入图片描述
也就是说,找动态库的时候,会去/usr/lib64/mysql里去找。

etcd启动与检查

启动命令:

etcd --advertise-client-urls 'http://0.0.0.0:2379,http://0.0.0.0:4001' --listen-client-urls 'http://0.0.0.0:2379,http://0.0.0.0:4001'
etcd --advertise-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 --listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001

查看etcd所有的值:
curl -s http://127.0.0.1:2379/v2/keys/?recursive=true |python -mjson.tool
在这里插入图片描述
也可以使用其他命令:etcd ls /;etcd get key,获得value;如果是目录的话可以用:etcd ls /key_path

mysql远程登录

mysql -h IP -P PORT -u USR -pPWD

go语言远程调试

安装dlv:https://github.com/go-delve/delve/blob/master/Documentation/installation/linux/install.md

添加调试信息,Go 1.10 及以上版本:go build -gcflags=“all=-N -l”,Go 1.9 及以下版本 go build -gcflags=“-N -l”。也有用 -ldflags=“all=-w” 或 -ldflags=“-w” 的, 这取决于使用的 Go 版本。

启动程序时调试:

dlv --listen=:2345 --headless=true --api-version=2 exec proName (进程名)

附加到已有进程:

dlv --listen=:2345 --headless=true --api-version=2 attach PID(进程ID)

jetbrains设置:

在这里插入图片描述

md5检测程序

md5sum proName

git查看地址、tag、版本信息,更新到指定版本。

查看工程url:
git remote -v或者是git config --get remote.origin.url

查看tag版本信息:
git tag

更新到指定版本:
git checkout +版本号

命令行文件查看

在linux中使用vi、vim去查看文件的时候会出现一些问题,特别是在查看日志的时候,如果一行过长的话会导致日志显示不全。这样的话就会遗漏一些信息,使得简单的问题变得复杂。

日志查看统计shell命令

more
https://www.runoob.com/linux/linux-comm-more.html
less

https://www.runoob.com/linux/linux-comm-less.html

tail

https://www.runoob.com/linux/linux-comm-tail.html

grep

grep -n 可以显示行号
使用grep统计
grep -i “xxx”:“xxx” ./test 查找test文件里 “xxx”:“xxx"的字符。-i忽略大小写。
grep xxx -C 5 filename 查找时显示前后五行。
有时候需要查找tar.gz里的内容,如果不解压的话,可以使用命令zgrep,zcat。

nginx启动检查

配置文件:

        server {
                listen       80;
                server_name www.xxx.com;
                access_log  logPath main;
                root        /share/webroot/;
                # To allow POST on static pages
                error_page  405     =200 $uri;
                }

访问的时候出现过几次问题
1.403 Forbidden :将nginx.conf开头的user nobody改为user root;
2.curl: (7) Failed connect to www.xxx.com:443; Connection refused:没有配置https的443的端口。

mysql启动关闭命令

systemctl stop mysqld #停掉MySQL
systemctl status mysqld #查看状态
systemctl start mysqld #启动mysql

git回退本地未push到远程的代码。

1.使用git log查看本地要回退的版本号
2.回退提交记录
如果要保留本地代码使用:
	git reset [要回退的版本号]
如果不用保留本地代码
    git reset --hard [要回退的版本号]

nc传文件

.收方(服务端)(假设IP是: XXX.XXX.XXX.XXX)
监听一个端口,把接收数据重定向(或者说保存)到文件
nc  -l  8889 > recv.txt

2.发方(客户端)
请求向服务端发送文件,文件输入到这个服务端的端口
nc  XXX.XXX.XXX.XXX 8889 < send.txt

git提交时忽略指定的文件

git中在提交代码的时候显示未提交的代码时可能会有其他的一些文件:例如编译时自动生成的文件,这个时候我们只需要在git项目的根目录下修改文件:.gitignore
在这个文件里添加想要忽略得文件即可
忽略指定的文件:test.html
忽略指定类型的文件:*.html

centos7永久添加动态库路径

在/etc/ld.so.conf中添加对应路径,重启。

安装glibc后不要轻易的替换原来的,有可能会导致系统出错,这样指定一下就可以了:

export LD_PRELOAD=“/opt/glibc-2.14/lib/libc-2.14.so”

CMAKE打包:

cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -D CPACK_RPM_SPEC_INSTALL_POST=“/bin/true” -G RPM

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值