Linux开发环境配置记录

远程登录windows

remmina

安装包:

  • remmina
  • remmina-plugin-rdp

配置:

  1. Protocol,选择“RDP - Remote Desktop Protocol”
  2. Basic标签
    • Server,windows的IP
    • User name
    • Password
  3. Advanced标签
    • Security,选择“Negotiate”
  4. SSH标签
    • 去掉Enable SSH tunnel

freerdp

本人倾向使用freerdp,简单易用。

安装包:freerdp
命令:(将username / password / 1.1.1.1替换成自己的内容)
xfreerdp -u username -p "password" -g 1024x768 -x l --plugin cliprdr --plugin rdpsnd 1.1.1.1

因为版本不同,可能命令参数不一样:
xfreerdp --sec rdp -u username -p "password" -g 1440x790 -x l --plugin cliprdr --plugin rdpsnd 1.1.1.1

跨系统拷贝粘贴失败问题

注意,windows 7有bug,导致clipboard有问题。即windows与Linux的copy、paste无法共用。解决方法见链接,其中mike 1504的做法,通过任务管理器杀掉rdpclip.exe再重启rdpclip.exe进程规避本问题。

This is an old problem. It has been around since pre2004, and microsoft is well aware of it. The cause is tied to MS Office as well as the OS. It usually occurs during Remote desktop sessions, and the problem is on the remote machine. The best solution I have found is to pull up task man, end the process rdpclip.exe, and then restart it by first changing focus from task manager to another program and back to task manager, choose file>new task (run) and then typing in rdpclip.exe and hit enter. The remote clip service will restart, and usually the copy you wanted to paste immediately becomes available.
If you fail to change focus from Task Manager to another program and back you may find the remote session locks up. If so, don’t panic, simply end the remote session and begin a new one.

In case you don’t know how to access task manager on the remote machine (CTRL ALT DELETE is always to the local machine), simply right click on the task bar and choose it from the context menu.
I would have thought by win7 this would have been fixed, but I am running Win7 enterprise trial right now and having the problem there.

ssh远程登录Linux

安装包:openssh-server
客户端登录:ssh username@hostIP

串口

PAC Manager

安装包:

  • PAC Manager,不在Ubuntu仓库中,Sourceforge链接
  • cu

需要把/dev/ttyUSB0的用户切换成cu的uucp才能被cu使用。
使用cu时需要用sudo
还没有明白remote-tty怎么用。

kermit

安装包:

  • ckermit
  • lrzsz,用于xmodem传输

不改权限的话,只有用超级用户才能正常用kermit访问串口。

1
2
3
4
5
6
7
8
9
10
11
12
sudo kermit
set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust

set receive packet-length 9024
set send packekt-length 9024

set protocol xmodem

在ckermit命令提示符下:

  • connect,连接串口;
  • ?,查看所有命令,前面的配置命令在此都可以看到;
  • send /path/to/file,传输文件,支持相对路径;
  • 在串口控制台下,通过ctrl + \,再敲c,返回ckermit控制台。

Ser2net

共享串口(SerialPort),提供telnet服务。

配置文件/etc/ser2net.conf,类似下面的配置依葫芦画瓢就可以了。

  • 2001,端口号
  • telnet,用telnet访问串口
  • /dev/ttyUSB1,表示实际串口
  • 9600,波特率
  • 8DATABITS NONE 1STOPBIT,常见的8N1
  • 600,port timeout,如果在超时时间间隔内没有对串口进行任何操作,ser2net会自动退出。

可以将所有的波特率的配置都添加进去,注意使用不同的端口号。

1
2
2001:telnet:600:/dev/ttyUSB1:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner 
3001:telnet:600:/dev/ttyUSB1:115200 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner

Windows下,可使用Comfoolery共享串口,功能更加强大。

wine连接不上串口

来源链接
步骤:

  • 映射/dev/ttyUSB0成windows中的概念com1
1
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
  • 查看/dev/ttyUSB0的用户组,如下,用户组为dialout
1
2
ls -l /dev/ttyUSB0
crw-rw---T 1 root dialout 4, 6 Nov 18 20:34 ttyUSB0
  • 将当前用户加入用户组dialout
1
2
3
4
5
6
sudo vi /etc/group

修改
dialout:x:20:

dialout:x:20:your_user_name

文件共享

samba

安装包:samba

配置:

  • 修改配置文件/etc/samba/smb.conf,确认要共享的目录。sudo service samba restart生效。配置样例如下。
  • 创建samba用户:sudo smbpasswd -a user_name,user_name填成自己想要的名称。
1
2
3
4
5
[linuxMint]
comment = linux
path = /home/sunyongfeng/
writeable = yes
valid users = sunyongfeng

其中,linuxMint是共享目录显示给使用者的名称。path是实际共享的目录,valid users是合法的用户。

windows 7 如何清除自动登录的凭据

控制面板 -> 用户账户 -> 管理您的凭据,然后单击要清除的那个凭据,点击从保管库中删除,重启生效。

解决Ubuntu用户名变动后,无法从win7 登录 samba。

Linux 访问 Windows 共享目录

  1. 在 windows 设置好共享目录;
  2. 使用 smbclient 访问共享目录(可测试共享目录是否可用): smbclient //IP/share_dir -U your_username
  3. 挂载共享目录到 linux: sudo mount -t cifs -o username=your_username,password=your_passwd //IP/share_dir /mnt
  4. 亦可直接在文件管理器中直接输入smb://IP,按提示输入用户名密码,即可从 Linux 文件管理器中直接查看 windows 的共享目录。
  • smbclient 访问 log:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sunyongfeng@sunnogo:~$ smbclient //IP/share_dir -U your_name
Enter oa's password:
Domain=[sunnogo] OS=[Windows 7 Ultimate 7601 Service Pack 1] Server=[Windows 7 Ultimate 6.1]
smb: \> ls
. D 0 Thu Mar 10 19:24:05 2016
.. D 0 Thu Mar 10 19:24:05 2016
asic D 0 Thu Mar 10 18:58:41 2016
linux D 0 Thu Mar 10 18:58:43 2016
python D 0 Thu Mar 10 18:59:04 2016
工具 D 0 Thu Mar 10 19:06:10 2016
项目 D 0 Thu Mar 10 20:08:25 2016

40960 blocks of size 4194304. 33262 blocks available
smb: \>
  • mount挂载 log:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sunyongfeng@sunnogo:~$ sudo mount -t cifs -o username=your_username,password=your_passwd //IP/share_dir /mnt
    sunyongfeng@sunnogo:~$ ls -al /mnt/
    总用量 3244
    drwxr-xr-x 2 root root 4096 3月 10 19:24 .
    drwxr-xr-x 3 root root 4096 3月 11 09:35 ..
    drwxr-xr-x 2 root root 0 3月 10 18:58 linux
    drwxr-xr-x 2 root root 0 3月 10 18:59 python
    drwxr-xr-x 2 root root 0 3月 10 19:06 工具
    drwxr-xr-x 2 root root 0 3月 10 20:08 项目

tftp

安装包:tftpd-hpa

配置:

  • 修改配置文件/etc/default/tftpd-hpa,样例如下。
  • 需要chmod 777 /home/sunyongfeng/tftpboot,否则可能出现权限问题,TFTP error: 'Permission denied' (0)。tftpboot为tftp共享的主目录。
1
2
3
4
5
6
7
8
# /etc/default/tftpd-hpa  

TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_DIRECTORY="/home/sunyongfeng/tftpboot"
TFTP_ADDRESS="[::]:69"
#TFTP_OPTIONS="--secure"
TFTP_OPTIONS="-l -c -s"

异常

  • 如果一直timeout,可能是网卡出问题了,sudo service networking restart,或者重启电脑。
  • 有时不清楚为何启机之后,tftpd-hpa在,但是tftp无法下载。sudo service tftpd-hpa restart可解决此问题。没有看系统log细究原因。

atftpd

另一款tftp服务器。

安装包:atftpd
配置:

  • 修改/etc/default/atftpd,样例如下。
  • /etc/inet.conf中的tftp注释掉,不然会出现“atftpd: cannot bind port: 69/udp”。

限制:最大文件有限制,32M。

1
2
3
4
#/etc/default/atftpd

USE_INETD=false
OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=7 /home/sunyongfeng/tftpboot"

安装linaro gcc交叉编译器

1
2
3
sudo add-apt-repository ppa:linaro-maintainers/toolchain
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabi

终端(Terminal)

guake

fbterm

screen

  • screen -S sessionName,为 screen 会话取名字
  • screen -list,查看当前有哪些会话
  • screen -r sessionName,Reattach 到 sessionName 会话
  • ctrl + a + d,detach 当前会话

script

启机进入命令行

/etc/default/grub, change this line
RUB_CMDLINE_LINUX_DEFAULT="splash quiet" to
GRUB_CMDLINE_LINUX_DEFAULT="text"
Run sudo update-grub when done. This is easily reversed too if you need to change back.