Linux日常记录

Linux日常记录

1、查看所有端口运行情况

#tcp类型端口
netstat -ntpl
#udp类型端口
netstat -nupl

通过查看端口运行情况,找到端口的PID,通过PID可以关闭进程

kill [PID]

查看端口是否被占用

netstat -anp |grep 8080
lsof -i:8080

2、ubuntu开启防火墙端口

#进入超级用户
sudo su
#开启指定端口,例如8080
iptable -I INPUT -p tcp --dport 8080 -j ACCEPT

#进入network目录
cd /etc/network/
#查看是否有iptable.up.rules,没有就输入下面指令
iptables-save >/etc/network/iptables.up.rules

#编辑iptables.up.rules
vim iptables.up.rules
#加入如下内容(其实就是仿照已经开启的端口写就可以了)
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT

$ iptables-apply
#检查程序是否运行中,端口是否开启

3、ngrok内网穿透(免费)

  1. 简单的方法:

直接在官网注册,下载ngrok的.zip文件,然后解压

#直接解压到/opt目录下
sudo unzip ngrok-stable-linux-amd64.zip /opt
#或者解压到下载的目录,再移动到/opt目录就可以了
unzip ngrok-stable-linux-amd64.zip
sudo mv ngrok /opt/
#然后进入/opt目录,输入下面命令(ngrok只是窗口名字,这个无所谓)
#这个也可以省略,直接到输入授权码那一步就可以(这个主要是为了可以后台运行)
screen -S ngrok
#screen是一个可以在多个进程之间多路复用一个物理端口的窗口管理器,下面,命令安装即可使用
sudo pacman -S screen
#或者
yay -S screen
#然后写入你帐号的授权码,因为是免费的,所以一个帐号只能开一个端口
./ngrok authtoken 你的授权码
#然后就可以把你本地的端口映射成虚拟域名了,这里以8080端口为例
./ngrok http 8080
#会弹出一个窗口,显示ngrok的链接状态、免费的随机虚拟域名以及8080端口的访问情况
#可以按下ctrl+A+D,让ngrok在后台运行
#如果显示链接失败,一般就是你的授权码的问题或者是你在其他电脑正在使用这个帐号(其实多创建几个帐号就可以了)
#其他错误,一般重启一下就好了
#如果想要一直查看端口访问情况,还是建议别在后台运行,就放在命令行窗口,方便随时查看
  1. NB的方法

用有公网IP的服务器,搭建自己的ngrok进行内网穿透,但是需要外网服务器和域名解析,然后自己搭ngrok了,过程较为繁琐,这里就不做过多介绍,网上一搜一大把。因为自己没钱买服务器,所以果断采用“白漂”的。但是免费的,是不是会有些卡顿和断连的情况,所以有条件的还是自己搭一个比较好。

4、服务器相关

  1. 上传文件

    #因为其他路径没有权限访问,所以一般先放在/tmp目录下
    scp -r 文件路径 服务器(用户@IP):/服务器路径(一般为/tmp)
    
  2. 下载文件

    #在服务器端下载到本地
    scp 服务器(用户@IP):/文件路径(/tmp/test.txt) 用户@本地公网IP:本地路径
    #在本地下载服务器文件
    scp 服务器(用户@IP):/文件路径(/tmp/test.txt) 本地保存路径
    
  3. 查看服务器图片

    #python3
    python -m http.server 8080
    #python2
    python -m simpleHTTPServer 8080
    #可以在浏览器输入服务器的ip和端口查看服务器的图片(前提:服务器8080端口防火墙打开)
    
  4. ssh免密登录

    #不要进入su用户!
    cd .ssh$ ls -al
    #需要输入的地方按回车即可
    ssh-keygen -t rsa -b 4096
    ls -al
    ssh-copy-id -i id_rsa.pub java@218.199.68.208
    #验证登陆
    ssh -i ./id_rsa java@218.199.68.208
    
  5. ssh别名登录

    #没有config就创建vim ~/.ssh/config
    #修改如下:
    $ Host feidian
    $ HostName 218.199.68.208
    $ User java$ IdentityFile ~/.ssh/id_rsa.pub
    $ IdentitiesOnly yes
    #去相应服务器上查看是否已经添加,可以删除原来的密钥记录
    vim .ssh/authorized_keys 
    
  6. 后台运行程序

    #普通的运行,后面为日志存储路径,
    java -jar demo-1.0-RELEASE.jar >demoLog.out &
    #nohup
    nohup java -jar demo-SNAPSHOT.jar >demoLog.out &
    
  7. GitLab

    #gitlab的500错误
    # 登上服务器,获取超级用户权限,进入gitlab配置目录,进行相应配置
    cd /etc/gitlab
    vim gitlab.rb
    # 发现external_url是'http://git.feidian.hzau.edu.cn.com'
    # 修改,把最后的.com去掉,更新配置即可
    # 在网上找到的命令是gitlab-ctl reconfigure执行之发现刚刚修改的gitlab.rb的数据被重置
    # 尝试多次发现show-config才是正确的
    gitlab-ctl show-config
    

5、ls命令

  1. 按文件大小排序

    ls -hlSa
    #-a: –all
    #-h: –human-readable,显示人类可读的文件大小
    #-S: 以文件大小降序方式排序
    #-r: –reverse,反向排序
    
  2. 按文件时间顺序排序

    ls -hlta
    #-t: sort by modification time,newest first,即按修改时间对文件进行降序排序
    

6、命令记录

  1. ldd [path]:查看依赖库

    ldd /usr/bin/mysqld
    #注意要写完整路径,如果写成
    ldd mysql
    会提示mysql NOT FOUND
    

7、常用快捷键

1. 命令编辑及光标移动

#删除从开头到光标处的命令文本
ctrl+u

#删除从光标到结尾处的命令文本
ctrl+k

#光标移动到命令开头
ctrl+a

#光标移动到命令结尾
ctrl+e

#光标向前移动一个单词
alt+f

#光标向后移动一个单词
alt+b

#删除一个词(以空格隔开的字符串)
ctrl+w

2. 历史命令

#历史命令快速执行
!+历史命令前的数字

#搜索执行过的命令
ctrl+r

#部分历史命令查看
fs -l

3. 实时查看日志

#实时显示日志文件内容
tail -f filename.log
#或者
#less命令查看文件内容,并使用shift+f

4. 磁盘或内存情况查看

#快速查看各挂载路径磁盘占用情况
df -h

#当前目录各个子目录占用空间大小
#指定目录深度为1,否则会递归统计子目录占用空间大小
du -h --max-depth=1 /home
#或者
du -h -d 1

#当前内存使用情况
free -h

#-h参数:以人类可读的方式呈现结果

5. 进程

#根据名称查找进程id(pid)
pgrep hello
#或者
pidof hello

#根据pid杀死进程
kill -9 pid

#根据名称杀死进程
killall hello
#或者
pkill hello

#查看进程已运行时间
ps -p pid -o lstart,etime

6. 快速目录切换

#回到上一个目录
cd -
#回到家目录
cd

7. 多条命令执行

#使用分号隔开
cd /tmp/log/;rm -rf *
#但是如果当前目录是/目录,并且/tmp/log目录不存在,那么......
bash: cd: /tmp/log: No such file or directory
#因为分号可以执行多条命令,但是不会因为前一条命令失败,而导致后面的不会执行
#所以你敢想象在/目录下执行:rm -rf *的后果吗???
#PS: rm -rf * 的力量无法想象
#解决
cd /tmp/log/&&rm -rf *

8. Git相关

1. 生成本地ssh

ssh-keygen -t rsa -C "youremail@demo.com"

2. 查看本地 git 配置

git config --list

3. 设置本地 Git 配置

git config --global user.name "your name"
git config --global user.email "youremail@demo.com"

4. 关联远程库

#如果是直接clone下来的就不需要关联了
#本地新建,用以下命令关联
git remote add origin https://github.com/Serendipity-zsh/demo.git

5. 提交记录查看

@Date 2019-09-20
#查看提交记录
git log
#查看提交记录并显示分支树
git log --all --graph
#如果分支树不统一,可以合并分支
git pull

9. DNS工具

DNS原理:http://www.ruanyifeng.com/blog/2016/06/dns.html

DNS:(Domain Name System)域名解析:根据域名查处IP地址

#域名层级结构
#主机名.次级域名.顶级域名.根域名 host.sld.tld.root
# dig命令
dig www.baidu.com
dig +short www.baidu.com
dig +trace www.baidu.com
dig ns com
dig ns baidu.com
#逆向查询
dig -x ip
# host命令
host github.com
host Serendipity-zsh.github.io
#逆向查询
host ip
# nslookup 命令
#nslookup命令用于互动式地查询域名记录。

nslookup
> facebook.github.io
Server:     192.168.1.253
Address:    192.168.1.253#53

Non-authoritative answer:
facebook.github.io  canonical name = github.map.fastly.net.
Name:   github.map.fastly.net
Address: 103.245.222.133
# whois命令
#用来查看域名的注册情况。

whois github.com

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,一毛也是爱

打开微信或者支付宝扫一扫,即可进行扫码打赏哦