Linux-Note
Table of Contents
- traceroute
- ufw
- nginx尾斜杠的坑
- Q:macOS Sonoma新增了一个功能——屏幕上的大写锁定指示器。有没有办法禁用它?
- journalctl日志
- 查看用户
- nmap
- Linux 关闭/开启密码登录(仅证书登录)
- ssh生成公私钥:
- ssh连接长时间不断开
- bashrc 里 alias 加参数如何做?
- ss-server
- ssh timeout
- chmod,chown,chgrp
- 文件分割/合并
- tcpdump
- less 乱码
- 修改主机名
- 建用户并赋予 sudo 权限
- 禁用 ping
- netstat
- mac osx 终端批量删除文件
- 查找并杀死 tomcat
- ls 命令
- du / df 命令
- mac 网关和路由
- 杀掉查询出来的进程
- pbcopy
- arp -a
- 软连接
- mac ox 终端显示 bogon 的问题
- mac 恢复 launchpad 布局
- 扩展属性@
- nslookup
traceroute
traceroute www.example.com
- 其输出会显示数据包经过的每个路由器的 IP 地址和往返时间等信息。
ufw
- Ubuntu 18.04 LTS 默认的防火墙是 ufw(Uncomplicated Firewall)。
sudo ufw status sudo ufw enable && sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443 # 对内暴露 8080 端口: sudo ufw allow in 8080 # 允许本机对外访问所有端口: sudo ufw default allow outgoing # 拒绝特定端口: sudo ufw deny 8080 # UFW 防火墙将恢复到初始的默认状态 sudo ufw reset
nginx尾斜杠的坑
Q: nginx,配置:
location / { proxy_pass http://127.0.0.1:8888/; } 访问:http:{domain}/mall-admin-abc,正常 location ^~ /mall-admin { proxy_pass http://127.0.0.1:8888/; } 访问:http:{domain}/mall-admin-abc,404了
A:来自ChatGPT的回答:
这个问题的原因在于 proxy_pass 的使用,特别是当代理到不同的 URI 时。 对于第一个配置 location /,任何请求都会被代理到 http://127.0.0.1:8888/,并且请求的 URI 部分会被直接附加到代理服务器的地址后面。因此,http://{domain}/mall-admin-abc 实际请求的是 http://127.0.0.1:8888/mall-admin-abc,因此能够正常工作。 然而,对于第二个配置 location ^~ /mall-admin,使用了 proxy_pass 同样的语法 http://127.0.0.1:8888/;。问题在于,当使用 proxy_pass 与非根位置块(例如 location /something)时,如果 proxy_pass 指定的是带有尾随斜杠的地址,会导致请求的 URI 被映射至代理目标的根路径,而忽略了源请求中 URI 的匹配部分(即 /mall-admin)。 为了修复这个问题,您可以移除 proxy_pass 目标 URL 末尾的斜杠(如果您的目标目录结构不需要),任何匹配的 location 块的 URI 将会透传给代理地址。这样,http://{domain}/mall-admin-abc 请求会正确地代理到 http://127.0.0.1:8888/mall-admin-abc,以下是修正后的配置示例: nginx server { # ...其他配置可能存在... location ^~ /mall-admin { proxy_pass http://127.0.0.1:8888; # 确保不要在代理URL最后加斜杠 # 其他代理配置如上面的示例... } # ...其他 location 配置... } 确保在做出更改后,运行 nginx -t 命令测试配置文件的语法,然后使用 nginx -s reload 或者 service nginx reload(根据您的系统)来重载配置。这样应该能够解决您遇到的 404 问题。
Q:macOS Sonoma新增了一个功能——屏幕上的大写锁定指示器。有没有办法禁用它?
sudo mkdir -p /Library/Preferences/FeatureFlags/Domain sudo /usr/libexec/PlistBuddy -c "Add 'redesigned_text_cursor:Enabled' bool false" /Library/Preferences/FeatureFlags/Domain/UIKit.plist
journalctl日志
//检查当前journal使用磁盘量 journalctl --disk-usage // 清理方法可以采用按照日期清理,或者按照允许保留的容量清理 journalctl --vacuum-time=2d journalctl --vacuum-size=500M
查看用户
cat /etc/passwd | cut -f 1 -d :
注:| 是管道,把cat的输出传给cut处理;后面的cut取出每一行的以:分割的第一栏
/etc/passwd 文件存放的是用户信息.由六个分号组成的7个信息,分别是:
- 用户名 (magesh): 已创建用户的用户名,字符长度 1 个到 12 个字符。
- 密码(x):代表加密密码保存在 `/etc/shadow 文件中。
- 用户 ID(506):代表用户的 ID 号,每个用户都要有一个唯一的 ID 。UID 号为 0 的是为 root 用户保留的,UID 号 1 到 99 是为系统用户保留的,UID 号 100-999 是为系统账户和群组保留的。
- 群组 ID (507):代表群组的 ID 号,每个群组都要有一个唯一的 GID ,保存在 /etc/group文件中。
- 用户信息(2g Admin - Magesh M):代表描述字段,可以用来描述用户的信息(LCTT 译注:此处原文疑有误)。
- 家目录(/home/mageshm):代表用户的家目录。
- Shell(/bin/bash):代表用户使用的 shell 类型。
//查看用户 cat /etc/passwd or cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more or cat /etc/passwd | cut -f 1 -d : //查看用户组 cat /etc/group //查看当前活跃的用户列表 w
nmap
##自行设置端口范围进行扫描 nmap -p22,80,7771 192.168.34.90 nmap -p1-9999 192.168.34.90
Linux 关闭/开启密码登录(仅证书登录)
vim /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys #默认PasswordAuthentication 为yes,即允许密码登录,改为no后,禁止密码登录 PasswordAuthentication no 重启服务 service sshd restart
ssh生成公私钥:
- ssh-keygen -t [rsa|dsa]
- 根据提示起名(例子:ykyk),不输密码
- 生成2个文件:ykyk 和 ykyk.pub
- 将公钥考到对方机器的用户目录下 ,并将其复制到~/.ssh/authorized_keys中(操作命令:cat ykyk.pub >> ~/.ssh/authorized_keys )
- 设置.ssh/ 目录的权限为==700==;
- 设置authorized_keys权限为600;($ chmod 600 authorized_keys)
说明:
- 生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys
- 某个机器生成自己的RSA或者DSA的数字签名,将公钥给目标机器,然后目标机器接收后设定相关权限(公钥和authorized_keys权限),这个目标机就能被生成数字签名的机器无密码访问了
ssh连接长时间不断开
- 修改系统 ssh 端配置文件:
sudo vi /etc/ssh/ssh_config ServerAliveInterval 30 //每隔 30 秒向服务器发送一个空数据包
bashrc 里 alias 加参数如何做?
alias ttt='test() { echo $1;}; test' 然后终端输入:ttt 33,就会输出 33 eg: alias lg='log() { git lg -$1; echo -e "\n";}; log'
ss-server
ssh timeout
修改自己用户目录下的.bashrc 文件,加上
export TMOUT=1000000 (以秒为单位) 然后运行: source ~/.bashrc 在/etc/ssh/sshd_config 中加入: ClientAliveInterval=60
每一分钟,sshd 都和 ssh client 打个招呼,检测它是否存在,不存时即断开连接。
chmod,chown,chgrp
- https://blog.csdn.net/zhouleiblog/article/details/9325913
- chmod #更改文件权限(rwx)
- chown #更改文件拥有者
- chgrp #更改文件所在用户组
chown
chown [-R] 账号名称 文件或目录 chown [-R] 账号名称:用户组名称 文件或目录 示例 1: [root@localhost home]# touch testfile //由 root 用户创建文件 [root@localhost home]# ls testfile –l -rw--w--w- 1 root root 0 Jun 7 19:35 testfile //文件的拥有者及拥有者级均为 root [root@localhost home]# chown yangzongde testfile //修改文件拥有者为 yangzongde [root@localhost home]# ls testfile -l -rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组仍为 root 示例 2: chown bin install.log ls -l -rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log chown root:root install.log ls -l -rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
chgrp
chgrp [-R] 用户组名称 dirname/filename ... 示例 3 [root@localhost home]# ls testfile -l -rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组为 root [root@localhost home]# chgrp yangzongde testfile //修改拥有者组为 yangzongde [root@localhost home]# ls testfile -l -rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile [root@localhost home]# chown root:root testfile // 使用 chown 一次性修改拥有者及组 [root@localhost home]# ls testfile -l -rw--w--w- 1 root root 0 Jun 7 19:35 testfile 示例 4 [root@linux ~]# chgrp users install.log [root@linux ~]# ls -l -rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log 示例 5 更改为一个 /etc/group 里不存在的用户组 [root@linux ~]# chgrp testing install.log chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~
文件分割/合并
源文件:TW-REL-4.0.8.3.zip //分割 split -b 11m TW-REL-4.0.8.3.zip tw_4083_ //合并 cat tw_4083_* > tw_4083_all.zip
tcpdump
sudo tcpdump -i ens192 host 192.168.3.130
less 乱码
export LESSCHARSET=utf-8 export LESS=Mrf
修改主机名
hostname yk #临时生效 hostnamectl set-hostname yk #永久生效 vi /etc/hostname #永久生效
建用户并赋予 sudo 权限
- https://www.cnblogs.com/leeyongbard/p/9513960.html
- https://www.linuxidc.com/Linux/2016-12/139018.htm
adduser yk passwd yk(q123456) whereis sudoers ll /etc/sudoers chmod +w /etc/sudoers vi /etc/sudoers - 在 root ALL=(ALL) ALL 下面增加 - yk ALL=(ALL) NOPASSWD: ALL chmod -w /etc/sudoers su yk # 完全删除用户 userdel -r yk # 查看是否删除干净 find / -name "*yk*"
禁用 ping
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
netstat
查看当前服务器的端口监听状态 netstat -tunl 查看已经联机的连接状态 netstat -tun 查看端口对应什么服务 netstat -antlp
mac osx 终端批量删除文件
find ./ -name "*.html" -exec rm -rf {} \; # 注意 {}和\;之间有空格 find [目录名] -name "文件名" -exec rm -rf {} \; # 搜索删除文件,例如: find / -name *.raw -exe c rm -rf {} \;
其中,
- -exec 表示后面执行命令 "{}" 表示查询到的文件名 -rf 为删除命令 rm 的参数
- r 表示递归删除
- f 表示不需要确认,两个参数可根据需要去留
查找并杀死 tomcat
- sudo kill -9 `ps -ef|grep tomcat | grep -v grep | awk '{print $2}'`
ls 命令
ls -lt # 按时间排序(默认倒序) ls -lt | tac # 按时间升序排序 ls -lSh #按大小排序(默认倒序) ls -lh #按 M 显示文件大小 ls | wc -w #查看文件数量 ls -F | grep "/$" #只显示目录 ls -al | grep "^d" #只显示目录 ls -al | grep "^-" #只显示文件 ls -l | grep "^-" | wc -l #查看文件个数 ls -l | grep "^d" | wc -l #查看目录个数 ls -Rl | grep "^-" | wc -l # 递归查看目录里面所有文件文件个数
du / df 命令
#按文件大小排序并拿出最大的 20 个 du -h ./* | sort -hr | head -20 #查看每个文件夹的大小 du -sh /* #只显示 1 层目录 du -d 1 -h #只显示 2 层目录 du -d 2 -h # 查看硬盘使用情况 df -h # 查看内存 free -h
mac 网关和路由
临时添加 | sudo route -n add -net 192.168.1.0 -netmask 255.255.255.0 192.168.0.170 | |
---|---|---|
查看 | netstat -nr | grep 170 |
外链 | https://blog.csdn.net/weixin_34356310/article/details/89777649 |
杀掉查询出来的进程
- ps -ef|grep mongo | grep -v grep | awk '{print $2}' | xargs kill -4
pbcopy
#copy id_rsa.pub 文件的内容到剪贴板: pbcopy < ~/.ssh/id_rsa.pub #粘贴剪贴板的内容 pbpaste
arp -a
查看局域网中所有使用的 ip 和 mac 地址
软连接
- sudo ln -s "/Applications/subl.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl3
- sudo ln -s "/Applications/vscode.app/Contents/Resources/app/bin/code" /usr/local/bin/vscode
mac ox 终端显示 bogon 的问题
sudo hostname yourname eg: sudo hostname Yangk
mac 恢复 launchpad 布局
- defaults write com.apple.dock ResetLaunchPad -bool true; killall Dock
扩展属性@
xattr -c filename #去除文件的扩展属性@ xattr -c -r * #去除文件夹下所有文件的扩展属性@
nslookup
$ nslookup ec2-54-222-215-38.cn-north-1.compute.amazonaws.com.cn Server: 192.168.0.1 Address: 192.168.0.1#53 Name: ec2-54-222-215-38.cn-north-1.compute.amazonaws.com.cn Address: 54.222.215.38