Linux Debian sources.list
Debian 镜像更新源
镜像更新源做的比较好的有网易163、阿里云还有中科大。
方法为编辑/etc/apt/sources.list文件,替换为下述内容即可。
最好做好备份。
网易提供的源
1 | ## Jessie |
如果163的无法更新,可以考虑使用中科大的源
中国科技大学源
1 | #(1)squeeze版本 |
阿里云的源
1 | deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib |
对于Debian7.8的版本,被归档了,我试了一下只有下面的这个可以用
1 | deb http://archive.debian.org/debian/ wheezy main contrib non-free |
Linux的sysctl命令
简介
sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下。sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。
命令格式
1 | sysctl [-n] [-e] -w variable=value |
命令参数
- -w 临时改变某个指定参数的值,如 sysctl -w net.ipv4.ip_forward=1
- -a 显示所有的系统参数
- -p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
使用范例:
如果仅仅是想临时改变某个系统参数的值,可以用两种方法来实现,例如想启用IP路由转发功能:
1 | #echo 1 > /proc/sys/net/ipv4/ip_forward |
以上两种方法都可能立即开启路由功能,但如果系统重启,或执行了
1 | # service network restart |
命令,所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件将 net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1
还有一种方法设置主机名
sysctl kernel.hostname
Linux tmux终端复用神器
简介
Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。
使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;
是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。
功能
- 提供了强劲的、易于使用的命令行界面。
- 可横向和纵向分割窗口。
- 窗格可以自由移动和调整大小,或直接利用四个预设布局之一。
- 支持 UTF-8 编码及 256 色终端。
- 可在多个缓冲区进行复制和粘贴。
- 可通过交互式菜单来选择窗口、会话及客户端。
- 支持跨窗口搜索。
- 支持自动及手动锁定窗口。
使用
进入tmux
面板后,一定要先按ctrl+b,然后松开,再按其他的组合键才生效。
新建会话
第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1。
使用编号区分会话,不太直观,更好的方法是为会话起名。
使用下面的指令即可:
1 | $ tmux new -s <session-name> |
查看会话
查看当前所有的 Tmux 会话
1 | $ tmux ls |
分离会话
这个是最常用的方法了,按下Ctrl+b d
或者输入tmux detach
命令,就会将当前会话与窗口分离。
而此时会话里面的进程依然在后台执行。
参考查看会话
来查看所有的会话。
接入会话
attach命令用于重新接入某个已存在的会话,可以通过编号或者会话名来接入
1 | # 使用会话编号 |
杀死会话
可以通过tmux kill-session
命令用于杀死某个会话,与attach类似,可以通过会话编号与session名来kill
1 | # 使用会话编号 |
切换会话
tmux switch命令用于切换会话。
1 | # 使用会话编号 |
重命名会话
tmux rename-session命令用于重命名会话。
1 | $ tmux rename-session -t 0 <new-name> |
上面命令将0号会话重命名。
最简操作流程
综上所述,以下是 Tmux 的最简操作流程。
- 新建会话
tmux new -s session_name
- 在 Tmux 窗口运行所需的程序
- 按下快捷键
Ctrl+b d
将会话分离 - 下次使用时,重新连接到会话
tmux attach-session -t session_name
窗格操作
Tmux 可以将窗口分成多个窗格(pane),每个窗格运行不同的命令。以下命令都是在 Tmux 窗口中执行。
划分窗格
tmux split-window命令用来划分窗格。
1 | # 划分上下两个窗格 |
移动光标
tmux select-pane命令用来移动光标位置。
1 | # 光标切换到上方窗格 |
交换窗格位置
tmux swap-pane命令用来交换窗格位置。
1 | # 当前窗格上移 |
窗口管理
除了将一个窗口划分成多个窗格,Tmux 也允许新建多个窗口。
新建窗口
tmux new-window命令用来创建新窗口。
1 | $ tmux new-window |
切换窗口
tmux select-window命令用来切换窗口。
1 | # 切换到指定编号的窗口 |
重命名窗口
tmux rename-window命令用于为当前窗口起名(或重命名)。
1 | $ tmux rename-window <new-name> |
七、其他命令
下面是一些其他命令。
列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys
列出所有 Tmux 命令及其参数
$ tmux list-commands
列出当前所有 Tmux 会话的信息
$ tmux info
重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf
常用到的几个组合键:
快捷键 | 说明 |
---|---|
ctrl+b ? | 显示快捷键帮助 |
ctrl+b 空格键 | 采用下一个内置布局,这个很有意思,在多屏时,用这个就会将多有屏幕竖着展示 |
Ctrl+b , | 窗口重命名 |
ctrl+b ! | 把当前窗口变为新窗口 |
ctrl+b “ | 模向分隔窗口 |
ctrl+b % | 纵向分隔窗口 |
Ctrl+b ; | 光标切换到上一个窗格 |
Ctrl+b { | 当前窗格与上一个窗格交换位置 |
Ctrl+b } | 当前窗格与下一个窗格交换位置 |
ctrl+b 空格键 | 采用下一个内置布局,这个很有意思,在多屏时,用这个就会将多有屏幕竖着展示 |
ctrl+b ! | 把当前窗口变为新窗口 |
ctrl+b “ | 模向分隔窗口 |
ctrl+b % | 纵向分隔窗口 |
ctrl+b q | 显示分隔窗口的编号 |
ctrl+b o | 跳到下一个分隔窗口。多屏之间的切换 |
ctrl+b 上下键 | 上一个及下一个分隔窗口 |
ctrl+b C-方向键 | 调整分隔窗口大小 |
ctrl+b & | 确认后退出当前tmux |
ctrl+b [ | 复制模式,即将当前屏幕移到上一个的位置上,其他所有窗口都向前移动一个。 |
ctrl+b c | 创建新窗口 |
ctrl+b d | 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 |
ctrl+b n | 选择下一个窗口 |
ctrl+b l | 最后使用的窗口 |
Ctrl+b o | 光标切换到下一个窗格 |
ctrl+b n | 选择下一个窗口 |
ctrl+b l | 最后使用的窗口 |
ctrl+b p | 选择前一个窗口 |
ctrl+b w | 以菜单方式显示及选择窗口 |
ctrl+b s | 以菜单方式显示和选择会话。这个常用到,可以选择进入哪个tmux |
ctrl+b t | 显示时钟。然后按enter键后就会恢复到shell终端状态 |
Ctrl+b q | 显示窗格编号 |
Ctrl+b x | 关闭当前窗格 |
Ctrl+b z | 当前窗格全屏显示,再使用一次会变回原来大小 |
Ctrl+b |
光标切换到其他窗格。 |
Ctrl+b Ctrl+o | 所有窗格向前移动一个位置,第一个窗格变成最后一个窗格 |
Ctrl+b Alt+o | 所有窗格向后移动一个位置,最后一个窗格变成第一个窗格 |
Ctrl+b Ctrl+ |
按箭头方向调整窗格大小 |
Ctrl+b |
切换到指定编号的窗口,其中的 |
基本概念
tmux有三个基本概念:
- 会话(Session)
- 窗口(Window)
- 面板(Pane)
窗格(Pane)操作
- % 左右平分出两个窗格
- “ 上下平分出两个窗格
- x 关闭当前窗格
- { 当前窗格前移
- } 当前窗格后移
- ; 选择上次使用的窗格
- o 选择下一个窗格,也可以使用上下左右方向键来选择
- space 切换窗格布局,tmux 内置了五种窗格布局,也可以通过 ⌥1 至 ⌥5来切换
- z 最大化当前窗格,再次执行可恢复原来大小
- q 显示所有窗格的序号,在序号出现期间按下对应的数字,即可跳转至对应的窗格
窗口(window)操作
tmux 除了窗格以外,还有窗口(window) 的概念。依次使用以下快捷键来熟悉 tmux 的窗口操作:
- c 新建窗口,此时当前窗口会切换至新窗口,不影响原有窗口的状态
- p 切换至上一窗口
- n 切换至下一窗口
- w 窗口列表选择,注意 macOS 下使用 ⌃p 和 ⌃n 进行上下选择
- & 关闭当前窗口
- , 重命名窗口,可以使用中文,重命名后能在 tmux 状态栏更快速的识别窗口 id
- 0 切换至 0 号窗口,使用其他数字 id 切换至对应窗口
- f 根据窗口名搜索选择窗口,可模糊匹配
Session操作
刚说完flag就倒了,本地使用还好,SSH的时候session真的必不可少。
下面列出一些session的操作
启动新会话:
1 | tmux [new -s 会话名 -n 窗口名] |
恢复会话:
1 | tmux at [-t 会话名] |
列出所有会话:
1 | tmux ls |
关闭会话:
1 | tmux kill-session -t 会话名 |
关闭所有会话:
1 | tmux kill-server |
Difmap 载入数据
载入数据
现在我们已经在Difmap环境中了,将有一个如下的提示符:
1 | 0> |
现在我们开始输入第一个命令,用于载入数据。
1 | 0> observe YOUR_DATA |
提示:这里可以简单地输入obs然后使用Tab即可补全剩余的命令。这项技术有助于在整个Difmap的使用过程中节省宝贵的时间。随时随地掌握这些技巧,可以提升软件使用体验^_^。
此时应该可以看到下述输出了。
1 | Reading UV FITS file: 3C219.L(A.butDefinitelyB).postProc.uvf |
该命令详细列出了源的相关信息。检查所有的Ifs,通道、频率等都是正确的。如果出现了诸如“”的错误,你可能需要返回AIPS来确定输出了正确的数据。如果需要得到更多的信息,可以输入下述命令:
1 |
|
此时在启动目录会生成一个log文件difmap.log,这个文件记录了你在DIFMAP交互环境中输入的所有命令。 It will also include selected output lines though they will be preceded by a ! in order to comment them out.
这个log文件可以通过一种脚本的形式来使用,可以通过在交互命令中输入 @difmap.log
来执行这个脚本。
但需要注意的是这个脚本无法与PGPLOT进行交互,所以交互式的flagging都不会发生。所以要特别注意这一点。
The next step is to choose the Stokes parameter you are interested in:
1 | 0> select i |
Difmap 启动
启动difmap
服务器已经安装了Difmap2.4l版本,只需要在环境变量PATH中加入/usr/local/difmap即可,详细安装步骤可以参考DIFMAP安装手册。
安装好DIFMAP后,打开一个终端,然后进入到数据所在的目录。输入difmap即可得到如下提示信息:
TODO : Adding difmap startup terminal
这个示例我们使用源J1036+1326的C Band C Array的数据,
This is from Project AT0205, Seg A, source TEX1033+137, taken on 7/20/97 with 370 seconds TOS.
Difmap Introduction
Linux的 htop 命令
远程登录不需要密码
远程登录不需要密码
- 在本机上操作ssh-keygen
- ssh-copy-id -i .ssh/id_rsa.pub remote_username@remote_ipaddress
- ssh remote_username@remote_ipaddress
背景
最近参加了一个培训,分配了很多的账号,随便找个账号的密码,如下所示gyDYKdf39dk*dfs@&
,关键操作的过程中,你还需要打开多个终端。
那么问题来了,如何才能缩短这个浪费生命的无聊过程呢,方法很简单,只有3步。
远程登录不需要密码
1 在本机上操作ssh-keygen,会在目录.ssh种生成一个id_rsa.pub文件 2 ssh-copy-id -i .ssh/id_rsa.pub remote_username@remote_ipaddress 3 ssh remote_username@remote_ipaddress
比如,来个实际操作:
打开一个终端 $ ssh-keygen 拷贝 $ ssh-copy-id -i .ssh/id_rsa.pub hero@192.168.2.3 愉快登录 $ ssh hero@192.168.2.3
此时即可无密码登陆remote了
在.ssh/config中输入下述信息,即可快捷将ssh remote_username@remote_ipaddress精简为ssh remote了
1 | Host remote |
The Ultimate Guide to SSH - Setting Up SSH Keys
Welcome to our ultimate guide to setting up SSH (Secure Shell) keys. This tutorial will walk you through the basics of creating SSH keys, and also how to manage multiple keys and key pairs.
Create a New SSH Key Pair
Open a terminal and run the following command:
1 | ssh-keygen |
You will see the following text:
1 | Generating public/private rsa key pair. |
Press enter to save your keys to the default /home/username/.ssh
directory.
Then you’ll be prompted to enter a password:
1 | Enter passphrase (empty for no passphrase): |
It’s recommended to enter a password here for an extra layer of security. By setting a password, you could prevent unauthorized access to your servers and accounts if someone ever gets a hold of your private SSH key or your machine.
After entering and confirming your password, you’ll see the following:
1 | Your identification has been saved in /home/username/.ssh/id_rsa. |
You now have a public and private SSH key pair you can use to access remote servers and to handle authentication for command line programs like Git.
Manage Multiple SSH Keys
Though it’s considered good practice to have only one public-private key pair per device, sometimes you need to use multiple keys or you have unorthodox key names. For example, you might be using one SSH key pair for working on your company’s internal projects, but you might be using a different key for accessing a client’s servers. On top of that, you might be using a different key pair for accessing your own private server.
Managing SSH keys can become cumbersome as soon as you need to use a second key. Traditionally, you would use ssh-add
to store your keys to ssh-agent
, typing in the password for each key. The problem is that you would need to do this every time you restart your computer, which can quickly become tedious.
A better solution is to automate adding keys, store passwords, and to specify which key to use when accessing certain servers.
SSH config
Enter SSH config
, which is a per-user configuration file for SSH communication. Create a new file: ~/.ssh/config
and open it for editing:
1 | nano ~/.ssh/config |
Managing Custom Named SSH key
The first thing we are going to solve using this config
file is to avoid having to add custom-named SSH keys using ssh-add
. Assuming your private SSH key is named ~/.ssh/id_rsa
, add following to the config
file:
1 | Host github.com |
Next, make sure that ~/.ssh/id_rsa
is not in ssh-agent
by opening another terminal and running the following command:
1 | ssh-add -D |
This command will remove all keys from currently active ssh-agent
session.
Now if you try closing a GitHub repository, your config
file will use the key at ~/.ssh/ida_rsa
.
Here are some other useful configuration examples:
1 | Host bitbucket-corporate |
Now you can use git clone git@bitbucket-corporate:company/project.git
1 | Host bitbucket-personal |
Now you can use git clone git@bitbucket-personal:username/other-pi-project.git
1 | Host myserver |
Now you can SSH into your server using ssh myserver
. You no longer need to enter a port and username every time you SSH into your private server.
Password management
The last piece of the puzzle is managing passwords. It can get very tedious entering a password every time you initialize an SSH connection. To get around this, we can use the password management software that comes with macOS and various Linux distributions.
For this tutorial we will use macOS’s Keychain Access program. Start by adding your key to the Keychain Access by passing -K
option to the ssh-add
command:
1 | ssh-add -K ~/.ssh/id_rsa_whatever |
Now you can see your SSH key in Keychain Access:
But if you remove the keys from ssh-agent
with ssh-add -D
or restart your computer, you will be prompted for password again when you try to use SSH. Turns out there’s one more hoop to jump through. Open your SSH config
file by running nano ~/.ssh/config
and add the following:
1 | Host * |
With that, whenever you run ssh
it will look for keys in Keychain Access. If it finds one, you will no longer be prompted for a password. Keys will also automatically be added to ssh-agent
every time you restart your machine.
Now that you know the basics of creating new SSH keys and managing multiple keys, go out and ssh
to your heart’s content!
终端技巧
终端技巧
打开终端的方式
- 鼠标点右键–terminal,即可打开。
- 点任务栏的”application”里面的”terminal”打开
- 命令方式:Alt+F2后在出现”运行应用程序”中输入x-terminal-emulator(一般在你输入到x-term后系统会自己显示全部)或者输入”gnome-terminal”
使用终端的快捷方式
- Shift+Ctrl+T:新建标签页
- Shift+Ctrl+W:关闭标签页
- Ctrl+PageUp:前一标签页
- Ctrl+PageDown:后一标签页
- Shift+Ctrl+PageUp:标签页左移
- Shift+Ctrl+PageDown:标签页右移
- Alt+1:切换到标签页1
- Alt+2:切换到标签页2
- Alt+3:切换到标签页3
- Shift+Ctrl+N:新建窗口
- Shift+Ctrl+Q:关闭终端
终端中的复制/粘贴:
- Shift+Ctrl+C:复制
- Shift+Ctrl+V:粘贴
终端改变大小:
- F11:全屏
- Ctrl+plus:放大
- Ctrl+minus:减小
- Ctrl+0:原始大小
打开多个终端时,要从一个终端转到另外一个终端,可以通过同时按下alt后,再按tab键,按到自己想要的终端后松开,即可跳到想要得终端