plugins=(git composer npm pip pyenv virtualenv debian systemd python history-substring-search zsh-autosuggestions zsh-syntax-highlighting last-working-dir wd extract zoxide)
分类目录归档:Linux
Linux Shell清除过期文件
find $log_path -cmin +1 -type d | xargs rm -rf {} # 1分钟前创建的
find $log_path -mmin +1 -type d | xargs rm -rf {} # 1分钟前修改的
find $log_path -ctime +1 -type d | xargs rm -rf {} # 1天前创建的
find $log_path -mtime +1 -type d | xargs rm -rf {} # 1天前修改的
find $log_path/* -mtime +1 -type d | xargs rm -rf {} # 30天钟前修改的,不包括当前目录
linux(ubuntu/manjaro)让JetBrains(Phpstorm/Pycharm/Intellij)支持ibus中文
目前的解决方法:
- 下载这个https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-11_0_7-linux-x64-b765.53.tar.gz JRE 并解压。
- 然后Help | Find Action在IDE主菜单中点击,输入Choose Boot Java Runtime for the IDE,回车,然后点击New下拉,向下滚动,找到Add Custom Runtime选项,选择这个解压后的JRE运行,重启IDE。
- 对于 2020.3.x 版本,您需要使用此步骤切换到此 JRE:https ://www.jetbrains.com/help/idea/2020.3/switching-boot-jdk.html#switch-jdk
- 或者尝试使用上述步骤切换到 OpenJDK 11(AdoptJDK 11、OracleJDK 11)。
参考
Ubuntu下PHP 7和PHP 8多版本共存以及composer指定版本
修改更新源
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade
安装PHP7以及常用扩展
sudo apt install php7.4-common php7.4-cgi php7.4-gd php7.4-mysql php7.4-xml php7.4-cli php7.4-json php7.4-sqlite3 php7.4-xmlrpc php7.4-bcmath php7.4-enchant
php7.4-opcache php7.4-readline php7.4-xsl php7.4-bz2 php7.4-curl php7.4-fpm php7.4-mbstring php7.4-pgsql php7.4-tidy php7.4-zip
安装PHP8以及常用扩展
sudo apt install php8.0-common php8.0-cgi php8.0-gd php8.0-mysql php8.0-xml php8.0-cli php8.0-sqlite3 php8.0-xmlrpc php8.0-bcmath php8.0-enchant php8.0-opcache php8.0-readline php8.0-xsl php8.0-bz2 php8.0-curl php8.0-fpm php8.0-mbstring php8.0-pgsql php8.0-tidy php8.0-zip
composer安装以及使用
安装composer
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
配置composer使用镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
运行composer时指定PHP版本
php8.0 /usr/local/bin/composer
php7.4 /usr/local/bin/composer
alias composer7='php7.4 /usr/local/bin/composer'
alias composer8='php8.0 /usr/local/bin/composer'
使用symfony composer以及.php_version文件指定PHP版本
查看本地所有PHP版本
symfony local:php:list
显示结果
┌─────────┬────────────┬────────────┬─────────┬─────────┬─────────┬─────────┐
│ Version │ Directory │ PHP CLI │ PHP FPM │ PHP CGI │ Server │ System? │
├─────────┼────────────┼────────────┼─────────┼─────────┼─────────┼─────────┤
│ 7.4.14 │ /usr/local │ bin/php │ │ │ PHP CLI │ * │
│ 7.4.16 │ /usr │ bin/php7.4 │ │ │ PHP CLI │ │
└─────────┴────────────┴────────────┴─────────┴─────────┴─────────┴─────────┘
指定symfony composer
使用PHP7
echo 7 > .php-version
指定symfony composer
使用PHP8
echo 8 > .php-version
使用symfony composer
安装或者更新包
symfony composer install
参考
Cmder + Windows Terminal + PhpStrom/PyCharm/IDEA
Cmder是一个可用于linux的便携式控制台虚拟器,可以让你在windows下使用linux命令。
Windows Terminal是Windows 10的控制台管理界面。
IDEA是广大开发人员的最爱。
本文介绍如何将Cmder整合到Windows Terminal和IDEA。
安装Cmder
可以去 https://cmder.net/ 下载最新的压缩文件,解压后点击Cmder.exe即可使用。如果已经安装了git for windows下载mini版本就可以了,否则可以下载包含git的full版本。
设置系统环境变量
以下d:\tools\Cmder
是Cmder解压目录
CMDER_ROOT = d:\tools\Cmder
配置 Windows Terminal
生成guid
进入Power shell,输入New-Guid
PS C:\Users\Administrator> New-Guid
Guid
----
092f8948-9ea5-4928-bea7-a1f71938e717
修改 Windows Terminal 配置文件
点击Windows Terminal
的下拉菜单,选择“配置”,会打开它的配置文件
增加
{
"guid": "{092f8948-9ea5-4928-bea7-a1f71938e717}",
"name": "Cmder",
"commandline": "cmd.exe /k %CMDER_ROOT%\\vendor\\init.bat",
"startingDirectory": "%USERPROFILE%",
"icon": "%CMDER_ROOT%\\icons\\cmder.ico",
"background": "#2e3436",
"padding": "15",
"fontFace": "Cascadia Code",
"fontSize": 10
}
然后修改
"defaultProfile": "Cmder",
Windows Terminal 使用效果
点击Windows Terminal
的加号,查看效果
配置 PhpStorm/IDEA/PyCharm
配置 PhpStorm
打开 PhpStrom
的设置,找到 Tools
下的 terminal
修改 Shell path
为 "cmd" /k ""%CMDER_ROOT%\vendor\init.bat""
PhpStrom 配置后效果
通过Xvfb在命令行界面运行GUI程序
wkhtmltopdf使用的qt版本比较久,不支持很多css3和html5特性,于是用qt写了一个html转PDF工具,需要常驻后台运行,采用supervisord守护,无需安装图形界面,这时候需要用到Xvfb。
Xvfb介绍
Xvfb or X virtual framebuffer is a display server implementing the X11 display server protocol. In contrast to other display servers, Xvfb performs all graphical operations in virtual memory without showing any screen output.
简单说就是Xvfb是一个虚拟的X11显示服务,在虚拟内存中执行不需要显示图像。可以用来做远程左面显示,以及将桌面程序在非桌面环境使用(如headless的图形界面测试)。
Xvfb基本使用
安装xvfb
sudo apt-get install xvfb
命令行运行虚拟桌面
Xvfb :2 -screen 0 1024x768x16 &
x11vnc -listen 0.0.0.0 -rfbport 5900 -noipv6 -passwd xxxxxx -display 2
export DISPLAY=:2
使用Python xvfbwrapper
from xvfbwrapper import Xvfb
with Xvfb(width=1920, height=1024, colordepth=24) as xvfb:
# launch stuff inside virtual display here.
# Xvfb will stop when this block completes
参考
Linux下GoldenDict词典安装
Linux 下mount ntfs 分区没有权限无法chown/chmod解决办法
默认 Linux 下挂载的ntfs分区,会出现chown,chmod都无效,且默认都是root用户。需要采用ntfs-3g
方式挂载后,支持权限。图形界面下点击磁盘管理,修改挂载参数即可。命令行界面需要直接先mount.ntfs-3g /dev/sdb2 /data ntfs-3g
测试下,然后修改/etc/fstab
,然后运行mount -a
解决办法
首先,让我们看一下完全的挂载参数:
~ >>> cat /etc/fstab
/dev/sdb2 /data ntfs-3g permissions,users,auto,exec,uid=ning,gid=ning 0 0
参数说明
- permissions: (NTFS-3G option) Set standard permissions on created files and use standard access control.
- auto: Will be mounted at boot and from mount -a
- user: Allow an ordinary user to mount the filesystem
- users: Allow every user to mount and unmount the filesystem
By default, ntfs-3g mounts the partition noexec, nosuid, and nodev.
- noexec: Do not allow direct execution of any binaries on the mounted filesystem.
- nosuid: Do not allow set-user-identifier or set-group-identifier bits to take effect.
- nodev: Do not interpret character or block special devices on the file system.
参考
CentOS cURL error : Problem with the SSL CA cert (path? access rights?)
通常是因为更新系统后,ca证书没有被更新,新的证书被命名为“.rpmnew”,解决办法是删掉旧证书,重新安装新的证书。
rm -f /etc/ssl/certs/ca-bundle.crt && yum reinstall -y ca-certificates
如何在/etc/hosts里面包含另外一个文件
hosts文件是不允许包含其他文件的,但是可以通过其他方案实现:
脚本合并方法
保存一个hosts.base一个hosts.local,然后通过脚本合并成为hosts文件
搭建本地私有dns服务器
通过bind搭建私有服务器
运维工具同步
通过pssh, ansible 等运维工具同步配置,可以和方法一一起用