Linux

分类下相关文章

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 ...

阅读全文...

ubuntu 18.04 - zsh: command not found: ifconfig

在新安装的 ubuntu 18.04 destop 上,想要查看本地 IP 地址 $ ifconfig zsh: command not found: ifconfig 我以为自己敲错命令了,反复试,还是 command not found 这个错误。用了十几年的命令,第一次遇到找不到的情况。。。 Google 了一下,才知道 ifconfig 已经被抛弃了。。。取而代之的是 ip 命令 新的 ip 命令,查看本机 IP 地址 ip address 可以缩写为 ip a $ ip address 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...

阅读全文...

Ubuntu 18.04 将程序添加到 Gnome 桌面菜单栏

类似于 windows 的快捷方式,Gnome 会查看 /usr/share/applications ~/.local/share/applications 这两个目录下的 .desktop 文件。 例如 $ ls /usr/share/applications simplenote.desktop gedit.desktop $ ls ~/.local/share/applications wechat_dev_tools.desktop chrome-blpcfgokakmgnkcojhhkbfbldkacnbeo-Default.desktop simplenote.deskt ...

阅读全文...

ubuntu 上使用 systemd 重启时自启动 redis 及 laravel queue worker

之前一直使用 supervisor 来管理进程,但是偶然发现 systemd 已经成为主流并内置于 Ubuntu,所以拿 redis 测试一下效果。 测试环境 ubuntu 18.04 ubuntu 16.04 安装 Redis 下载最新的 redis https://redis.io/download 编译安装 tar xzvf redis-4.0.10.tar.gz cd redis-4.0.10 make make test sudo make install 确认安装完成 $ which redis-cli /usr/local/bin/redis-cli redis 的配置 ...

阅读全文...

以 www-data 的身份执行 crontab 的计划任务

新建了一个 Laravel 的计划任务,配置好 crontab * * * * * php /www/sunzhongwei/artisan schedule:run >> /dev/null 2>&1 同时,将当前登录用户,添加到了 www-data 的用户组,以防止无法访问 storage/logs 下的日志文件。 但是,执行了一段时间,导致 web 请求报错 file_put_contents(/www/sunzhongwei/storage/framework/cache/data/f1/6c/f16xxxx56b65501434d05bf1fc20c9fc ...

阅读全文...

Ubuntu 18.04 GNOME SHELL 内置的录屏工具

Ubuntu 18.04 内置了一个录屏工具,但是这个录屏工具太低调了,即没有图标,也没有菜单启动项,只有快捷键。。。 启动方式,同时按下键盘的 Ctrl + Alt + Shift + R 这时,会看到 Ubuntu 桌面的右上方多了一个红色的小圆点,代表正在录制。 停止录屏,也是同时按下 Ctrl + Alt + Shift + R 操作非常简单,对于录制编程界面,或者程序功能演示视频,足够了。 默认情况下,30秒会自动结束。 下面是我录的一段视频,上传到了 Youtube 上 修改默认时长 如果你嫌默认的 30 秒不够用,可以通过参数调整 gsettings set org.gno ...

阅读全文...

重装升级 Ubuntu 18.04

一直使用的是 Ubuntu 16.10,早就想升级了,因为懒,一直没有动手。正好赶上手头的项目都告一段落,没有太紧急的开发任务; 加之升级微信小程序开发助手把开发环境搞炸了,所以我下定决心升级一波。 重装前的备份文件 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub 主要是懒得登录并更新服务器上的 key 文件。 安装 安装过程没有什么好说的,傻瓜式搞定。 GNome 界面 还是不太适应这个新界面,很多使用习惯感觉很诡异。 关闭按钮回到了右上角 选择文件按钮在右上角,这个太不友好了 但是总体上感觉漂亮了不少。。。 蛋疼的中文输入法 安装了搜狗输入法,怎么也调不出来。 只好选 ...

阅读全文...

Ubuntu 18.04 上设置桌面程序开机自启动

需求 在新安装的 Ubuntu 18.04 系统上,将有些不可描述的程序开机之后自动启动 Startup Applications Preferences 打开 Startup Applications Preferences,在里面添加你需要执行的命令即可。 测试成功! 参考 https://help.ubuntu.com/stable/ubuntu-help/startup-applications.html 失败的尝试 开机自启动 crontab man 5 crontab @reboot Run once, at startup. 但是,我添加了启动配置之后 @reb ...

阅读全文...

Indicator Stickynotes - Ubuntu 桌面便签小工具

年纪越大,事情越多越杂。写着代码一旦被紧急事情打断,回头就忘了刚才在干什么。。。 虽然 trello 上有任务列表,但是太多看板,太多人的任务在一起,有时候找起来也是个麻烦事。 所以我急需一个 Ubuntu 上类似 windows 系统自带的便签小工具,能固定在桌面上,always on top,以便随时知道我之前在干啥。。。 安装 Indicator Stickynotes sudo add-apt-repository ppa:umang/indicator-stickynotes sudo apt-get update sudo apt-get install indicator-st ...

阅读全文...

线上修改属于 www-data 用户组的文件

独自开发后台的调试阶段,没有比线上直接修改代码更痛快的事情了。。。。 但是代码部署时通常是设置在 www-data 用户组下,而我的独立登录帐号是没有权限修改这些源文件的。 解决方法 为源代码添加组的修改权限 把当前帐号添加到 www-data 用户组下 $ sudo find YOUR_CODE_DIR -type f -exec sudo chmod 664 {} \; $ sudo adduser CURRENT_USER www-data Adding user `CURRENT_USER' to group `www-data' ... Adding user CURRENT_U ...

阅读全文...

xargs 与 pipe 的区别

xargs 是将标准输入转为后面命令的参数。 pipe 是将标准输出转为下个命令的标准输入。 xargs 的逻辑 从标准输入读取内容,以空格或者换行进行分割,输出结果,做为命令的参数。 xargs 应用举例 例如,升级某个框架自动新建了许多文件,但是我又想放弃升级了,那么如何将新增的零散文件批量删除呢? 先 git status 找到新增的文件列表,然后将文件列表 copy 到 /tmp/a.txt 文件中,然后执行 cat /tmp/a.txt | xargs rm ...

阅读全文...

Ubuntu 下通过命令行安装 .deb 格式的程序

一直使用的 Simplenote 客户端提示下载新版 1.1.3,但是下载之后,双击打开,怎么也安装不上。Ubuntu 自带的 Software Center 要么一直转菊花,要么假死状态。 不得以,还是要使用最靠谱的命令行方式安装 sudo dpkg -i ~/Downloads/Simplenote-linux-1.1.3.deb 瞬间安装完成。。。 dpkg dpkg 是 Debian Package Management System 的缩写,不是很好记这个命令。 Debian PacKaGe 应该是取的这四个字母。 -i 是 install 的缩写。 如果要卸载就使用 -r 即,re ...

阅读全文...

使用 sshfs 配合 vim 编辑远程服务器上的文件

ssh 到服务器上进行开发调试,最大的缺点是,不能使用本地已配置好的开发工具。 所以,思来想去还是决定将远程服务器的目录挂载到本地。 首先,开发机是 ubuntu 安装 sshfs sudo apt-get install sshfs 建立一个本地的项目目录 mkdir ~/work/xproject 将远程服务器上的对应目录映射到本地新建的目录 sshfs -o idmap=user xxx@xxx.com:/home/xxx/xproject ~/work/xproject 大功告成! cd ~/work/xproject ls 一下就能看到对应目录下所有的远程文件了。 然后就 ...

阅读全文...

ssh 上服务器后,避免连接频繁被断开

最近调一个线上的 wordpress 主题,实在懒得搭建本地开发环境,我就直接在服务器上开发调试了。 但是问题来了,ssh 上服务器使用 vim 进行开发调试,最不爽的一点是,经常性会遇到 Write failed: Broken pipe 即,一段时间不进行键盘操作,本地与服务器的网络连接就会自动断开。 然后,就需要重新 ssh 上去,非常烦躁。 网上找了一个好方法,编辑本地的 ssh 配置 sudo vim /etc/ssh/ssh_config 添加两行配置 ServerAliveInterval 30 ServerAliveCountMax 10 就能完美解决网络自动断开的问题。 ...

阅读全文...

从 ifconfig 读取网卡流量

如何读懂网卡流量数据? 感觉很多网卡流量的数据都是从 ifconfig 读取到的,所以先看一个 ifconfig 的各种输出结果、以及概念。 先从土鳖的百度百科看起, http://baike.baidu.com/view/1001503.htm ifconfig 的全称是 network interfaces configuring,即网络接口设置。interface 这 个词,会在监控指标里出现,例如 interface-eth0, interface-eth1, interface-lo. 看一个 ifconfig 的输出 eth0 Link encap:Ethernet H ...

阅读全文...