Linux

分类下相关文章

安装 tmuxp 替代 tmuxinator

为何要抛弃 tmuxinator tmuxinator 升级需要升级 ruby 升级 ruby 需要安装 rvm 安装 rvm 又需要更新 gpg 然而 gpg 更新永远连不上服务器 我对 ruby 升级的麻烦程度感到了无比的厌恶,而我电脑上唯一需要用到 ruby 的地方就是这个 tmuxinator。 $ sudo gem install tmuxinator Fetching: thor-1.2.1.gem (100%) Successfully installed thor-1.2.1 Fetching: xdg-2.2.5.gem (100%) Development of thi ...

阅读全文...

提升 Tmux 状态栏颜值

看了一段日本小哥的写代码视频,发现里面的 terminal 配置非常漂亮。 既然每天都要在 tmux 中工作,把界面美化一下还是有必要的,至少心情是愉悦的。 最终效果: 是时候更新一下配置了 现有的 .tmux.conf 文件是 10 年前配置的,之后就没怎么更新过了。 只有偶尔几次升级版本导致配置不兼容,才被动调整了几次。当前效果: .tmux 找到一个 star 16K 的 tmux 配置: https://github.com/gpakosz/.tmux 跟日本小哥的效果非常相似。 查看当前 tmux 版本 上面的 .tmux 配置有最低版本要求 tmux >= 2.3 (s ...

阅读全文...

Ubuntu Apt 在不安装三方包的情况下,查看版本号

例如,我想看看 Ubuntu Apt 中的 influxdb 版本是否是最新的 2.0 版本。 但是,我又不想先 apt install,仅仅想看看版本号。 可以使用 apt show: > apt show influxdb Package: influxdb Version: 1.6.4-1build1 Built-Using: golang-1.10 (= 1.10.4-2ubuntu1) ... ...

阅读全文...

WSL 1 升级 WSL 2 之后,Ubuntu 无法解析域名问题

将 WSL 1 升级到 WSL 2 之后,一直无法解析域名,例如 ssh 域名,报错: Could not resolve hostname 查看 resolv.conf 文件 ls -la /etc/resolv.conf /etc/resolv.conf -> ../run/resolvconf/resolv.conf 而 /run/resolvconf/resolv.conf 文件根本无法编辑。 解决方法 参考: https://github.com/microsoft/WSL/issues/5420 sudo rm /etc/resolv.conf sudo bash -c ...

阅读全文...

systemd 保存 golang 服务日志到指定文件

需求场景 我想将 golang 打印的日志保持到指定日志文件,方便需要的时候进行查看。例如: log.Println("some log") 而默认用 systemd 管理该服务的时候,是看不到日志输出的。 systemd 应用日志配置 每次重启都重置日志文件为空,重新写入: StandardOutput=file:/var/my.log StandardError=file:/var/my.log 保留所有日志历史,每次都 append: StandardOutput=append:/var/my.log StandardError=append:/var/my_er ...

阅读全文...

linux 用户组权限

以一个实际案例来体验一下 linux 用户组的权限查看及配置。 需求场景 测试环境:ubuntu 20.04。 我在服务器上新建的用户,希望能够不用 sudo 就可以查看 nginx 的 access.log 日志文件。 无法直接查看 access.log 的原因 $ ls -lah -rw-r----- 1 www-data adm 1.3M Nov 23 08:24 access.log 看第一个字段的其他用户权限,为 000。即连读取的权限都没有。 最简单的解决方案 把新用户加入 adm 用户组。 首先查看 adm 用户组有哪些用户: $ sudo groupmems -g a ...

阅读全文...

Ubuntu 20.04 禁止 root 用户远程 ssh 登录服务器

为了防止被暴力破解服务器 root 密码,我决定禁止 root 用户远程登录。 禁用方法 修改 sshd 服务的配置文件: /etc/ssh/sshd_config 搜索 PermitRootLogin,由 yes 改成 no: PermitRootLogin no 修改完毕之后,重启 sshd 服务: sudo service ssh restart 测试 使用 root ssh 登录服务器,填写密码之后,会提示错误: Permission denied, please try again. 效果达到了。 注意 不要写错了,因为同目录下存在一个 /etc/ssh/ssh_confi ...

阅读全文...

ubuntu 20.04 添加新用户,并赋予 sudo 权限

避免所有操作和部署都使用 root 用户,以免被利用漏洞被入侵系统。 所以在新购的 Ubuntu 20.04 服务器上,部署服务之前,我需要先新建一个用户, 并赋予 sudo 权限。 然后禁用 root 用户远程登录服务器。 使用 root 登录服务器 ssh root@YOUR_SERVER_IP adduser adduser YOUR_USER_NAME 例如新建一个名为 elephant 的账号,按照提示依次填写信息即可。 # adduser elephant Adding user `elephant' ... Adding new group `elephant' (1000 ...

阅读全文...

linux top 命令按照内存使用率排序

默认 top 命令是按照 CPU 使用率排序的。 但是,某些进程启动后,并不活跃,就很难看到该进程的表现。例如,启动一个 golang gin 的 web 服务进程,在没有访客请求的情况下,虽然其内存占用有 18M,但其 CPU 使用率为 0,所以,永远排在 top 进程列表的后面,甚至看不到。 这时,我就想看看内存占用排名靠前的进程,可以按下大写 M,即 shift + M,就可以了。 切换回 CPU 排序,只需要按下大写 P。 ...

阅读全文...

Linux 下查看用户所属的用户组

查看当前用户 > groups zhongwei adm dialout cdrom floppy sudo audio dip video plugdev lxd netdev 查看指定用户 > groups root root : root > groups zhongwei zhongwei : zhongwei adm dialout cdrom floppy sudo audio dip video plugdev lxd netdev ...

阅读全文...

清理 history 命令的历史记录

history 命令的历史实际上是存储在 ~/.bash_history 文件里,查看一下 less ~/.bash_history 就会发现,里面存储了所有的命令记录。 所以,清除的方法自然是删除该文件即可。 rm ~/.bash_history Mac 系统 但是如果是使用的 Mac 下的终端,其默认的是 zshell,所以还需要删除另一个文件 rm ~/.zsh_history 重新打开终端,执行 history 就会发现命令已清除。 ...

阅读全文...

CentOS 中文乱码

打开配置文件 /etc/sysconfig/i18n 添加两行 LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 使配置生效 source /etc/sysconfig/i18n 但是,有个问题,每次登陆都需要重新执行一遍 source,有没有永久解决的方法? 在服务器登录用户的 ~/.bashrc 文件最后加上此命令即可。 ...

阅读全文...

快速登录 laravel 项目对应的 mysql 数据库

Laravel 项目的开发联调阶段,我经常要到服务器上修改 mysql 的表结构。每次打开 .env 文件 copy mysql 用户名及密码,然后复制到 mysql 命令行登陆,非常繁琐。 于是,我写了一个 shell 脚本,可以自动获取 .env 中的 mysql 参数,一键登录 laravel 项目对应的数据库。 #!/bin/bash source .env mysql -u$DB_USERNAME -p$DB_PASSWORD -D$DB_DATABASE 脚本置于 /usr/local/bin/mysql_laravel.sh 添加执行权限 chmod +x /usr/loca ...

阅读全文...

tmuxinator 无法启动,no server running on /tmp/tmux-1000/default

好几台新装的 Ubuntu 系统 (18.04, 及 16.04) 中 tmuxinator 无法启动,报错 $ tmuxinator xxx /usr/lib/ruby/vendor_ruby/tmuxinator/project.rb:254: warning: Insecure world writable dir /home/zhongwei/bin in PATH, mode 040777 sh: 10: cd: can't cd to /home/zhongwei/work/xxx no server running on /tmp/tmux-1000/default no ser ...

阅读全文...

terminal 中查看当前使用的是什么 shell

突然发现我新安装的 ubuntu 18.04 上,terminal 中的提示符跟 tmux 中的不一致。于是,我想看看这两个分别使用的是什么 shell。 tmux 中 $ echo $0; /bin/zsh terminal 中 $ echo $0; bash 原理 $0 代表当前运行的进程名字,所以,当在 shell 中输出 $0 时,即是 shell 的名称。但是,如果是在脚本中输出,则是脚本的名字。 参考 https://askubuntu.com/questions/590899/how-to-check-which-shell-am-i-using ...

阅读全文...