glances
跨平台系统监控工具 https://nicolargo.github.io/glances/tig
交互式git查看工具 https://github.com/jonas/tigmosh
SSH替代工具,具有更多的特性 https://mosh.org/axel
多线程下载工具 https://github.com/axel-download-accelerator/axelthe fuck
纠正上一个错误的输入 https://github.com/nvbn/thefuck
Linux漂亮的工具集
Linux常用运维命令
查看端口占用情况
netstat -tulpn
查看最占CPU和内存的进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
显示内存和虚拟存储器使用情况
free -h
显示CPU信息 核数,架构,一级,二级缓存等
lscpu
压缩
tar -czf home.tar.gz filename
解压缩
tar -zxvf filename.tar.gz
查看文件大小-由大到小
du -chs --time /var/www/* | sort -rn | head
一款强大的工具是ncduLinux强制另一终端连接退出
- 首先用
who
命令查看都有哪个终端连接 - 用ps命令查看终端占用的进程
sudo ps -ft pts/1
- 强制退出
sudo kill -9 6022 6356 6357
Docker入门
安装Docker
在RedHat 7上只能安装Docker EE版本,这里使用阿里云的源来进行安装。
执行命令: curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
安装完成后,如果要以非root身份运行docker, 需要把用户加入docker用户组, sudo usermod -aG docker ec2-user
然后启动docker服务 sudo service docker start
查看docker的信息 docker info
安装个经典的hello world,docker run hello-world
, 如果成功,就说明docker可以正常工作了。
进入某个container docker exec -it container_name /bin/bash
安装docker-compose
sudo -i
curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
参考
Centos 设置交换文件失败的解决办法
由于安装MySQL的时候内存不足导致安装失败,所以需要添加交换文件来增加内存。
首先用
swapon -s
来查看是否已经有交换空间, 还可以通过free -m
来查看,因为我的是空,所以显示如下创建一个4G大小的交换空间
sudo fallocate -l 4G /swapfile
查看刚才创建的交换文件是否成功
ls -lh /swapfile
改变虚拟交换空间的权限
sudo chmod 600 /swapfile
将该文件标记为用于交换空间
sudo mkswap /swapfile
使用交换空间
sudo swapon /swapfile
, 这个时候报错了
经过一番搜索,发现fallocate命令并不是真实的创建了物理空间
, 所以需要使用下面的命令来创建真实的地址
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
- 再次执行
sudo mkswap /swapfile
和sudo swapon /swapfile
就已经成功了
参考地址
Linux 添加用户并赋予sudo权限
第一步 添加用户
sudo adduser test-user
第二步 为新用户设置密码
sudo passwd test-user
第三步 将新用户加入wheel用户组
sudo usermod -aG wheel test-user
第四步 切换到新用户并测试sudo
su - test-user
sudo ls -al /root
如果成功展示,就说明新用户已经加入sudoers了
第五步 运行sudo命令不必输入密码
sudo visudo
在最后一行添加 test-user ALL=(ALL) NOPASSWD: ALL
参考地址
https://www.tecmint.com/run-sudo-command-without-password-linux/
Centos用Firewalld开启端口号
Firewalld可以用来开启一个端口号,比如开启9000端口
第一步 安装firewalld
yum install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
第二步 可以开启端口号了
开启端口号并永久保存 firewall-cmd --permanent --add-port=9200/tcp
重新加载端口信息 firewall-cmd --reload
显示所有已开启的端口号
firewall-cmd --list-ports
参考地址
Centos更改时区后时间仍然不一致
CentOS系统时间与现在时间相差8小时解决方法
产生原因:CentOS 默认 BIOS 时间是 UTC 时间和系统时间不一致
# 第一步 vim /etc/sysconfig/clock
ZONE="Asia/Shanghai"
# 设置为 false ,硬件时钟不和 utc 时间一致
UTC=false
ARC=false
# 第二步
# 设置系统时区为上海
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 对准时间,需要先安装ntp服务器然后通过公网 NTP 服务器校准时间
yum install ntp
ntpdate pool.ntp.org
# hwclock 把准确的时间写入 BIOS
hwclock --systohc
Nginx gzip相关配置
gzip on; # 开启gzip压缩
gzip_comp_level 5; # 压缩级别(1-9) 越大压缩率越高,设置为5是在压缩率和CPU之间取得平衡
gzip_min_length 1100; # 大于这个值的才会启用压缩,如果文件太小,则gzip压缩的结果适得其反
gzip_proxied any; # 通过代理访问的也照样启用
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon; # 压缩支持的类型
参考地址
- https://mattstauffer.co/blog/enabling-gzip-on-nginx-servers-including-laravel-forge
- https://varvy.com/pagespeed/enable-compression.html
- http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_buffers
- https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/optimize-encoding-and-transfer
C 指针和数组
#include <stdio.h>
int main()
{
char board[3][3] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
};
printf("value of board[0][0]: %c\n", board[0][0]);
printf("value of *board[0]: %c\n", *board[0]);
printf("value of **board: %c\n", **board); // 如果使用board获取第一个元素的值,就需要使用两个间接运算符**board
// 只使用一个间接运算符,只会得到子数组的第一个元素,即board[0]引用的地址
printf("address of board[0]: %p\n", *board);
}
Git 生成SSH key
Git 生成SSH key的步骤
- Generating a new SSH key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- Ensure ssh-agent is enabled
eval "$(ssh-agent -s)"
- Add your SSH key to the ssh-agent
ssh-add ~/.ssh/id_rsa
检查SSH是否成功
ssh -T -p 443 git@ssh.github.com