Unix & Linux 相关备忘。
Linux通用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 uname -alsb_release -a cat /etc/os-releasecat /proc/cpuinfo | grep 'core id' sudo lshw -class processorsudo dmidecode -t 4ncpu lscpu sftp user@host scp whatis man info sudo date --set "2021-07-01 01:00:00" sudo date -s "2021-07-01 01:00:00" dns-sd -q google.com find locate rg --files | rg py ps -eo pid,command ps aux | awk '{print $1, $2, $3, $11}' | sort -n -k3 -r | head -n 10 ls 1> output.log 2> error.log ls &> output_error.log grep abc < content grep abc < content &> out_error.log grep xxx < input.txt | sort grep -rnw 'path/to' -e 'pattern' grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern" grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern" grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/search/' -e "pattern" nvidia-smi -l 5 watch -n 1 -d nvidia-smi sudo adduser xxxsudo deluser --remove-home xxxsu xxx sudo groupadd yyy sudo groupdel yyygroups [xxx] id [xxx] /etc/passwd /etc/group Owner/OwnerGroup/Other chown chmod setfacl -m u:username:rwx myfolder find . ! -newermt "2020-05-29 00:00:00" | xargs rm -rf find . -maxdepth 1 -type f -newermt "2024-04-26" -exec rm {} \; find folder -type f | xargs -P 128 rm -f mkdir empty_dirrsync -a --delete empty_dir/ codes_bigcodec sudo lsof -i tcp:2222 | grep ssh | awk '{print $2}' | xargs kill -9sudo fuser -k 5000/tcpssh -N -f -L localhost:3307:192.168.1.51:3306 username@host -i file
防火墙
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 systemctl status firewalld systemctl start firewalld firewall-cmd --list-ports firewall-cmd --reload firewall-cmd --zone=public --add/remove-port=80/tcp --permanent systemctl start/stop firewalld.service systemctl disable firewalld.service service iptables status service iptables stop service iptables save iptables -L -n -v iptables -F iptables -A INPUT/OUTPUT -p tcp --dport 80 -j REJECT/ACCEPT systemctl start iptabels systemctl enable iptables systemctl disable iptables
实践时可以同时使用,也可以使用其中一个(firewall-cmd是iptables在Red Hat系列发行版的抽象工具),可以的话同时配置Nginx白名单。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 firewall-cmd --list-all firewall-cmd --list-all-zones firewall-cmd --zone=public --add-port=<external_port>/tcp --permanent firewall-cmd --permanent --add-source=<external_host> --zone=public --add-service=http firewall-cmd --zone=internal --remove-source=121.41.67.83 --permanent firewall-cmd --zone=internal --add-port=<internal port1>/tcp --permanent firewall-cmd --zone=internal --add-port=<internal port2>/tcp --permanent firewall-cmd --reload firewall-cmd --zone=public --remove-service=ssh --permanent firewall-cmd --zone=public --remove-port=1-65535/tcp --permanent firewall-cmd --reload firewall-cmd --zone=public --add-port=1234/tcp --permanent firewall-cmd --reload
保持所有其他端口关闭。
1 2 3 4 5 iptables -P FORWARD DROP iptables -A INPUT -p tcp --dport <external port> --src <whitelist host1> -j ACCEPT iptables -A INPUT -p tcp --dport <external port> -j DROP iptables -L -n -v service iptables save
关掉「转发」,设置白名单可访问,其他全部拒绝。上面的设置也可以通过添加一个来实现:
1 2 3 4 iptables -N <custom_name> iptables -A <custom_name> --src <whitelist host1> -j ACCEPT iptables -A <custom_name> -j DROP iptables -I INPUT -m tcp -p tcp --dport <external port> -j <custom_name>
Nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 sudo semanage port -l | grep http_port_tsudo semanage port -a -t http_port_t -p tcp 8000allow 45.43.23.21; allow 44.23.13.10; deny all; server { allow 45.43.23.21; deny all; server_name: www.host.com; location /api/ { allow 45.43.23.0/24; deny all; proxy_pass http://127.0.0.1:8000; proxy_pass http://127.0.0.1:8000/; } }
proxy_pass 在是否有/的情况下工作方式不同:
白名单可以设置在任意位置,表示不同的scope配置。
SSH
1 2 3 4 vim /etc/ssh/sshd_config AllowUsers username@whitelist_ip1 username@whitelist_ip2 ... sudo systemctl restart sshd
Centos自定义安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 yum search https://pkgs.org/ yumdownloader --destdir ~/rpm --resolve vim-common cd /path/to/your/centos && rpm2cpio /path/to/x.rpm | cpio -id export PATH="/usr/tmp/centos/usr/sbin:/var/tmp/centos/usr/bin:/var/tmp/centos/bin:$PATH " export MANPATH="/var/tmp/centos/usr/share/man:$MANPATH " L='/lib:/lib64:/usr/lib:/usr/lib64' export LD_LIBRARY_PATH="/var/tmp/centos/usr/lib:/var/tmp/centos/usr/lib64:$L "
Raspberrypi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 lscpu free -h free -g lspci | grep -e "NVIDIA" sudo fdisk -llsusb sudo raspi-configsudo rpi-updatevcgencmd measure_temp vcgencmd measure_volts core vim /etc/init.d/test sudo service test start sudo update-rc.d cron defaults bluetoothd -v systemctl status[start/stop/enable] bluetooth bluetoothctl list scan on devices sudo hciconfig hci0 up[down] hcidump raspistill -o image.jpg raspivid -o video.h264 -t 10000 pstree
Errors