[关闭]
@Gebitang 2015-07-07T11:55:36.000000Z 字数 13366 阅读 2548

Linode日记

ubuntu


收集整理Ubuntu系统使用中遇到的问题


linode使用笔记

2015-04-19重新开始使用Linode。跟Apple的密码一致,比较有纪念意义,避免忘记。新建一个正常用户和工作密码。新建ssh私钥一般网上密码。更改邮箱到PM
快速使用指南

重命名主机名

  1. echo "plato" > /etc/hostname
  2. hostname -F /etc/hostname

重新设置时区

  1. dpkg-reconfigure tzdata

升级系统

  1. apt-get update
  2. apt-get upgrade --show-upgraded

add a new user

  1. adduser exampleuser
  2. usermod -a -G sudo exampleuser

Securing Your Server

Nano编辑器

底下两行的提示信息。^G表示Ctrl+G



Ubuntu 日记

Installing the Stand-alone SDK Tools

To get started on Linux:

Unpack the .zip file you've downloaded. The SDK files are download separately to a user-specified directory.

Make a note of the name and location of the SDK directory on your system—you will need to refer to the SDK directory later when using the SDK tools from the command line.

Troubleshooting Ubuntu

If you need help installing and configuring Java on your development machine, you might find these resources helpful:

Here are the steps to install Java:
If you are running a 64-bit distribution on your development machine, you need to install additional packages first.

  1. # For Ubuntu 13.10 (Saucy Salamander) and above, install the libncurses5:i386, libstdc++6:i386, and zlib1g:i386 packages using apt-get:
  2. sudo dpkg --add-architecture i386
  3. sudo apt-get update
  4. sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386
  5. #For earlier versions of Ubuntu, install the ia32-libs package using apt-get:
  6. apt-get install ia32-libs
  7. #Next, install Java:
  8. apt-get install sun-java6-jdk

查看系统版本

  1. cat /proc/version
  2. uname -a

Git环境搭建

Linux 下一步步安装 Git Server
Git远程操作详解
GIT的使用

初始化repository(空的)

git init --bare projectname指定 --bare,当前 repository 下就只有projectname下的 objects,而没有真实文件。一般在 Server 端。

  1. # install git
  2. sudo apt-get install git
  3. # cd to the destination derectory. init a repository
  4. # init baer repository
  5. ecuser@ecweb:~/gitrepo$ git init --bare demoprj
  6. Initialized empty Git repository in /home/ecuser/gitrepo/demoprj/
  7. ecuser@ecweb:~/gitrepo$

进行首次提交,已有的工程初始化添加到git中

非空之后才能被正常 clone 到其他地方。更换一个目录之后:
1. 初始化git inint
2. 添加远程主机/仓库git remote add origin /home/ecuser/gitrepo/demoprj
3. 添加当前所有文件git add .
4. 提交本地仓库git commit -m "init project"
5. 提交到远程仓库git push origin master

修改后的文件再次提交,要先git add modify.file

  1. #init here
  2. ecuser@ecweb:~/gitrepo/drprj$ git init
  3. Initialized empty Git repository in /home/ecuser/gitrepo/drprj/.git/
  4. #add remote repository
  5. ecuser@ecweb:~/gitrepo/drpr$ git remote add origin /home/ecuser/gitrepo/demoprj/
  6. # add all files in current derectory to git
  7. ecuser@ecweb:~/gitrepo/drpr$ git add .
  8. # commit to git
  9. ecuser@ecweb:~/gitrepo/drpr$ git commit -m "init device register"
  10. [master (root-commit) b485ce3] init device register
  11. #update to origin
  12. ecuser@ecweb:~/gitrepo/drpr$ git push origin master

Eclipse 中使用git

  1. 安装Egit
  2. 利用ssh协议导入工程
    URI: /home/ecuser/gitrepo/deviceregister
    HOST: IP address 192.168.1.102
    Repository path: 会根据URI自动识别
    选择协议:ssh 端口22
    使用用户名密码认证。根据默认的进行配置。选择以工程的形式导入

git 中的忽略规则

  1. # 此为注释 – 将被 Git 忽略
  2. *.a # 忽略所有 .a 结尾的文件
  3. !lib.a # 但 lib.a 除外
  4. /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
  5. build/ # 忽略 build/ 目录下的所有文件
  6. doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

反向选中删除

删除abc之外的所有文件。参数abc必须是确定的单个文件?
ls | grep -v abc | xargs -i rm -rf {}

ssh允许root远程登录

vi /etc/ssh/sshd_config将PermitRootLogin without-password 修改为PermitRootLogin yes

1. 设置时间

更改时区:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或更改文件:/etc/sysconfig/clock

ZONE=Asia/Shanghai ( 查/usr/share/zoneinfo 下面的文件。 )
UTC=false ( 硬件时钟是否为 UTC 或者说 GMT 时钟。 )
ARC=false (如果是在 Alpha 机器上,则设置为 true 。 )

将系统日期设定成2014年6月24日的命令: date -s 06/24/14
将系统时间设定成下午1点52分14秒的命令: date -s 13:52:14


2. 用户、用户组管理

root权限,更多信息,参考

/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段:〔用户组名称〕:〔用户组密码〕:〔GID〕:〔用户列表〕


useradd 添加用户

(也可以使用adduser)用来创建新的用户帐号。参数:
-d 设置新用户的登陆目录
-e 设置新用户的停止日期,日期格式为MM/DD/YY
-f 帐户过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1
-g 使新用户加入群组
-G 使新用户加入一个新组。每个群组使用逗号“,”隔开,不可以夹杂空白字
-s 指定新用户的登陆Shell
-u 设定新用户的ID值
如:

useradd getbitang -d /home/gebitang -u 525 -s /bin/bash 默认新用户就在自己同名的组里
成功创建一个新用户以后,在/etc/passwd文件中就会增加一行该用户的信息,其格式如下:
〔用户名〕:〔密码〕:〔UID〕:〔GID〕:〔身份描述〕:〔主目录〕:〔登陆Shell〕
其中个字段被冒号“:”分成7各部分。
由于小于500的UID和GID一般都是系统自己保留,不用做普通用户和组的标志,所以新增加的用户和组一般都是UID和GID大于500的。
可以使用usermod修改用户的信息,如: usermod –d/home/user2 –s/bin/bash user2 使用-s /sbin/nologin表示不用于登录


passwd 修改密码

新用户需要制定密码才可以登录。 passwd gebitang
根据系统的提示信息输入两次密码,系统会显示:

passwd ::all authentication tokens updated successfully

删除用户: userdel -r gebitang -r将用户目录下的文档一并删除。在其他位置上的文档也将一一找出并删除。
新建群组:groupadd -g 555 testgroup
删除群组: groupdel testgroup


在线用户管理

查看机器中登陆的用户 w

[agentone@testagent ~]w>17:27:30up1day,22:25,2users,loadaverage:0.02,0.01,0.00USERTTYFROMLOGIN@IDLEJCPUPCPUWHATagentonepts/0192.168.100.18816:470.00s0.09s0.03swrootpts/1192.168.100.18816:4135:160.05s0.05sbash[agentone@testagent ]

我把pts/0踢掉(只有root才能去踢掉用户): `pkill -kill -t pts/0


拼音输入法

安装语言支持;安装iBUs框架;添加输入法选项(+号)

vi设置

vi无法高亮: 安装vim sudo apt-get install vim askubuntu

如何去掉^M 符号

在Unix/Linux下运行命令 dos2unix [文件名] (debian下需安装sysutils)

uft防火墙管理

sudo uft status
sudo ufw allow from 192.168.1.123

目录结构

40616 directories (根目录下共有40616个子目录,你不会都想浏览一遍吧?所以不重要我全干掉,否则这个帖子没法看了)


创建软连接

  1. #创建users.link指向Download文件夹完整路径
  2. ln -s /home/gebitang/Download/ users.link

命令行快捷键

Ctrl + A : 光标移到行首。
Ctrl + E : 光标移到行尾。

Ctrl + F :向前移动一个字符。
Ctrl + B :向后移动一个字符

Alt + F : 向前移动一个单词。
Alt + B : 向后移动一个单词。


VI快捷键

整页翻页 ctrl-f ctrl-b f就是forword b就是backward
翻半页 ctrl-d ctlr-u d=down u=up
$移动光标到行尾 n$:移动到第n行的行尾
数字0(Num):移动光标到行首
^:移动光标到行首第一个非空字符上去


vi 中查找:

/abc #向下查找abc
?abc #向上查找abc
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找
VI显示行号:在VI的命令模式下输入“:set nu” 或者修改vi配置文件“vi ~/.vimrc” 添加set nu


Linux系统挂载U盘的方法如下:

需要root权限。U盘插入后,fdisk -l自动识别出来,如Disk /dev/sdc 4023 MB..下面的具体信息才是设备号。通常为数字,如 /dev/sdc4 要mount的为 /dev/sdc4

  1. [root@localhost root]# fdisk -l
  2. #会出现很多关于设备的信息,通常sda1是U盘设备名
  3. Device Boot Start End Blocks Id System
  4. /dev/sda1 * 1 8186 261920 b Win95 FAT32
  5. [root@localhost root]# mkdir /mnt/usb #新建一个目录usb
  6. [root@localhost root]# mount /dev/sda1 /mnt/usb #U盘里的内容挂载到目录usb
  7. [root@localhost root]# ls /mnt/usb #查看usb
  8. [root@localhost root]# umount /dev/sda1 #使用完之后,安全删除U盘
  9. #cp 将U盘的东西拷贝到新的目录
  10. cp -rf /mnt/usb /home/winnie/Download #-rf r是复制目录 f是强制
  11. #rm 删除文件夹
  12. rm -rf /home/winnie/usb
  13. #mv 移动文件夹
  14. mv -f /home/winnie/Download/rpm /home/winnie/
  15. #文件夹重命名
  16. mv abc rpm abc变成rpm

tar命令

压缩
tar –cvf jpg.tar *.jpg//将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg//rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

  1. tar xvf file.tar //解压 tar包
  2. tar -xzvf file.tar.gz //解压tar.gz
  3. tar -xjvf file.tar.bz2 //解压 tar.bz2
  4. tar xZvf file.tar.Z //解压tar.Z
  5. unrar e file.rar //解压rar
  6. unzip file.zip //解压zip

目录、zip包基本操作


虚拟终端切换

Eclipse 报错找不到java

Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No java virtual machine was found after searching the following locations:
解决办法是在终端进入你的eclipse目录,然后输入:
mkdir jre
cd jre
ln -s 你的JDK目录/bin bin


安全卸载所有的java

1、 移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ):

  1. sudo apt-get update
  2. sudo apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
  3. sudo apt-get -y autoremove

2、清除配置信息:

dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge

3、清除java配置及缓存:
bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf

4、手动清除JVMs:
sudo rm -rf /usr/lib/jvm/*


ubuntu14.04设置静态ip

  1. auto eth0
  2. iface eth0 inet static
  3. address 192.168.1.117
  4. gateway 192.168.1.1 #这个地址你要确认下 网关是不是这个地址
  5. netmask 255.255.255.0

安装MySQLdb for Python

sudo apt-get install python-mysqldb


vsftp添加用户

  1. 新增FTP用户: adduser --s /bin/false --h /home/ftp your_usr_name
  2. 把需要开通FTP的用户名加入到ftp群组:usermod -aG ftp your_usr_name
  3. 如果你的/etc/shells里面没有包含/bin/false,则你用上述的方法建立的用户将无法访问FTP,解决方法:编辑/etc/shells,加入/bin/false这行。
  1. #以下方案实现以下功能:
  2. #1、锁定用户在/home/ftp默认目录活动,
  3. # 并保留/etc/vsftpd.chroot_list文件里面的用户列表可访问其他目录。
  4. #2、具备暂时冻结FTP用户的功能,将需暂停的用户名加入到/etc/vsftpd.usr_list即可。
  5. #
  6. #设置配置文件:
  7. #复制以下文件并保存为/etc/vsftpd.conf
  8. #新建两文件:touch /etc/vsftpd.chroot_list
  9. # touch /etc/vsftpd.user_list
  10. #新建目录:mkdir /home/ftp
  11. #新建群组:addgroup ftp
  12. #修改/home/ftp属性:chown ftp:ftp /home/ftp
  13. #新增FTP用户: adduser --shell /bin/false --home /home/ftp your_usr_name
  14. #把需要开通FTP的用户名加入到ftp群组:usermod -aG ftp your_usr_name
  15. #注意:
  16. #如果你的/etc/shells里面没有包含/bin/false,则你用上述的方法建立的用户将法访问#FTP,解决方法:编辑/etc/shells,加入/bin/false这行。
  17. #
  18. # Example config file /etc/vsftpd.conf
  19. listen=YES
  20. #listen_ipv6=YES
  21. anonymous_enable=YES
  22. local_enable=YES
  23. write_enable=YES
  24. #anon_upload_enable=YES
  25. #anon_mkdir_write_enable=YES
  26. dirmessage_enable=YES
  27. xferlog_enable=YES
  28. connect_from_port_20=YES
  29. #chown_uploads=YES
  30. #chown_username=whoever
  31. #xferlog_file=/var/log/vsftpd.log
  32. #xferlog_std_format=YES
  33. #idle_session_timeout=600
  34. #data_connection_timeout=120
  35. #nopriv_user=ftpsecure
  36. #async_abor_enable=YES
  37. #ascii_upload_enable=YES
  38. #ascii_download_enable=YES
  39. #ftpd_banner=Welcome to blah FTP service.
  40. #deny_email_enable=YES
  41. #banned_email_file=/etc/vsftpd.banned_emails
  42. chroot_local_user=YES
  43. chroot_list_enable=YES
  44. chroot_list_file=/etc/vsftpd.chroot_list
  45. #ls_recurse_enable=YES
  46. secure_chroot_dir=/var/run/vsftpd
  47. pam_service_name=vsftpd
  48. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
  49. rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
  50. anon_root=/home/ftp
  51. local_root=/home/ftp
  52. userlist_file=/etc/vsftpd.user_list
  53. userlist_enable=YES
  54. userlist_deny=YES

开机自启动管理

查看ubuntu启动级别

  1. #添加启动项目
  2. sudo update-rc.d mysql defaults
  3. #删除启动项目
  4. sudo update-rc.d -f mysql remove # -f force
  5. #查看各级别的启动项目 级别2,默认启动
  6. /etc/rc2.d$ ls
  7. K10unattended-upgrades K20speech-dispatcher S30urandom S60umountroot
  8. K20kerneloops README S31umountnfs.sh S90halt
  9. K20rsync S20sendsigs S40umountfs
  10. #其中S表示启动,随后的数字表示启动的顺序。K表示不启动 kill?

perl: warning: Setting locale failed

更改本地化设置
LC_ALL=C 是为了去除所有本地化的设置,让命令能正确执行。
在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。
locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。


agt-get install subversion 提示缺少依赖库

14.04版本trusty的source.list源需要更新

  1. sudo cp /etc/apt/source.lost /etc/apt/source.list.backup
  2. ##可以编辑删除所有内容,添加新的源
  3. #http://tieba.baidu.com/p/2698487054 之后更新 添加163的源,测试可用
  4. sudo apt-get update
  5. sudo apt-get install subversion
  1. #------------------ubuntu14.04 trusty(sohu#山东网通用户强烈建议#)-----------------------#
  2. deb http://mirrors.sohu.com/ubuntu/ trusty multiverse universe restricted main
  3. deb http://mirrors.sohu.com/ubuntu/ trusty-updates multiverse universe restricted main
  4. deb http://mirrors.sohu.com/ubuntu/ trusty-backports multiverse universe restricted main
  5. deb http://mirrors.sohu.com/ubuntu/ trusty-security multiverse universe restricted main
  6. deb http://mirrors.sohu.com/ubuntu/ trusty-proposed multiverse universe restricted main
  7. #-------------ubuntu14.04 trusty(163#网易电信网通双线接入网速杆杆的#)-----------------#
  8. deb http://mirrors.163.com/ubuntu/ trusty main multiverse restricted universe
  9. deb http://mirrors.163.com/ubuntu/ trusty-security main multiverse restricted universe
  10. deb http://mirrors.163.com/ubuntu/ trusty-updates main multiverse restricted universe
  11. deb http://mirrors.163.com/ubuntu/ trusty-proposed universe restricted multiverse main
  12. deb http://mirrors.163.com/ubuntu/ trusty-backports main multiverse restricted universe
  13. #-------------------ubuntu14.04 trusty(taiwan)--------------------------#
  14. # deb http://tw.archive.ubuntu.com/ubuntu/ trusty multiverse universe restricted main
  15. # deb http://tw.archive.ubuntu.com/ubuntu/ trusty-security multiverse universe restricted main
  16. # deb http://tw.archive.ubuntu.com/ubuntu/ trusty-updates multiverse universe restricted main
  17. # deb http://tw.archive.ubuntu.com/ubuntu/ trusty-proposed multiverse universe restricted main
  18. # deb http://tw.archive.ubuntu.com/ubuntu/ trusty-backports multiverse universe restricted main
  19. #-------------------ubuntu14.04 trusty(上海交通大学)--------------------------#
  20. deb http://ftp.sjtu.edu.cn/ubuntu/ trusty universe restricted multiverse main
  21. deb http://ftp.sjtu.edu.cn/ubuntu/ trusty-security universe restricted multiverse main
  22. deb http://ftp.sjtu.edu.cn/ubuntu/ trusty-updates universe restricted multiverse main
  23. deb http://ftp.sjtu.edu.cn/ubuntu/ trusty-proposed universe restricted multiverse main
  24. deb http://ftp.sjtu.edu.cn/ubuntu/ trusty-backports universe restricted multiverse main
  25. #-------------------ubuntu14.04 trusty(北京交通大学)--------------------------#
  26. deb http://mirror.bjtu.edu.cn/ubuntu/ trusty universe restricted multiverse main
  27. deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-security universe restricted multiverse main
  28. deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-updates universe restricted multiverse main
  29. deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-proposed universe restricted multiverse main
  30. deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-backports universe restricted multiverse main

Eclipse在14.04上使用svn插件

可在Market里搜索svn,或利用url安装:
http://subclipse.tigris.org/update_1.10.x http://subclipse.tigris.org/update_1.6.x
安装时注意要将svnkit adapter选中安装,否则可能会报JavaHL错误。

Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注