Linux常用命令总结
由于工作中使用AWS服务器比较多,版本为Ubuntu16.04和Ubuntu18.04,linux使用的也比较多,将常用的命令总结一下。
新建用户&添加sshkey
sudo useradd -r -m -s /bin/bash username
sudo su - username
mkdir .ssh
chmod -R 700 .ssh
cd .ssh
touch authorized_keys
vim authorized_keys
将publickey放入
查用户及所属组&查组下的用户
id username
cat /etc/group
给用户sudo权限
增加sudoers文件的写权限:sudo chmod u+w /etc/sudoers
vim /etc/sudoers 找到root ALL=(ALL:ALL) 在下面添加
username ALL=(ALL:ALL) NOPASSWD:ALL
再去除sudoers文件的写权限:sudo chmod u-w /etc/sudoers
查看IP端口是否畅通
telnet XXX.XX.XX.XX 端口号
查看端口占用情况,确定进程
netstat -anp | grep 端口号 或者 lsof -i:端口号
查看到对应pid后
ps -aux | grep pid
查看到哪个进程使用,判断是否需要kill
kill -9 pid
查看服务器防火墙
sudo ufw status 查看防火墙状态
开启端口或服务
sudo ufw allow 6000 允许外部访问6000端口
sudo ufw allow from XXX.XX.XX.XX 允许此IP访问所有的本机端口
sudo lsof -i:6000 查看应用是否监听
说明:中国区的AWS的80,8080,443端口等需要备案,直接开是不通的;如果服务器部署在AWS,系统自带的防火墙可以直接关掉,没有意义,通过AWS安全组来统一控制入站出站
查看磁盘空间大小&文件夹下的每个文件大小
df -hl
du -sh * (查看单个文件可以把*替换成文件名)
查看文件权限及文件拥有者
ll(等同于ls -al)
查看csv文件
安装csvtool sudo apt-get install csvtool
csvtool readable filename | view -
screen命令后台执行
screen -S XXX 新开窗口,在这个窗口下执行文件
python3 XXX.py
ctrl + a,d 执行退出命令
screen -ls
‘Attached’表示这个session是活动的,3677表示此screen会话的进程号,可以发现一直在后台运行了如果想连接上这个session,执行命令(后面的数字根据screen -ls可以查看到)
screen -S XXX(或进程号)-X quit 关闭一个screen
screen -ls 查看一下是否还有这个进程
crontab定时执行
crontab -e
10 0 * * * cd /home/fanweinan && python3.5 -u timing.py 每日0点10分执行timing.py文件(这个时间是服务器时间,可以用date查询服务器时区时间)
*/30 * * * * cd /home/fanweinan && python3.5 -u disk.py 每半小时执行disk.py文件
2s执行一次
方法一(比较麻烦,需要写30个语句)
-
-
-
-
- cd /home/fanweinan && python3.5 test.py
-
-
-
-
-
-
-
- sleep 2; cd /home/fanweinan && python3.5 test.py
-
-
-
-
-
-
-
- sleep 4; cd /home/fanweinan && python3.5 test.py
…
- sleep 4; cd /home/fanweinan && python3.5 test.py
-
-
-
方法二(shell脚本实现)
vim crontab_2s.sh之后写入
#!/bin/bash step=2 #间隔的秒数,不能大于60
for (( i = 0; i < 60; i=(i+step) )); do
$(/home/fanweinan/test.py)
sleep $step
done
exit 0
运行sh脚本 source crontab_2s.sh
-
-
-
-
- /home/fanweinan/crontab_2s.sh (crontab -e写入)
-
-
-
alias
如果经常使用某个命令,或者是某个命令特别长、很难拼写,那么为这个命令起个别名,是很值得的。在创建别名以后,只要输入别名,就可以运行它所引用的命令。
在shell中输入alias可以查看所有别名
查看版本
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
Release: 16.04
Codename: xenial
改时区
查看服务器时间
date
改时区
tzselect
选择Asia,China,Beijing
复制文件到/etc目录下
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
再次查看服务器时间
date
查日志
grep 多条件查询
less test.log | grep “xxx” | grep “xxx”
按时间范围查询
举例,查询3月6号8点35分到8点39分数据
less test.log | grep “2020-03-06 08:3[5-9]”
$grep -5 ‘parttern’ inputfile //打印匹配行的前后5行
$grep -C 5 ‘parttern’ inputfile //打印匹配行的前后5行
$grep -A 5 ‘parttern’ inputfile //打印匹配行的后5行
$grep -B 5 ‘parttern’ inputfile //打印匹配行的前5行