记录一些学习ubuntu要点,力求实用。

常用系统命令

  • getconf LONG_BIT 查看系统位数。

  • uname -a 更详细的方法。

  • lsb_release -a 系统详细版本情况。

  • w 当前谁在登录。

  • last 查看登录记录。登录信息记录在二进制 /var/log/wtmp文件中。

  • ~/.bash_history 中记录所有输入的命令。

  • & 后台运行。

  • ctrl + Z 暂停并放到后台。

  • ctrl + C 结束正在运行的任务。

  • jobs 查看后台有多少任务,kill %num 结束任务,num为任务号。

  • fg 后台任务调至前台并继续。

  • bg 继续后台任务。

  • kill -p xxx 强制 结束 xxx 进程

  • ps -t pts/3 查看pts/3的所有进程


python 配置

  • python3 --version 查看安装python版本,如果是3的;
  • sudo apt-get install python3-pip 安装 pip ;
  • pip -V 检查pip;

基于用户的默认版本切换方法

1
2
3
4
5
6
7
8
9
 ls /usr/bin/python*  #显示所有 python
 
 vim ~/.bashrc #编辑配置文件
 #添加如下行 ,alias,别名。路径以上面显示的为准。
 alias python='/usr/bin/python3.5' #改成需要的版本
 
 sudo pip install --upgrade pip # 升级
 
 pip show requests # 查看模块安装位置

解决:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build*

1
2
3
4
sudo pip2 install setuptools
# 或则
sudo easy_install -U setuptools
sudo pip install setuptools

apt-get 使用ipv4

有时,您需要在APT包中禁用IPv6,只有在需要时,其他程序可以继续使用IPv6。 要在APT中禁用IPv6,请运行以下命令为APT创建一个配置文件。

1
sudo vim /etc/apt/apt.conf.d/99force-ipv4

将以下行复制并粘贴到文件中。

1
Acquire::ForceIPv4 "true";
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
apt-cache search package 搜索软件包
apt-cache show package  获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package --reinstall   重新安装包
sudo apt-get -f install   修复安装
sudo apt-get remove package 删除包
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get update  更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
apt-cache depends package 了解使用该包依赖那些包
apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package  下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

linux 常用编辑器

vi (visual editor, ex编辑器的改进版)属于 Unix 系统基本编辑器(部分 Linux 发行版都把 vi 映射到 vim,还有部分会把 vi 映射到 ex),除此之外,有些发行版还会预装nano编辑器。

vim (vi) 命令

vim 是 vi 的增强版(vi improved),vi 又是 ex 编辑器的改进版,visual editor。

这里多说一点

大多数 Linux 发行版不包含真正的 vi;而是自带一款高级替代版本,叫做 vim(它是“vi improved”的简写)由 Bram Moolenaar 开发的。vim 相对于传统的 Unix vi 来说,取得了实质性进步。通常,vi 在 Linux 系统中是“vim”的符号链接(或别名)。 在随后的讨论中,我们将会假定我们有一个叫做“vi”的程序,但它其实是 vim。也有写系统将 vi 软连接到 ex 上,manjaro 就是如此。

参考文档

基础

命令 功能
ESC 切换到命令(普通)模式
a A i I 这是个键在命令模式下却换到编辑模式
区别在于插入位置不同,常用 i 。
o O 在光标下一行、上一行插入新行,
x 删除光标所在字符,
dd 删除光标所在行,(操作符两次 作用于当前行),
2dd d2d 两者一样,删两行,数值表示作用范围,后面的操作符也有类似操作,
cc 删除当前行,并进入插入模式,
ZZ 保存并退出(和 :wq 一样,vim 特有),
ZQ 不保存退出(和 :w 一样)。

底行命令使用 : 键进入(和 EX 模式很像, EX 使用 Q 进入, visual 可退出),

命令 功能
:wq 保存并退出,
:w 只保存,不退出,
:q! 退出不保存,

常用设置

命令 功能
:set nu 显示行号(nu, number 一致),
:set hls 高亮搜索匹配项,取消加 no:set nohls,hls=highlightsearch
u 可以撤销一次操作,
ctrl + r 反撤销,
行号 + G 跳转到相应行,
gg 到文件首行,
G 到文件尾部行,
w 跳转一个单词(光标cursor在单词头部),常在操作符后面表示范围,如 dw 删光标所在至单词尾, cw 删除并进入插入模式。
b 和 w 方向相反
大写形式 跳转一个大单位,空格分割
e 和 w 一样,只是光标在单词尾部
r 替代光标处字符(一个)
R 和 Insert 键效果一致
set backspace=2 插入模式能使用backspace 键 删除,

替换

语法为 :[addr]s/源字符串/目的字符串/[option]

命令 功能
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky

全局替换命令为 :%s/源字符串/目的字符串/g

[addr] 表示检索范围,省略时表示当前行。

如:

命令 功能
1,20 表示从第1行到20行;
% 表示整个文件,同“1,$”;
. ,$ 从当前行到文件尾;
s 表示替换操作
[option] 表示操作类型
g 表示全局替换;
c 表示进行确认;
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);

省略option时仅对每行第一个匹配串进行替换;

如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义

下面是一些例子:

将That or this 换成 This or that :%s/\(That\) or \(this\)/\u\2 or \l\1/

复制

1
2
:9,15 copy 16 
:9,15 co 16

将第9行到第15行的文本内容 复制 到第16行的后面 。

移动

1
2
:9,15 move 16 
:9,15 m 16

将第9行到第15行的文本内容 移动 到第16行的后面 。

批量注释与反注释

  1. v 进入 virtual 模式,
  2. 上下选择,ctrl + v 进入列模式,
  3. 使用大写 I,行首插入模式,输入 “#,// 等”, 然后 按 两次 ESC
  4. 反注释,类似,i 换成 d 即可。

缩进,使用 <, >> 当前行, >ap 缩进一段; <> 作用相反, = 自动缩进。

nano命令

翻页

Ctrl+Y     到上一页

Ctrl+V     到下一页

帮助中的 ^ 表示ctrl 键(也可以连续按两次esc 键代替), M 表示 alt 键。

显示行号

打开 /etc/nanorc# set constantshow 前面的注释#号去掉即可。

保存

Ctrl+O     来保存所做的修改

退出

Ctrl + X    or   q

参考文档


PDF阅读软件 zathura

~/.config/zathura/zathurarc 用户配置文件与路径;

/etc/zathurarc 全局配置文件与路径;

使用 gedit ~/.config/zathura/zathurarc 添加下面的配置命令,#号以及后面为注释。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
set adjust-open "width" #以宽度自适应打开
set font "Noto Sans CJK SC Regular 10" #字体与字号
set guioptions "" #GUI相关,留空可隐藏底部statusbar
set window-title-basename true #只显示文件名,否则显示完整路径
set incremental-search true #增强搜索,实时搜索
set show-v-scrollbar true  #显示右侧进度条
set selection-clipboard clipboard #粘贴版
set window-height 760 #默认高度,像素
set window-width 1300 #默认宽度

# 更多请参考:https://github.com/lervag/dotfiles/blob/master/config/zathura/zathurarc

mint 18.3 的路径

1
2
3
4
5
6
7
/etc/gnome/defaults.list  #保存全局打开方式路径
/usr/share/applications   #保存,这两个是一样的

~/.config/mimeapps.list  #用户

# 添加
application/pdf=xpdf.desktop  

快捷键

命令 功能
f 高亮链接,按 相应数字 打开链接;
q 退出;
# ^ 是 ctrl 键
^f Scroll page down
^b Scroll page up
^d Scroll half a page down
^u Scroll half a page up
r Rotate the page
R Reload the document
^n Toggle statusbar visibility
^m Toggle inputbar visibility
^r inverted color /反色
space 半页
数字 + G 跳转页码
gg 最前
GG 最后

命令

命令 功能
:bmark xxx 创建书签xxx (长书签)
:blist xxx 打开bookmark
:bdelete xxx 删除书签
:q 退出
/word 搜索word,使用 n / N 跳到下一个(上一个)结果,
/、? 搜索向前、向后
:info 显示文档信息

短命令书签 使用 a letter or number ,先按 m 键,然后按短书签名,创建;

跳转先前的短书签,先按 ' 键,然后先前的字母或数字;

关于复制问题

I discovered that zathura is using the x11 primary selection as default instead of the actual clipboard. This can be changed by creating a ~/.config/zathura/zathurarc file with the following content:

1
set selection-clipboard clipboard

参考文档

部分参考了此处


mpv 播放器笔记

其播放效果要好于 vlc ,而且更符合 vimer 的习惯。

部分快捷键

命令 功能
[ ] { } 播放速度相关,
backspace 恢复播放速度,
f 全屏,
q 退出,
Q 保存播放位置退出,
9 0 音量减小与增大,
space 播放暂停,
T 总在最前面切换,
s 视频截图,包含字幕,
S 视频截图,不带字幕,
alt + s 自动逐帧视频截图,开关,
alt + 1 100%视频大小,
alt + 2 两倍视频大小,
alt + 0 恢复默认大小,
up 快进60s,
down 快退60s,
right 快进5秒,
left 快退5秒,

用户自定义

~/.config/mpv/input.conf 快捷键文件路径,

参考文档


常用小技巧

长按 Alt 键拖动看不到head bar的窗口。

cd ~ 返回home目录(直接使用 cd,效果一致),注意root用户的目录与普通用户目录的区别。

sudo 只能暂时提权,5分钟内不用输出密码。使用 sudo -i 或者 sudo -s 可以切换到root账户。

pwd 打印当前所在目录。

clear 清屏。

cat name 浏览name文件。

man xxx 查看 xxx 的详细说明文档(manual)。

sudo apt-cache search apache | less 用于搜索与 apache 相关的 包名(package name)。less 一页一页显示内容.

修改软件源 sudo vim /etc/apt/sources.listsudo apt-get update 更显后使用此更新。

sudo chmod -R 777 \* #对当前目录的所有文件以及文件夹授权 777,-R 递归所有子文件。

任务管理器打开命令: gnome-system-monitor

sudo gsettings set.com.canonical.Uniyt always-show-menus true 让 Unity 全局菜单始终可见,其中true改为 false 恢复。

sudo gnome-session-properties 管理开机启动。

/usr/share/applications 查看所有应用快捷方式。

sudo apt-get install -y ubuntu-desktop 修复桌面。

sudo 卸载应用

1
2
3
4
sudo apt-get remove --purge 软件名称       #--purge 不保留配置文件
sudo apt-get autoremove --purge 软件名称   #可能会把相关软件也移除
sudo apt-get autoremove --purge xxxxx      #推荐
sudo apt-get autoclean

16.04开始,用户可以实现改变启动器的位置,可以将启动器移到屏幕底部,但是无法移到右边或顶部。打开终端,然后输入下面这个命令,即可将启动器移到屏幕底部:

gsettings set com.canonical.Unity.Launcher launcher-position Bottom

如果你使用后,觉得不喜欢,还可以恢复到屏幕左边,只要运行:

gsettings set com.canonical.Unity.Launcher launcher-position Left

nohup COMMAND & 后台执行 COMMAND 命令,常用于 ssh 执行命令。

添加到 /etc/init.d/rc.local exit 以前 ,实现开机执行。


使用 ftp,以及 tar 打包与解压

连接

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
ftp 2001:da8:8019:235::30
# enter username
# enter password
# ipv6 地址可能需要使用 中括号包裹。

# 出现
ftp> ls #查看目录
cd path # 切换路径
pwd	# 显示当前路径

rm path # 删除文件
rm -r path #删除文件夹
bye #退出

客户端常用命令

1
2
3
4
get test.md #下载远程文件到本地

put test.txt #上传单个本地文件到远程服务
mput file  #上传多个文件

归档(打包与解包)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#.tar 参数带 z 表示调用 gzip 压缩
tar xvf FileName.tar #解包
tar cvf FileName.tar DirName # 打包

tar czvf my.tar file1  #单个文件压缩打包 
tar czvf my.tar file1 file2 ... #多个文件压缩打包 
tar czvf my.tar dir1  #单个目录压缩打包 
tar czvf my.tar dir1 dir2 #多个目录压缩打包 
tar xzvf my.tar #解包至当前目录

tar -cvf get.tar PEA_I_* PMA_I_* --exclude *.check #排除特定后缀文件
tar -cvf get.tar PEA_I_* PMA_I_* --exclude *.check --exclude *.usp #排除多种文件

tar -tf get.gz #查看压缩包文件

上面的 z 即是调用 gzip,如需调用 bzip、xz需要换成 j

f 参数后面紧跟档案文件名。

v 显示过程。

此外 还有 u r d 等参数,具体见 man tar


PASH环境变量的设置

方法一:用户主目录下的.profile(推荐)或.bashrc文件

登录到你的用户(非root),在终端输入:

1
sudo vim ~/.profile   #(or .bashrc)

可以在此文件末尾加入PATH的设置如下:

1
export PATH="$PATH:your path1:your path2 ..."

保存文件,注销再登录,变量生效。 该方式添加的变量只对当前用户有效。

方法二:在系统目录,进行类似操作。

1
2
3
/etc/profile

/etc /environment

在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。

设置系统变量 PATH 方法:

/etc/environmet 中PATH 后面引号中添加,使用: 分隔不同的路径。

关于环境变量

1
2
3
4
5
6
1. $HOME是一个环境变量,它代表当前登录的用户的主文件夹(就是家目录的那个)
2. $HOME/bin当然就是主文件夹下的bin子目录(注意不是根目录的那个)
3. PATH=$PATH:$HOME/bin这句是设置PATH环境变量(设置环境变量用等号),
首先:冒号是分割符(记得Windows上面也有PATH环境变量,Windows的路径之间的分隔符是;分号),
$PATH:$HOME/bin表示在保留原来的$PATH环境变量的基础上,
再增加$HOME/bin这个路径作为新的$PATH环境变量。

GIMP 相关

全称 (The GNU Image Manipulation Program)

使用中文界面

用 LANGUAGE=zh_CN gimp 启动,或者LANG=zh_CN gimp ,然后在选择中文(不行就是阿里的源,sudo apt-get gimp重装一下)。

gimp裁剪图片,使用快捷键 shift + c 。 单窗口模式,在顶部 窗口 菜单下 启用单窗口模式。

常用操作教程

  1. 拖到最左边的工具列上,打开一张新的图片;
  2. ctrl + shift a,取消选区;
  3. 矩形选择椭圆选择,使用ctrl减选,shift加选;
  4. 自由选择 工具将ps的 套索工具 和 多边形套索 工具结合,左键直接画是套索,而单击是多边形套索;
  5. 模糊选择 工具和 按颜色选择 工具则是把ps 魔棒 工具给分拆;
  6. ctrl + 鼠标滚轮 实现连续,Z + 鼠标选区 实现区域缩放;
  7. shift + ctrl + L 选区浮动,或者点击 选择浮动

ssh 使用

在终端远程连接其他ubuntu系统

两台设备先安装ssh server和 clicent

1
2
sudo apt-get install openssh-client 
sudo apt-get install openssh-server 

启动于停止service

1
2
3
4
5
sudo /etc/init.d/ssh start 
#或者 
sudo service ssh start  
sudo /etc/init.d/ssh stop 
sudo /etc/init.d/ssh restart

client 使用下面的命令连接 sever

1
2
3
4
5
6
7
8
ssh 用户名@ip 
ssh -l 用户名 ip

# 文件交换
#1.上传[如果目录 使用 scp -r ]
scp '/home/rachpt/desktop/1.png' [email protected]:/var/www/new/images/news
#2.下载
scp -r [email protected]:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)

允许 root 远程登录,修改server配置文件

1
2
3
4
5
6
7
8
sudo gedit /etc/ssh/sshd_config

#修改
#PermitRootLogin without-password
PermitRootLogin yes

#然后重启
sudo systemctl restart ssh.service 

查看ssh 状态

1
2
3
ps -e |grep ssh 

#看到sshd则说明ssh-server已经安装启动

Git 配置 ssh

配置多用户 git 本地密钥。

生成新的ssh keys:

1
2
3
4
5
6
ssh-keygen -t rsa -C "[email protected]"

#使用自定义名称
/home/rachpt/.ssh/id_rsa_coding
# or
/home/rachpt/.ssh/id_rsa_github

复制,id_rsa_coding.pub or id_rsa_github.pub 至相应网站 SSH 公钥 页面,完成添加。

如果测试报错:

1
sign_and_send_pubkey: signing failed: agent refused operation

解决办法:

1
2
3
4
5
6
7
8
9
eval "$(ssh-agent -s)"
ssh-add /home/rachpt/.ssh/id_rsa_coding
# or
ssh-add /home/rachpt/.ssh/id_rsa_github
#测试,需要输入,则 yes 
ssh -T [email protected]
# or
ssh -T [email protected]
# 显示相应用户名,则表示成功。

其他的方法: 配置 config 文件.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 编辑 ~/.ssh/config 或者 /etc/ssh/ssh_config 

vim ~/.ssh/config

# github
Host github.com
    HostName github.com
    IdentityFile ~/.ssh/id_rsa_github

# coding
Host git.coding.net
    HostName git.coding.net
    IdentityFile ~/.ssh/id_rsa_coding

参考文档.

配置 FTP sever

linux ftp服务器软件有 vsftpd ,pure-ftpd ,proftp 。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#安装
sudo apt-get install vsftpd

#控制命令
sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop
sudo /etc/init.d/vsftpd restart
#或者类似
sudo service vsftpd restart

#多了ftp用户组和ftp用户
sudo cat /etc/group
sudo cat /etc/passwd

#ftp服务器的目录位置在 /srv/ftp,这也是匿名用户访问时的根目录。 
#使用下列命令来间接更改目录
cd /srv
sudo rm -d ftp
# 挂载家目录
cd ~/
sudo mkdir ftp
# ln -s 为文件创件符号连接,非硬连接.
cd ~


#配置
sudo gedit /etc/vsftpd.conf

#允许匿名用户登录
anonymous_enable=YES
#允许本地用户登录
local_enable=YES
#开启全局上传
write_enable=YES
#允许匿名用户上传文件
anon_upload_enable=YES  
#充许匿名用户新建文件夹
anon_mkdir_write_enable=YES

#加点banner提示
ftpd_banner=Hello~~ 

#FTP服务器最大承载用户
max_clients=100

#限制每个IP的进程
max_per_ip=5

#最大传输速率(b/s)
local_max_rate=256000

#隐藏帐号
hide_ids=YES 

#启动chroot列表(Change root)
chroot_list_enable=YES

#指定列表位置(我这用的是默认地址)
chroot_list_file=/etc/vsftpd.chroot_list
ssup	
#这句默认设置里是没有的,自己加
user_config_dir=/etc/自己定义一个设置个别用户用的文件夹地址

关于 vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()误的解决方法。 比如配置匿名服务器,默认root 目录是 /srv/ftp

1
sudo chmod a-w /srv/ftp/

即可解决。此帖也有反映


文件共享

samba 文件共享服务

1
2
3
4
5
6
7
8
9
sudo apt install samba   #安装samba服务

#更改配置文件
sudo vi /etc/samba/smb.conf 

#其中 ` ; ` 注释行,

#########
sudo mount -t cifs -o username=***,password=**** //10.42.0.1/disk /media/rachpt/server/ #手动挂载至本地的路径。

使用 mount 挂载 samba 一直提示无权限,使用下面的命令,设置本地账户的smb密码

sudo smbpasswd -a 现有用户


自动挂载

linux 设置开机自动挂载硬盘,网路空间

首先使用:

1
2
sudo blkid #查看硬盘的格式,以及设备名。
# TYPE="ext4" 等。

编辑 /etc/fastab 文件,配置开机挂载。

1
2
3
4
5
6
7
8
sudo vim /etc/fastab #编辑
# 在后面添加新的行
# disk sdb1 #号开头为注释,ext4 即是文件系统(格式)
/dev/sdb1  /media/rachpt/disk  ext4    defaults   0    0 
#/media/rachpt/disk 为挂载点,/media/rachpt/server 也是,自己 mkdir
# smb
//10.42.0.1/disk /media/rachpt/server cifs defaults,username=**,password=***  0  0
# *为用户名与密码,分隔的空格可以使用多个
1
2
3
smbclient -L 10.42.0.1 -N    #此命令用于查看共享目录

sudo mount -a  #编辑好/etc/fastab,用此命令测试。

使用 blkid查看硬盘 UUID 和标签。

1
2
sudo blkid /dev/sdb1
$/dev/sdb1: LABEL="disk" UUID="9a0d1374-540f-4a32-92d1-2e1beaee1709" TYPE="ext4" PARTUUID="c0134fff-477f-4b71-be37-88119c640180"
1
2
3
# disk sdb1 ,使用 uuid
UUID=9a0d1374-540f-4a32-92d1-2e1beaee1709 /media/rachpt/disk  ext4   default      0       0

也可以 添加 /etc/rc.lacal ,如下。(使用的是 nfs ,而非 samba)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# By default this script does nothing.
password="myRootPassword"

echo $password |sudo mount -o v3 -t nfs 10.42.0.1:/home/rc      /media/rachpt/rc
echo $password |sudo mount -o v3 -t nfs 10.42.0.1:/srv/ftp/data /media/rachpt/ftp/data
echo $password |sudo mount -o v3 -t nfs 10.42.0.1:/srv/ftp/pub  /media/rachpt/ftp/pub
echo $password |sudo mount -o v3 -t nfs 10.42.0.1:/srv/ftp/mp4  /media/rachpt/ftp/mp4

unset password  

exit 0

字体

在终端输入以下命令进行字体安装:

1
2
3
4
5
6
7
wget -O get-fonts.sh.zip http://files.cnblogs.com/DengYangjun/get-fonts.sh.zip

unzip -o get-fonts.sh.zip 1>/dev/null

chmod a+x get-fonts.sh

./get-fonts.sh

如果要删除已下载的字体安装脚本,执行以下命令:

1
rm get-fonts.sh get-fonts.sh.zip 2>/dev/null

如果要恢复系统默认的字体,执行以下命令:

1
2
3
4
5
6
7
cd /etc/fonts/conf.avail

sudo mv 51-local.conf.old 51-local.conf 2>/dev/null

sudo mv 69-language-selector-zh-cn.conf.old 69-language-selector-zh-cn.conf 2>/dev/null

sudo rm -f -r /usr/share/fonts/truetype/myfonts 2>/dev/null

记录以备用。 https://www.cnblogs.com/jaxu/p/5565326.html


中文语言下修改 home 文件夹 英文路径

1
vim ~/.config/user-dirs.dirs # 修改配置文件,也可以使用gedit,nano等
1
2
3
4
5
6
7
8
XDG_DESKTOP_DIR="$HOME/desktop"
XDG_DOWNLOAD_DIR="$HOME/download"
XDG_TEMPLATES_DIR="$HOME/template"
XDG_PUBLICSHARE_DIR="$HOME/public"
XDG_DOCUMENTS_DIR="$HOME/document"
XDG_MUSIC_DIR="$HOME/music"
XDG_PICTURES_DIR="$HOME/picture"
XDG_VIDEOS_DIR="$HOME/video"

或者使用 暂时改为英文环境,再改回中文:

1
2
3
4
5
6
7
export LANG=en_US 			 #step 1

xdg-user-dirs-gtk-update 	 #step 2
# 跳出对话框询问是否将目录转化为英文路径,同意并关闭.

export LANG=zh_CN 			 #step 3
#重起系统.系统会提示是否把转化好的目录改回中文.选择不再提示。

ubuntu 常用软件

  • htop 友好查看系统负载与进程, top 的加强版,一般 terminal 使用 q 键退出。
  • nload 监视网速,常用命令 nload -u M # 以MByte 为单位,也可以用 K 等,回车切换其他网卡。
  • System monitor Indicator 可以在状态栏以数字形式显示网速负载等信息。

nginx 配置

locate nginx 列出所有相关文件位置;

/etc/nginx/nginx.conf 服务器配置文件路径;

/etc/nginx/sites-available/default 重定向配置文件路径;

/etc/nginx/sites-enabled/default 这个应该是测试通过后的copy;

nginx -t 用于测试配置文件是否正确;

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
server {
        listen       80;
        server_name  localhost;
        root /var/www;
        index index.php index.html;
        location / {
                try_files $uri $uri/ =404;
        }
# 重定向
        if ( $request_uri = "/" ) {
                rewrite "/" http://rachpt.iok.la/new/ break;
        } 
# 404 等页面重定向
        error_page 404 http://rachpt.iok.la/new/hide/r404.php;
        error_page 403 http://rachpt.iok.la/new/hide/r403.php;
        error_page 501 502 503 504 /50x.html;
        location = /50x.html {
                root /var/www;
        }
# php连接部分
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

更改/etc/nginx/nginx.conf在http定义区域加入: fastcgi_intercept_errors on; ,注意末尾分号。

ImageMagic 使用笔记

一些快捷键

命令 作用
space 显示下一张图片
backspace 显示上一张图片
h 水平翻转
v 垂直翻转
/ 顺时针旋转90度
\ 逆时针旋转90度
> 放大
< 缩小
F7 模糊图片
Alt+s 把图片中间的像素旋转
Ctrl+s 图象另存
Ctrl+d 删除图片
q 退出

display

1
2
3
4
5
	display foo.png 	 #显示图片

	display *.png 		 #如果你要显示多个文件,你可以使用通配符

	display -delay 5 *   #幻灯片

import 截屏

1
2
3
4
import foo.png				#截取矩形区域,保存为 foo.png,
import -pause 3 -frame foo.png  	#截取程序的窗口。-frame外框,-pause获得焦点才开始截图,
import -rotate 30 -pause 3 -frame foo.png	#倾斜窗口 30d度,
import -pause 3 -window root screen.png		#截取整个屏幕,暂停3秒。

Fit2D linux版下载地址

http://ftp.esrf.eu/pub/expg/FIT2D/

绑定两个地址:

1
2
sudo mount --bind /mnt/smb/ /srv/ftp/test/  #将smb 链接到test
sudo umount /srv/ftp/test/ #取消test的链接

花生壳

安装 32位:dpkg -i phddns_i386.deb 64位:dpkg -i phddns_3.0_x86_64.deb

卸载:dpkg -r phddns

phddns start(启动)| stop(停止)| status(状态)| restart(重启)| phddns reset(重置) phddns version(版本)

Texmaker

  1. 在弹出的文件管理器下进入usr/share/applications/texmaker路径.
  2. 选中Texmaker的标签,右击鼠标,点中属性.

然后将Command一栏中的texmaker %F 替换为 env UBUNTU_MENUPROXY= texmaker %F 可解决Texmaker快捷键失效问题

mv 命令

1
2
3
4
5
6
7
mv file_2.txt file_3.txt file_4.txt /home/rc/document #移动多个文件到doc
mv -i file_1.txt /home/rc/document #交互式移动,提醒
mv -v *.txt /home/rc/document #打印移动信息
mv -vn *.txt /home/rc/document #n 移动不重复的
mv -vu *.txt /home/rc/document #u 移动,时间戳更新的覆盖原来的
mv -vb *.txt /home/rc/document #b 移动,以~备份原来的
mv -f *.txt /home/rc/document #无条件覆盖

递归(Recursive)子目录,使用 参数"-r“或者”-R"。

1
cp -n file1/ file2/ # 跳过相同的文件
1
du -hc # 统计大小

终端中的链接符用法

  • &    使命令在后台运行。

    只要在命令后面跟上一个空格和 ‘&’。你可以一口气在后台运行多个命令。

1
2
ping c5 rachpt.cn &
sudo apt-get update & mkdir test & 
  • ;    运行几个命令。

    命令顺序执行。前后空格可要可不要。

1
apt-get update ; apt-get upgrade ; mkdir test
  • &&    操作符。

    如果第一个命令执行成功,才会执行第二个命令。

  • ||    操作符 。

    如果第一个命令执行失败,才会执行第二个命令。

  • !    操作符。

    执行除了提供的条件外的所有的语句。

1
rm -r !(*.html) #删除除了 ‘html’之外的所有文件
  • &&||    操作符。

    ‘与’ 和‘ 或’ 操作符的组合,它很像 ‘if-else‘ 语句。

1
2
3
4
ping -c3 rachpt.cn && echo "Verified" || echo "Host Down"
# ping rachpt.cn,如果成功打印‘已验证’,否则打印‘主机故障’。
# 等价于
if ping -c3 rachpt.cn; then echo "Verified"; else echo "Host Down"; fi
  • |    (管道)操作符。

    将第一个命令的标准输出作为第二个命令的标准输入.

1
ls -l | less
  • {}    令合并操作符。

    合并两个或多个命令,第二个命令依赖于第一个命令的执行。实质是一个没有名字的函数。注意后面的 } 要么单独一行,要么使用空格 隔离前后。作为对比,() 不必要,‘()’是新开一个子shell运行,‘{}’是在当前进程中运行。

1
2
3
4
5
[ -f /home/rachpt/Downloads/xyz.txt ] || touch /home/rachpt/Downloads/xyz.txt; echo "The file does not exist"

[ -f /home/rachpt/Downloads/xyz1.txt ] || { touch /home/rachpt/Downloads/xyz.txt; echo "The file does not exist" } 
 
#检查一下文件‘xyz.txt’是否在Downloads目录下,如果不存在则创建之并输出提示信息。
  • ()    操作符。
1
(Command_x1 && Command_x2) || (Command_x3 && Command_x4)
  • \      连接符。

    太长而分成多行命令。

ls 命令

参数 意义
-h 参数意味着便于人识别,单位 1024.
-si 与h类似,单位 1000。
-S 以文件大小排序。
–block-size=K M G T P … 指定单位,两个-,无空格。
-a 显示隐藏文件,linux种使用“.”开头表示隐藏文件。
-d 只列出目录。例,ls -d *。
-g 不打印所有者。
-G 不打印组信息。
-n 打印UID和DID。
–color=never 不使用颜色。
-p 增加 / 标记文件夹。
-r 反序。
-R 递归列出子目录文件。
-X 以扩展名排序,同 –sort=extension 。
-t 以修改时间排序,新的在前面。

定时任务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
crontab -e #编辑任务

crontab -l #查看任务

sudo /etc/init.d/cron start #启动服务
sudo service cron restart  # 也行,还有 stop start等。
# 现在都是用 systemd 管理daemon 了
sudo syatemctl start|stop|status cronie  # archlinux

pgrep cron #查看是否在运行

{% note default %}

# m h dom mon dow command

位置 意义 可用参数
m 分钟 0-59
h 小时 0-23
dom 1-31 Day Of month
mon 1-12
dow 星期 0-7 0,7 星期天 Day Of Week
command 要执行的命令 使用绝对路径!
在命令后加入 &gt;&gt; /home/rachpt/task.log 记录时间。

{% endnote %}

例子:

1
2
*/1  *  *  *  *  python /home/rachpt/test.py >>/home/rachpt/test.log 2>&1
# 每隔一分钟执行一次,表示重复的 用 */ + 时间。
1
2
*/3  6-8  *  *  *  python /home/rachpt/test.py >>/home/rachpt/test.log 2>&1
# 上午6至8点,每隔 三分钟执行一次。
1
2
3
* 5 * * *  /bin/sh /home/rachpt/test.sh >>/home/rachpt/test.log 2>&1

# 每天上午5点重复执行。

注意 * 号的数量。

| * | 代表所有的取值范围内的数字; | | ———————————————————- | | / | 代表”每”(“*/5”,表示每5个单位); | | | 代表从某个数字到某个数字(“1-4”,表示1-4个单位); | | , | 分开几个离散的数字。 |

ubuntu 开启日志记录设置:

1
2
3
sudo vim /etc/rsyslog.d/50-default.conf

# 去掉 cron 前面的 '#' 号

更多请看