常用命令(Linux)
sed 命令
sed -i "s/source/dst/g" file
对于一些特殊字符,则使用 # 字符sed -i "s#source#dst#g" file
插入一段字符在文件首行sed -i "1i/test code" file
screen 命令
新建一个 Screen 会话screen -S screen_session_name
将当前 Screen 放到后台
Ctrl+A+D
查看已存在的会话screen -ls
唤醒一个会话screen -r screen_session_name
强制唤醒一个会话?screen -rx screen_session_name
ethtool 命令
用于获取以太网卡的配置信息,或者修改这些配置ethtool eth0 查看网卡速率ethtool -p eth0 实现 eth0 网卡 LED 灯闪 用于区别不同网卡的物理位置ethtool -i eth0 查看网卡驱动信息
命令行配置网络ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
more 命令
more 是一个文本查看命令,类似于 cat 命令,区别是 cat 不能翻页,只能查看前一页,对于小的文本来说没什么关系,但是对于大文本,例如很大的log 文件就无能为力了,这时候 more 就派上用场了。more file 这是基本使用 按 空格键 翻页 按 q 键退出 按 b 键返回前页
Liunx 时间同步命令
免安装指令ntpd -n -q -p 0.asia.pool.ntp.org
使用 ntpdatentpdate asia.pool.ntp.org
定时对时0 23 * * * ntpdate asia.pool.ntp.org >> /var/log/ntpdate.log
使用htpdateapt-get install htpdatehtpdate -a google.com
参考:https://askubuntu.com/questions/429306/ntpdate-no-server-suitable-for-synchronization-found
Curl 命令简述
将文件下载的本地curl -O file_name http://localhost.com/file
OpenWRT 安装 nohup 命令
opkg install coreutils-nohup
no crontab for root
新装的 centos 6.8 没有 cron 任务
需要先执行 crontab /etc/crontab
来源:https://stackoverflow.com/questions/26472855/crontab-on-centos-6-5-not-working
Linux 使用 rz,rz 传输文件
安装lrzszapt-get install lrzsz
运行 rz 就是将本地文件上传到远程服务器上
运行 sz file 就是将远程服务器上某文件下载到本地
注意:某些终端不支持这两个命令 如 putty ,请使用 Xshell 等这样的工具
更改pip为国内的源
linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url至tuna,内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simplevim查找
在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。
Linux查看系统发行版本
cat /etc/issue 或者lsb_release -a或者cat /etc/redhat-release(针对redhat,Fedora)
OpenWRT备份数据
备份数据
tar -czvf /tmp/overlay_xxx.tar.gz /overlay
恢复数据
先删除,再写入rm -rvf /overlay/*cd / && tar -xzvf /tmp/overlay_xxx.tar.gz
tar命令
| 命令 | 英文释义 | 释义 |
|---|---|---|
-c/-x | create/extract | 打包/解包 |
-v | verbose | 显示打包/解包的详细过程 |
-f | file | 表示file |
-z | gzip/ungzip | 通过gzip指令处理备份文件 |
zip命令
将/home/html/这个目录下所有文件和文件夹打包为当前目录下的 html.zip
zip -q -r html.zip /home/html
# -q 不显示指令执行过程
# -r 递归处理,将指定目录下的所有文件和子目录一并处理来源:https://www.runoob.com/linux/linux-comm-zip.html
华为服务器iMana下发测试告警
ipmcset -t sensor -d test -v "PS1 Status" 0xFFFF
模拟电源故障ipmcset -t sensor -d test -v "PS1 Status" stop
模拟电源故障恢复ipmcset -d reset
重启iMana服务,此动作不会影响OS系统
ubuntu 清理
# 清理 apt 缓存
apt-get clean
apt-get autoclean
apt-get autoremove
# 清理已删除的软件包
# 显示所有已删除、但可能在系统上留下配置文件的软件包的列表(如果有的话)
dpkg -l | awk '/^rc/ { print $2 }'
# 一次性清除它们
apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
# 或者使用 aptitude 替代
aptitude search '~c'
aptitude purge '~c'
# 删除过时的软件包
aptitude search '~o'
aptitude purge '~o'
# 查看内核情况
dpkg --get-selections| grep linux
# 删除显示为 deinstall 的内核
dpkg -P linux-image-3.5.0-51-generic参考来源:https://www.debian.org/releases/stable/mips/release-notes/ch-upgrading.zh-cn.html#for-next
shadowsocks libev 直接密钥
{
"key": "xxx"
}产生方法:head -c 32 /dev/urandom | base64 | sed 's/+/-/g; s/\//_/g;'
How to list all requests to udp sockets?
netstat -lnpu
把u换成t就是TCP
来源:How to list all requests to udp sockets?
markdown编辑器中删除线语法
<del> 我是被删除的 </del>效果: 我是被删除的
apt搜索相关安装包
apt-get update
apt-cache search 'package name'Ubuntu安全更新
一般而言,sudo apt-get upgrade安装所有更新,而不只是安全更新。
那么怎么仅安装安全更新呢?
包unattended-upgrades提供了自动安装安全更新的功能。
#安装
apt-get install unattended-upgrades
#使用
#选择启用-d命令与显示更新过程的详细日志
unattended-upgrades -d软链接
ln -s 源文件 目标文件
检查shell脚本
例如一个脚本test.sh
bash -v test.sh #显示详细信息verbose
bash -n test.sh #检查语法常见的权限表示形式
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。Linux用户组
#查看所有用户组
cat /etc/group
#查看某个用户所属用户组
groups username
#添加用户到用户组
usermod -a -G {group-name} usernameLinux命令别名
别名永久化
若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后 source ~/.bashrc
设置指令的别名
alias name='command line'
列出目前所有的别名设置
alias -pLinux 设置时区
timedatectl set-timezone Asia/Shanghai
Linux root 用户密钥登录,普通用户密码登录
正常配置root密钥登录
sshd 配置 root 密钥登录 在配置文件 PermitRootLogin:without-password
同时,通过不给普通用户添加密钥来保证无法密钥登录很危险,因为用户可以自己添加密钥,所以你最好还是将 authorized_key 所有者改为 root,再用 chattr 加上 i 属性(这是为了不让普通用户修改)参见 https://superuser.com/questions/852434/how-to-protect-authorized-keys-file
即:
chattr +i .ssh/authorized_keys
chattr +i .ssh/LINUX登录失败记录查看SSH暴力破解记录
# 命令
last #对应的日志文件/var/log/wtmp; 成功登录用户
lastb #对应的日志文件/var/log/btmp; 尝试登录信息
lastlog #对应的日志文件/var/log/lastlog; 显示最近登录信息
# 最新的登录记录在最前面,所以可以用 一下命令来查看
last | lessMTR命令
mtr --tcp --port 443 -rwc 100 -i 0.2 www.google.com
# --tcp --port 以TCP模式运行
# -r The r option flag generates the report (short for --report)
# -w The w option flag uses the long-version of the hostname so our technicians and you can see the full hostname of each hop (short for --report-wide)
# -c The c option flag sets how many packets are sent and recorded in the report. When not used, the default will generally be 10, but for faster intervals you may want to set it to 50 or 100. The report can take longer to finish when doing this
# -i The i option flag runs the report at a faster rate to reveal packet loss that can occur only during network congestion. This flag instructs MTR to send one packet every n seconds. The default is 1 second, so setting it to a few tenths of a second (0.1, 0.2, etc.) is generally helpfulDiagnosing Network Issues with MTR
OpenWRT格式化U盘
opkg update
opkg install fdisk e2fsprogs
fdisk -l #查看分区
mkfs.ext3 /dev/sda1
#或者
mkfs.ext4 /dev/sda1OpenWRT 抓包
openwrt路由下安装 tcpdump
opkg update
opkg install tcpdump电脑装wireshark和plink.exeplink.exe -ssh -pw root@@Admin88 root@192.168.8.1 "tcpdump -s 0 -U -n -i br-lan -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -
admin 是路由的密码,root是用户名 ,br-lan 的数据链路层代号,ifconfig 可以看到具体详细信息,tcpdump的指令就不多说了,看官方文档吧
Linux查看目录大小
du命令用于显示目录或文件的大小。
du会显示指定的目录或文件所占用的磁盘空间。
语法:
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]例如,查看当前所在目录
du -sh
# 返回
root@debian:~# du -sh
48M .即当前目录大小是48M
查看指定目录大小
du -h --max-depth=1 your_dest_dir这里可以调节--max-depth参数,用来控制你想要查看的目录的深度,0表示仅目标目录,1表示当前目录以及其子目录,同理2,3...表示不同的目录深度
系统加固
使用cat /etc/passwd 命令查看所有账号
用户名: 密码 : uid : gid :用户描述:主目录:登陆shell,/sbin/nologin是无法登录的

检查是否存在空口令和root权限的账号
awk -F: '$2=="!!" {print $1}' /etc/shadow再去/etc/passwd查看哪些账户是可登录的
检测root权限账号
使用命令 awk -F: '($3==0)' /etc/passwd 查看UID为零的账号,确保uid为0的账号只能是root账号
Linux 查看CPU温度
无需安装工具即可查看cat /sys/class/thermal/thermal_zone0/temp
或者直接以度为单位显示echo $[$(cat /sys/class/thermal/thermal_zone0/temp)/1000]
来源:https://www.jianshu.com/p/fcbdebbe7b3f
查看通过apt-get install安装的软件并更新单个软件包
# 列出已安装的软件包
dpkg --get-selections | grep -v deinstall
# 升级单个软件包
apt-get install --only-upgrade package_name安装Jupyter Notebook
pip3 install jupyter运行Jupyter Notebook
默认端口
jupyter notebook指定端口启动
jupyter notebook --port <port_number>一般在交互式的iPython就是为了画图和计算,所以常用命令如下:
# 导入第三方的数学扩展
import numpy as np
# 导入图形绘制功能
import matplotlib.pyplot as plt
# 在Notebook上绘制图形而不是在独立的外部窗口中绘制图形
%matplotlib inlinediff 命令比较目录不同
diff -r /data/haiwen /backup/data/haiwen-YYYY-MM-DD-HH-MM-SS如果 diff 命令没有输出,则表示目录完全相同。如果存在差异, diff 将列出这些差异。
-r选项告诉diff递归比较找到的任何子目录。- 如果命令没有返回任何输出,则表示目录之间没有差异。
计算文件 Md5 值
Windows 10:
CertUtil -hashfile yourfilename.tar.gz MD5Ubuntu 18.04:
md5sum yourfilename.tar.gzLinux 使用其他用户名运行命令
sudo command
## Run command as 'vivek' user ##
sudo -u vivek command arg1
sudo -u www-data /path/to/task arg1 arg2
## Want to gain the root shell? Try ##
sudo -i
sudo -s参考来源:Linux Run Command As Another User
评论已关闭