Ubuntu常用的命令与操作

查看硬件信息

lspci : 快速查看硬件信息
lsusb : 查看usb设备信息
lshw : 查看综合的设备配置信息
lshw | less  : 在less里看硬件信息
lsmod : 查看系统加载了哪些设备模块

查看系统及用户信息

lsb_release -a  : 查看系统版本
cat /etc/*release :查看系统相关信息
hostnamectl :查看系统内核信息

cat /etc/issue :查看ubuntu版本
cat /proc/version : 查看linux版本信息
uname -a : 查看系统版本与名称

uname:显示系统名称
hostname:显示主机名

last:列出最近的用户登录
lastlog:列出每一个用户的最近登录情况
free:显示内存使用状况
vmstat:详细列出内存使用状况
top:系统监视器

Ubuntu系统目录结构

以下为Ubuntu目录的主要目录结构,您稍微了解它们都包含了哪些文件就可以了,不需要记忆。

/   根目录 
    │ 
    ├boot/      启动文件。所有与系统启动有关的文件都保存在这里 
    │    └grub/   Grub引导器相关的文件 
    │ 
    ├dev/       设备文件 
    ├proc/      内核与进程镜像 
    │ 
    ├mnt/      临时挂载 
    ├media/   挂载媒体设备 
    │ 
    ├root/      root用户的$HOME目录 
    ├home/          
    │    ├user/   普通用户的$HOME目录 
    │    └.../ 
    │ 
    ├bin/      系统程序 
    ├sbin/      管理员系统程序 
    ├lib/      系统程序库文件 
    ├etc/      系统程序和大部分应用程序的全局配置文件 
    │   ├init.d/   SystemV风格的启动脚本 
    │   ├rcX.d/   启动脚本的链接,定义运行级别 
    │   ├network/   网络配置文件 
    │   ├X11/      图形界面配置文件 
    │ 
    ├usr/       
    │   ├bin/      应用程序 
    │   ├sbin/   管理员应用程序 
    │   ├lib/      应用程序库文件 
    │   ├share/   应用程序资源文件 
    │   ├src/      应用程序源代码 
    │   ├local/       
    │   │     ├soft/      用户程序       
    │   │     └.../      通常使用单独文件夹 
    │   ├X11R6/   图形界面系统 
    │ 
    ├var/         动态数据 
    │ 
    ├temp/         临时文件 
    ├lost+found/   磁盘修复文件

ubuntu12.04启用root用户登录

Ubuntu 12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。
以普通身份登陆Ubuntu后,在终端窗口里面输入: sudo -s.
然后输入普通用户登陆的密码,回车即可进入 root用户权限模式。
然后执行: vi /etc/lightdm/lightdm.conf.
增加 greeter-show-manual-login=true allow-guest=false.

修改完后的整个配置文件是

[SeatDefaults]
greeter-session=unity-greeter
user-session=Ubuntu
greeter-show-manual-login=true #手工输入登陆系统的用户名和密码
allow-guest=false   #不允许guest登录

然后启用root帐号:

sudo passwd root

根据提示输入root帐号密码,重启Ubuntu,登录窗口会有“登录”选项,就可以通过root登录了。

Ubuntu给用户添加sudo权限

方法一:
要添加新用户到sudo,最简单的方式就是使用 usermod 命令。运行

$sudo usermod -G admin username 

这就你要作的,然而,如果用户已经是其他组的成员,你需要添加 -a 这个选项,象这样

$sudo usermod -a -G admin username

方法二:
使用visudo命令编辑器修改 /etc/sudoers 文件:
添加:

your_user_name ALL=(ALL) 

然后ctrl+w保存文件,ctrl+x退出
这样就加入了sudo组,可以使用sudo命令了。
如果想用sudo的时候不输入密码输入换成如下内容即可:

your_user_name ALL=(ALL)NOPASSWD: ALL 

Ubuntu优化清理无用的包

Ubuntu Linux与Windows系统不同,Ubuntu Linux不会产生无用垃圾文件,但是在升级缓存中,Ubuntu Linux不会自动删除这些文件,今天就来说说这些垃圾文件清理方法。

1,非常有用的清理命令:

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

这三个命令主要清理升级缓存以及无用包的。

2,清理opera firefox的缓存文件:

ls ~/.opera/cache4
ls ~/.mozilla/firefox/*.default/Cache

3,清理Linux下孤立的包:
图形界面下我们可以用:gtkorphan

sudo apt-get install gtkorphan -y

终端命令下我们可以用:deborphan

sudo apt-get install deborphan -y

4,卸载:tracker
这个东西一般我只要安装Ubuntu就会第一删掉tracker 他不仅会产生大量的cache文件而且还会影响开机速度。所以在新得利里面删掉就行。

5,删除多余的内核:一定不要删错哦,切记!
打开终端敲命令:dpkg --get-selections|grep linux
有image的就是内核文件
删除老的内核文件:

sudo apt-get remove 内核文件名 (例如:linux-image-2.6.27-2-generic)

内核删除,释放空间了,应该能释放130-140M空间。
最后不要忘了看看当前内核:uname -a

附录: 包管理的临时文件目录:
包在 /var/cache/apt/archives
没有下载完的在 /var/cache/apt/archives/partial

apt-get与dpkg等各种安装命令:http://mintelong.iteye.com/blog/480132

创建一个自启动的service(适用于Ubuntu与centOS)

以创建nexus为例
1.使用以下内容创建文件 /etc/init.d/nexus

#!/bin/bash
/usr/bin/nexus $*

并保存文件;

2.注册到启动项

Register nexus at boot time (Ubuntu, 32 bit):
sudo ln -s $NEXUS_HOME/bin/nexus /usr/bin/nexus
sudo chmod 755 /etc/init.d/nexus
sudo update-rc.d nexus defaults
Register nexus at boot time (RedHat, CentOS, 64 bit):
sudo ln -s $NEXUS_HOME/bin/nexus /usr/bin/nexus
sudo chmod 755 /etc/init.d/nexus
sudo chkconfig --add nexus

环境变量的设置

一、临时设置

export ORACLE_DIR=/opt/oracle/product

二、当前用户的全局设置
打开~/.bashrc,添加行:

export ORACLE_DIR=/opt/oracle/product

注销,这样每次以此用户登录Ubuntu,该环境变量都会生效;
若要产立即生效,终端执行命令:

test@ubuntu:~$ source .bashrc

三、所有用户的全局设置

$ vi /etc/profile 

在里面加入:

export ORACLE_DIR=/opt/oracle/product

若要产立即生效,终端执行命令:

test@ubuntu:~$ source /etc/profile

Bash 在用户登录时从四个文件中读取环境,执行顺序:

/etc/profile -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc

添加用户与组并设置权限

sudo groupadd nexus #添加nexus用户组
sudo useradd -g nexus nexus #添加nexus用户并添加到nexus用户组
sudo usermod -G root nexus #将nexus用户添加到root组
sudo gpasswd -d nexus root #从root组中删除nexus
sudo usermod -G vvvv nexus #将nexus用户添加到vvvv组
#sudo passwd nexus #给nexus用户创建密码
sudo usermod -G nexus vvvv #将vvvv用户添加到nexus组
id #显示当前用户id,群组id
id vvvv #查看用户vvvv的用户id,以及所属群组id
groups vvvv #查看用户vvvv的所有群组id

Ubuntu修改SHELL提示符,修改用户名计算机名

Ubuntu修改SHELL提示符
默认bash shell 的$PS1值:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

Ubuntu设置PS1属性达到SHELL提示符下短路径
默认情况下,Ubuntu终端会输出完整路径,在路径名很长的时候,提示方式很不友好,通过以下步骤修改PS1变量的设置,可以让终端输出短路径。

修改用户目录下的.bashrc文件

kay@Vostro-PC:~$ vi .bashrc

找到如下代码:

if [ "$color_prompt" = yes ]; then
   PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ ' # Modify1 w->W
else
   PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ ' #Modify2
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" # Modify3
    ;;
*)
    ;;
esac

以上内容全部修改完成之后,执行:source .bashrc
就能看到修改之后的效果了。
修改之前为kay@Vostro-PC:/etc/vim$
修改之后为kay@Vostro-PC:vim$
相对于直接使用export PS1=””的方式,此种修改方法保留了终端标题栏显示完整路径的功能。
如果想要终端颜色丰富一些,我们可以开启~/.bashrc中的force_color_prompt=yes参数,这样终端会用颜色来区分各种不同的项目,提高可阅读性。

ubuntu修改用户名称和计算机名称
修改用户名称:
切换到root打开如下两个配置文件
vi /etc/passwd
把我想改的”xxx”这个用户名改为”cyrec”了,保存并退出
vi /etc/shadow
同样把”xxx”改为”cyrec” ,保存并退出

重启后名字就变成了cyrec@xxx-dest-top:
现在要修改计算机名称xxx-dest-top为YYY-ZZZ:
修改有两步:
[1]修改/etc/hosts:sudo vi /etc/hosts

127.0.0.1       localhost
192.168.76.21   YYY-ZZZ

The following lines are desirable for IPv6 capable hosts

::1     localhost ip6-localhost ip6-loopback  
fe00::0 ip6-localnet  
ff00::0 ip6-mcastprefix  
ff02::1 ip6-allnodes  
ff02::2 ip6-allrouters  
ff02::3 ip6-allhosts  
~    

[2]修改/etc/hostname
内容为: YYY-ZZZ 保存,退出,重启,就可以了。

ubuntu下卸载删除安装软件

1、通过deb包安装的情况:
安装.deb包:sudo dpkg -i package_file.deb

反安装.deb包:sudo dpkg -r package_name

2、通过apt-get安装的情况:
安装: sudo apt-get install package_name

反安装: sudo apt-get remove package_name

3、彻底删除包括关联拓展包(很干净)
sudo aptitude purge package_name

环境变量

设置环境变量

echo "export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/" >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc

会话级的环境变量

Environment variable settings that should affect just a particular user (rather than the system as a whole) should be set into:

~/.pam_environment - This file is specifically meant for setting a user’s environment. It is not a script file, but rather consists of assignment expressions, one per line.
PATH DEFAULT=${PATH}:${HOME}/MyPrograms

Note: Using .pam_environment requires a re-login in order to initialize the variables. Restarting just the terminal is not sufficient to be able to use the variables.

If you are using KDE, see the KDE User-base page on this topic. Not recommended anymore:
~/.profile - In this file you can also place environment variable assignments, since it gets executed automatically by the DisplayManager during the start-up process desktop session as well as by the login shell when one logs-in from the textual console.

~/.bash_profile or ~/.bash_login - If one of these file exist, bash executes it rather than “~/.profile” when it is started as a login shell. (Bash will prefer “~/.bash_profile” to “~/.bash_login”). However, these files won’t influence a graphical session by default.

~/.bashrc - Because of the way Ubuntu currently sets up the various script files by default, this may be the easiest place to set variables in. The default configuration nearly guarantees that this file will be executed in each and every invocation of bash as well as while logging in to the graphical environment. The performance cost of this will be negligible; the overhead of forking and execing bash will massively dominate the small cost of setting a handful of variables.

系统级的环境变量

Environment variable settings that affect the system as a whole (rather than just a particular user) should not be placed in any of the many system-level scripts that get executed when the system or the desktop session are loaded, but into

/etc/environment - This file is specifically meant for system-wide environment variable settings. It is not a script file, but rather consists of assignment expressions, one per line. Specifically, this file stores the system-wide locale and path settings.

Not recommended:

/etc/profile - This file gets executed whenever a bash login shell is entered (e.g. when logging in from the console or over ssh), as well as by the DisplayManager when the desktop session loads. This is probably the file you will get referred to when asking veteran UNIX system administrators about environment variables. In Ubuntu, however, this file does little more than invoke the /etc/bash.bashrc file.

/etc/bash.bashrc - This is the system-wide version of the ~/.bashrc file. Ubuntu is configured by default to execute this file whenever a user enters a shell or the desktop environment.

Note: Any variables added to these locations will not be reflected when invoking them with a sudo command, as sudo has a default policy of resetting the Environment and setting a secure path (this behavior is defined in /etc/sudoers). As a workaround, you can use “sudo su” that will provide a shell with root privileges but retaining any modified PATH variables.

Note: When dealing with end-user/home desktop systems may be appropriate to place settings in the user’s ~/.pam_environment files discussed above rather than the system-wide ones, since those files do not require one to utilize root privileges in order to edit and are easily moved between systems.

Note: Some systems now use an envvar.sh placed in the /etc/profile.d/ directory to set system wide environment strings.

更多详细见: EnvironmentVariables
让环境变量即时生效: $ source /etc/environment

linux让环境变量即时生效

立即生效:使用source命令!
例 : source .bashrc 就会立即生效了……

注释:
source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bashrc. .bashrc 是等效的。

临时解决ubuntu解压windows生成的zip文件时乱码问题

有2种方式解决问题:

  1. 通过unzip行命令解压,指定字符集
    unzip -O CP936 xxx.zip (用GBK, GB18030也可以)
    

    有趣的是unzip的manual中并无这个选项的说明, unzip –help对这个参数有一行简单的说明。

  2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件
    /etc/environment中加入2行
    UNZIP="-O CP936"
    ZIPINFO="-O CP936"
    

批量解压zip文件

解压有乱码的zip文件
方法一:
unzip -O GBK mycpmpressfile.zip (用CP936, GB18030也可以)

方法二:

sudo apt-get install p7zip-full convmv
LANG=C 7z x abc.zip 
convmv -f cp936 -t utf8 -r --notest * 

方法三:
在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件/etc/environment中加入2行.

UNZIP="-O CP936"
ZIPINFO="-O CP936"

方法四:
写一个脚本程序,保存成unzipgbk.py. 代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import zipfile

print "Processing File " + sys.argv[1]

file=zipfile.ZipFile(sys.argv[1],"r");
for name in file.namelist():
 utf8name=name.decode('gbk')
 print "Extracting " + utf8name
 pathname = os.path.dirname(utf8name)
 if not os.path.exists(pathname) and pathname!= "":
 os.makedirs(pathname)
 data = file.read(name)
 if not os.path.exists(utf8name):
 fo = open(utf8name, "w")
 fo.write(data)
 fo.close
file.close()

在shell里使用解压工具批量解压zip
方法一:

for i in *.zip;do unzip $i;done;

方法二:

find -iname "*.zip" -execdir unzip {} +
find -iname "*.zip" -exec unzip {} \;

方法三:

ls *.tar.gz | xargs -n1 tar xzvf

方法四:

for i in $(ls *.gz);do tar xvf $i;done;

方法五:

tar xvf '*.tar.gz'  //因为tar不支持通配符语法,加上引号让shell解析通配符

批量解压并解决文件名乱码
方法一:

unzip -O CP936 '*.zip'

方法二:

for i in *.zip;do unzip -O CP936 $i;done;

查看系统内核版本

uname -a

win7硬盘安装Ubuntu12.04 LTS双系统

win7系统安装Ubuntu12.04LTS(Ubuntu其他系列亦是如此安装)

准备工作
1,镜像版本下载: Ubuntu downloads , 两个电脑中安装的都是Ubuntu64位的,这样提高了CPU的利用率。版本的选择取决于CPU的性能和运算能力。可用常见的工具软件检测下,如鲁大师等。
2,引导软件EasyBCD的下载:Click here(http://www.onlinedown.net/soft/58174.htm)。
3,格式化一个win7逻辑分区硬盘,格式化,然后再“计算机-管理-磁盘管理”下删除此分卷,作为Linux的文件系统。一共安装了两台电脑,一个分了250GB,另外一个分了100GB。这个逻辑分区最好是win7下的最后一个硬盘,若是放在win7中间的逻辑分区,安装过程中磁盘分区的时候,可能会出现不知的错误,影响其他硬盘中的已有数据。
4,前三步骤完成后,处理镜像文件的放置位置,此步骤有两种方式:

方式1>将镜像文件放置到准备工作3已经格式好的硬盘中。打开ISO,将文件夹casper下的initrd.lz和vmlinuz解压到当前目录即可。【此种方式没有尝试,一直用的都是方式2】。  
方式2>将镜像文件放置到win7的系统盘中。同4-1的后半部解压文件。

安装
1,常规安装EasyBCD软件,然后按照图示的流程配置引导文件。
按照上图的箭头方向依次点击“Add New Entry”——“NeoGrub”——“Install”,点到“Install”后出面下面的界面,再点“Configure”。

2,点击“Configure”后,在menu.list粘贴如下: 内容1:在准备4选择方式1, 如下:

title Install Ubuntu 12.04 LTS
root (hd0,N)
kernel (hd0,N)/vmlinuz boot=casper iso-scan/filename=/ubuntu-12.04-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,N)/initrd.lz

Tips:

hd(0,0), hd(0,1), hd(0,2), hd(0,3)表示主分区,
(hd0,4)以后的表示逻辑分区,现在我只有一个主分区C盘,则(hd0,0)表示C盘,
(hd0,4)表示D盘,(hd0,5)表示E盘,(hd0,6)表示F盘,

如:我的镜像就是放在F盘里,请把(hd0,6)改成自己对应的分区.
内容2:在准备步骤选择方式二

title Install Ubuntu 12.04 LTS
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-12.04-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz

3,保存,重新启动计算机即可。

4,启动项界面选择NeoGrub Bootloader ,之后回车 在这一步可能遇到的问题。参见可能遇到的问题 2,3,4.

5,点击进入install ubuntu进入界面即可,在安装之前,先摁下组合键 Alt + Ctrl + T 切出终端,输入以下命令:sudo umount –l /isodevice.

6,双击ubuntu桌面上的“安装Ubuntu12.04 LTS”进入安装,在“欢迎”界面中选择你想安装的语言, 接下来的“准备安装ubuntu”选项中最好的是勾选“安装这个第三方软件”;“安装类型”选择“其他选项”,之后就会出现“分区界面”.

7,Ubuntu分区,在该界面的最上面会看到 一个 sdaN(空闲)N取决于你准备中的num号码,首先在列表中选择该设备,点击“删除”,执行完毕后,选中点击“添加”即可。
分区顺序,分区类型,文件格式和空间大小:

'交换分区' 逻辑分区 文件格式:无 空间大小 :(此取决于你计算机物理内存大:,<=512MB的,可以设置为:实际大小*2 , >512MB的,可以直接填写内存的实际物理大小)
'/home' 逻辑分区 文件格式:ext4 空间大小: 除了'交换分区'和'/'大小之外的剩余分区。
'/' 主分区 文件格式:ext4 空间大小: 3GB<=Space <=10GB

这一步其他地方不要点选,包括做下面的下拉列表。之后点击下一步骤进行安装即可。
分区方案:对于80G,建议先逻辑后主分区:

/boot  逻辑分区,开始,200M
/swap  逻辑,开始,1000M 
/home 逻辑 开始36000M, 
最后/ 主分区, 34+,开始

8,常规的设置,时间,键盘布局,用户名和密码,之后等待安装完成。之后根据提示点击重启计算机。 安装过程中若询问,是否与win7共享文件等,根据实际需要勾选,我这边没有勾选。

9,重启后,你会发现,ubuntu的启动项会默认的排在第一位,根据你的需要来更改双系统的启动顺序。 ubuntu下启动终端,依次输入以下命令即可将win7放在启动项的第一位。

sudo mv /etc/grub.d/30_os-prober /etc/grub.d/06_os-prober
sudo update-grub

之后重启系统即可。

10,之后选择ubuntu系统,进入后,设置网络连接,更新系统软件即可,enjoy yourself。 Ubuntu Linux的安装过程可以详细参见 Ubuntu12.04 LTS的安装.

可能遇到的问题
1,EasyBCD配置好grub重启计算机后看不到,选择项,还是直接进入win7系统。
进入win7修改EasyBCD的设置,如图所示,改完重启即可。
或者在配置menu.list的时候,先检查这个选项。

2,显示install ubuntu,回车后出现如下错误:
Error28:select item cannot fit into memory
意思是:安装文件没有载入内存。
话说这个问题困扰了很长时间。最终解决方案:
重启计算机,进入BIOS中:
Advanced –chipse features ---memory hole at 15M-16M 改为 memory hole at disabled
保存退出即可。

3,error15: File not found
这个错误要去检查安装过程的第一步,EasyBCD的配置,主要还是两个地方的原因:
1>硬盘的顺序号。仔细看看上面的Tips。
2>镜像文件的名称是不是和menu.list文件中的名称完全一致。

4,Error19 :Linux kernel must before initrd
此错误的出现完全就是 menu.list的配置还存在一些错误,好好检查。

收尾
若采取的是安装方式二,完全安装后,可进入win7系统盘将镜像文件以及EasyBCD产生的启动配置文件全部删除掉,为你的C盘腾出空间。

版权所有,转载请注明出处 luowei.github.io.