Linux学习之路我用 LinuxLinux

Advanced Linux 1

2017-04-19  本文已影响0人  firefly_1994

Alias

linux系统允许我们给command起别名,我们可以给常用的命令写别名,方便以后的操作。

为了让系统识别alias,我们要在 ~ 目录下新建 .alias 文件,在文件每一行写一个命令的别名,如:

alias newname="command"

注:'='两边不能有空格

然后在 ~/.zshrc (或者 ~/.bashrc )最后添加一行:

source ~/.alias

每次更改了 .alias 文件之后都要运行:

source ~/.zshrc

其实zsh中已经有相当一部分的alias了,有兴趣可以查一查,我用的它的alias并不多,就不列举了,下面列举一下我自己的alias吧:

alias vi="vim"
alias sv="sudo vim"

alias df="df -h"
alias du="du -h"

alias p="ps -f"
alias grep="grep --color"
alias h="history"

alias zshrc="vim ~/.zshrc && source ~/.zshrc"

alias p2="python2"
alias p3="python3"
alias ip2="ipython2"
alias ip3="ipython3"

另外git也可以设置alias,不过是直接在git里设置就行了,常见的如下:

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'

Arch 开机启动服务

Ubuntu下有 /etc/rc.d 目录,其中的shell脚本会在开机时运行,这是一个简单的方法,但是缺点在于系统只是简单地执行该脚本,而不关心能否成功运行,也不关系执行结果。Ubuntu中还有另一种方法,就是将要执行的脚本封装成 服务(service) ,系统会自动监控所有的服务状态,我们也能随时获取它们的执行信息。这也是Arch中唯一来实现开机启动程序的方式。

首先在 /etc/systemd/system/ 目录下创建一个名为 myscript.service 的文件,文件内容如下:

[Unit]
Description=My script

[Service]
ExecStart=/usr/bin/my-script

[Install]
WantedBy=multi-user.target

然后运行命令:

#enable start
systemctl enable myscript.service

#disable start
systemctl disable myscript.service

注:my-script 文件是一个shell文件,要有可执行权限,而且开头必须是:

!/bin/bash

Linux Desktop Entry

有了可执行的二进制程序和一个图标,可以制作桌面快捷方式,以haroopad为例,需要在目录 /usr/share/applications/ 中新建一个文件,命名为 haroopad.desktop ,文件写法:

[Desktop Entry]
Name=Haroopad
Comment=A Markdown Editor
GenericName=Text Editor
Exec=/path/to/haroopad
Icon=/path/to/icons/haroopad.png
Type=Application
StartupNotify=true
StartupWMClass=Haroopad
Categories=GNOME;GTK;Utility;TextEditor;Development;
MimeType=text/plain;

Others

sudo 不输入密码

使用sudo权限编辑 /etc/sudoers 文件或者执行 sudo visudo 命令,添加一行

username ALL=(ALL) NOPASSWD: ALL

可以让特定用户不用输入密码进行sudo操作

或者将该文件中的这一行取消注释

# %wheel ALL=(ALL) NOPASSWD: ALL

这样让所有wheel组内的用户均不用输密码

注:wheel组就是管理员组,user在wheel组里说明该user是可以su来获得root权限,但非wheel组用户不行

git push需要输入密码问题

git可以使用https方式或者ssh方式访问,其中https方式每次都需要输入密码,ssh方式不用,因为ssh采用的密钥验证,私钥本地保存,公钥在服务端。解决方法就是:

清除linux boot中无用的启动项

这是Ubuntu这个坑系统才有的问题,而我已经入了Arch神教啦,哈哈。因为Ubuntu更新了之后,旧的linux-image还会存在于 /boot 分区中,所以 /boot 的空间会越来越小。之前Ubuntu的 /boot 分区有200M空间,有一次更新出来的linux-image超过了100M,结果下一次更新的linux-image也大于100M,导致我从此告别了内核更新。。。

首先查看已安装的linux-image的各个版本:

dpkg --get-selections | grep linux-image

确认当前使用的是哪一个:

uname -a

删除某个版本的linux-image,这里为了彻底删除用purge而不是remove,比如:

sudo apt-get purge linux-image-3.5.0-27-generic

卸载完可再查看所有的linux-image

上一篇 下一篇

猜你喜欢

热点阅读