更新源
Ubuntu 的软件源配置文件是 /etc/apt/sources.list
1 | sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 更新源前,先备份一份源 |
再文件末尾添加如下源:
1 | deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse |
然后控制台输入命令更新系统:
1 | sudo apt-get update |
移除软件或库
1 | 删除 LibreOffice 软件 |
安装命令
1 | 官网下载sogo安装包,然后用命令行安装sogo拼音输入法 |
1 | 安装git |
解压命令
1 | 如安装Jdk时,我们使用tar命令进行解压 |
添加环境变量
参考:http://www.powerxing.com/linux-environment-variable/
设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别。
通过文件设置 Linux 环境变量
首先是设置全局环境变量,对所有用户都会生效:
- etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。
- /etc/bashrc: 当 bash shell 被打开时,该文件被读取。也就是说,每次新打开一个终端 shell,该文件就会被读取。
接着是与上述两个文件对应,但只对单个用户生效:
~/.bash_profile 或 ~/.profile: 只对单个用户生效,当用户登录时该文件仅执行一次。用户可使用该文件添加自己使用的 shell 变量信息。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系统一般是 ~/.profile 文件。
~/.bashrc: 只对单个用户生效,当登录以及每次打开新的 shell 时,该文件被读取。
然后需要使用 source
命令,使当前配置的环境变量生效:
1
source ~/.bashrc
此外,修改 /etc/environment 这个文件也能实现环境变量的设置。/etc/environment 设置的也是全局变量,从文件本身的作用上来说, /etc/environment 设置的是整个系统的环境,而/etc/profile是设置所有用户的环境。有几点需注意:
- 系统先读取 etc/profile 再读取 /etc/environment(还是反过来?)
- /etc/environment 中不能包含命令,即直接通过
VAR="..."
的方式设置,不使用 export 。 使用
source /etc/environment
可以使变量设置在当前窗口立即生效,需注销/重启之后,才能对每个新终端窗口都生效。
修改 Linux 环境变量实例
以 Ubuntu 为例,修改 ~/.profile 文件:
1 | vim ~/.profile |
如果该文件存在,则在文件的最后看到如下代码,PATH 变量的值使用冒号(:)隔开的:
1 | set PATH so it includes user's private bin if it exists |
在最后加上代码 PATH="$PATH:/usr/local/hadoop/bin"
,注意等号(=)两边不要有空格,即:
1 | set PATH so it includes user's private bin if it exists |
因为这个文件是在用户登陆是才读取一次的,所以需要重启才会生效(修改 /etc/profile、/etc/environment 也是如此)。但可以使用命令 source ./.profile
使其立即生效。通过 echo $PATH
可以看到修改后的变量值:
1 | source ./.profileecho $PATH |
通过 Shell 命令 export 修改 Linux 环境变量
另一种修改 Linux 环境变量的方式就是通过 Shell 命令 export,注意变量名不要有美元号 $,赋值语句中才需要有:
1 | export PATH=$PATH:/usr/local/hadoop/bin |
export 方式只对当前终端 Shell 有效
使用 export 设置的变量,只对当前终端 Shell 有效,也就是说如果新打开一个终端,那这个 export 设置的变量在新终端中使无法读取到的。适合设置一些临时变量。
根据变量所需,选择设置方式,例如 JAVA_HOME 这类变量,就适合将其设为为全局变量,可在 /etc/environment 中设置。
设置权限
参考:http://blog.csdn.net/flyingflame/article/details/1652458
将目前目录下的所有档案与子目录皆设为任何人可读取 :
1 | chmod -R a+r * |
将目前目录下的所有档案与子目录皆设为任何人可可读可取可写:
1 | chmod -R 777 * |
后台管理
nohup 后台运行
自己常用的后台开启shadowsocks
1 | nohup sh shadow.sh & |
查看后台进程
1 | jobs -l |
将后台切换到当前运行
1 | bg %` # 将进程好为1的后台程序设置到当前运行 |
Ctrl + Z 暂停当前进程
然后可以通过使用
1 | jobs -l # 查看当前进程 |
kill 杀死当前进程
1 | kill %1 # 杀死进程号为1的进程 |
Vim常用命令
- ZZ 保存
- U 返回
- . 前进
- i O 插入
Vim 全选复制删除
全部删除:按esc键后,先按gg(到达顶部),然后dG
全部复制:按esc键后,先按gg,然后ggyG
全选高亮显示:按esc键后,先按gg,然后ggvG或者ggVG
单行复制:按esc键后, 然后yy
单行删除:按esc键后, 然后dd
粘贴 :按esc键后, 然后p
解析:
set nu: 显示行号
H J K L : 左 ,下, 上, 右
gg:是让光标移到首行,在vim才有效,vi中无效
v : 是进入Visual(可视)模式
G :光标移到最后一行
5G : 移动到第5行
选中内容以后就可以其他的操作了,比如:
d 删除选中内容
y 复制选中内容到0号寄存器
**“+y** 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用
vim只能粘贴50行的问题:
在当前用户主目录()编辑/.vimrc(如果不存在,新建这个文件),添加一行
1 | :set viminfo='1000,<500 |
至于为什么要输入输入’1000,这个其实不重要,最主要的是输入<500,它是设置寄存器保存的行数的。即最大值为 500
文件搜索:find 命令
通用格式: find pathname -options [-print -exec -ok]
例子
1 | find / -name filename # 再根目录里面搜索文件名为filename的文件 |
关键字搜索:grep
例如:再src/caffe/layer_factory.cpp
中有个宏调用: REGISTER_LAYER_CREATOR(Pooling, GetPoolingLayer); 可以用过grep 命令查看这个宏到底干了什么,再caffe根目录下运行一下命令:
1 | grep -n -H -R "REGISTER_LAYER_CREATOR" |
命令行参数解释:
参数 | 作用 |
---|---|
-n | 显示行号,便于定位 |
-H | 显示文件名,便于定位 |
-R | 递归查找每个子目录,视乎工程较大、分多个目录存放的场景 |
查看端口是是否被占用
lsof
1 | lsof -i # 端口号查看某个端口是否被占用 |
netstat
1 | netstat -anp|grep 80 # 查看80端口是否被占用 |
多文件替换字符
sed
xargs
比如我们要替换掉所有标签文件中标错了的标签,将>race 替换为 >trace,具体使用方法如下:
1 | grep ">rack" -rl /home/lly/test/* | xargs sed -i "s/>rack/>track/g" |
性能分析
top
查看资源占用情况
1 | top |
reference: http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html
释放内存
free
查看内存使用情况
1 | free -h |
Terminal进入USB
1. Find what the drive is called
You’ll need to know what the drive is called to mount it. To do that fire off one of the following (ranked in order of my preference):
1 | lsblk |
You’re looking for a partition that should look something like: /dev/sdb1
. The more disks you have the higher the letter this is likely to be. Anyway, find it and remember what it’s called.
2. Create a mount point (optional)
This needs to be mounted into the filesystem somewhere. You can usually use /mnt/ if you’re being lazy and nothing else is mounted there but otherwise you’ll want to create a new directory:
1 | sudo mkdir /media/usb |
3. Mount!
1 | sudo mount /dev/sdb1 /media/usb |
When you’re done, just fire off:
1 | sudo umount /media/usb |