Ubuntu命令整理总结

Ubuntu常用命令总结

1、常用命令1

如果ubuntu 默认没装编译环境,则可以执行命令:  sudo apt-get install build-essential 进行安装。

显示pkg列表: $pkg-config --list-all

查看系统已安装软件的库版本: pkg-config --modversion --cflags --libs  'libname'

在安装软件包时,编译完成后,输入echo $? 如果返回结果为0,则表示正常结束,否则就出错了。

设置Java环境变量: $sudo update-alternatives --config java

系统修复: $sudo apt-get install ubuntu-desktop $sudo apt-get install xserver-xorg

卸载时报告设备繁忙解决方法:fuser -v /mnt/xx, 看看是那个进程在用 fuser -k /mnt/xx, 把所有使用xx的进程全部杀掉,然后再umount

与标准服务器时间校准:sudo ntpdate time.nist.gov

cd命令#cd而不带任何参数,可以直接切换到/home目录(等效于cd ~),输入cd –则可以切换到你浏览的上一个目录。

mkdir #新建一个目录
gzip 'file' #生成一个.gz文件
m.gzip -d 'file.gz' #解压一个.gz文件
n.dmesg #查看kernel启动信息
uname -r #查看kernel版本信息
rpm -i program.rpm #安装rpm包
lspci #查看系统设备

chmod --reference 'file1' 'file2' #利用--reference参数可以使file2的权限与file1相同,其它更改命令如chgrp,chown等可相似使用:

sudo apt-get autoremove然后输入sudo apt-get clean  #快速清理磁盘垃圾

2、常用命令2

查看Ubuntu版本 #cat /etc/issue

查看软件xxx安装内容 #dpkg -L xxx
查找软件 #apt-cache search 正则表达式
查找文件属于哪个包 #dpkg -S filename apt-file search filename
查询软件xxx依赖哪些包 #apt-cache depends xxx
查询软件xxx被哪些包依赖 #apt-cache rdepends xxx
 
系统更新和升级 #sudo apt-get update(部分安装) #sudo apt-get dist-upgrade(全部安装)
清除所有删除包的残余配置文件 #dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "]|sudo xargs dpkg -P -
编译时缺少h文件的自动处理 #sudo auto-apt run ./configure
查看安装软件时下载包的临时存放目录 #ls /var/cache/apt/archives
备份当前系统安装的所有包的列表 #dpkg –get-selections | grep -v deinstall > ~/somefile
从上面备份的安装包的列表文件恢复所有包 #dpkg –set-selections /proc/sys/net/ipv4/ip_forward #sudo iptables  -t nat -I POSTROUTING -j MASQUERADE
手工增加删除一条路由 #sudo route add -net 192.168.0.1 netmask 255.255.255.0 gw 192.168.1.1  #sudo route del -net 192.168.0.1 netmask 255.255.255.0 gw 192.168.1.1
修改网卡MAC地址的方法 #sudo ifconfig eth0 down 关闭网卡  #sudo ifconfig eth0 hw ether A0:BA:BB:CC:DD:EE 然后改地址  #sudo ifconfig eth0 up 然后启动网卡
统计当前IP连接的个数 #netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n #netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
屏蔽IPV6 #echo "blacklist ipv6″ | sudo tee /etc/modprobe.d/blacklist-ipv6

3、服务

添加一个服务 #sudo update-rc.d 服务名 defaults 99
删除一个服务 #sudo update-rc.d 服务名 remove
临时重启一个服务 #/etc/init.d/服务名 restart
临时关闭一个服务 #/etc/init.d/服务名 stop
临时启动一个服务 #/etc/init.d/服务名 start

使用pkill快速杀死进程 笔者经常使用top、kill或killall进程加上ps | aux查找进程号/进程名来杀掉进程。但是pkill命令则可去掉大量的工作,pkill firefox就可以杀掉进程列表中所有与firefox符合的incheng。Pstree也是一个很酷的命令,它会根据所有关系以家庭树的方式显示所 有进程。

4、设置
配置默认Java使用哪个 #sudo update-alternatives –config java
修改用户资料 #sudo chfn userid
给apt设置代理 #export http_proxy=http://xx.xx.xx.xx:xxx
修改系统登录信息 #sudo vim /etc/motd

5、Vim

Vi中光标的移动:

w: 向前移动一个单词,将符号或标点当作单词处理
b: 向后移动一个单词,把符号或标点当作单词处理
0: 到行首
$: 到行尾
gg: 到页首
G: 到页末
行号+G: 跳转到指定行
Ctrl+g: 查询当前行信息和当前文件信息
CTRL+U: 向上滚动半屏
CTRL+D: 向下滚动半屏


vi中查找和替换命令详解:
对于字符替换,应该解决这样几个问题:

1、用谁替换谁的问题;
2、在那个范围内进行查找和替换;
3、是替换查找到的第一个还是所有匹配的项全部替换;

vi命令的各种选项就提供了这样的选择:
按住esc键,进入命令状态;然后按:进入命令模式;开始输入查找和替换命令!
一般形式为:range+"s"/source/target/g
其意义如下:

range表示要搜索的范围;
"s"这个字母表示搜索的意思,这个是不能缺少的;
source表示要搜索的字串;
target表示要被替换的字串;
g表示对于符合条件的字串全部进行替换(否则仅替换指定范围内的每一行的第一个);

其中ranges的去值如下:

1) %表示全部的行;
2) .表示当前行;
3) $表示最后一行;
4) 可以用具体的数字表示具体的行,如10,20等;
5) 上述的标志可以进行组合,如.,$s/source/target/g  表示从当前行到最后一行的搜索替换;又如10,20s/和10,$s/等等组合;

常用替换命令: %s/str1/str2/g #用str2替换掉当前文本中所有的str1

语法高亮: 编辑/etc/vim/vimrc,添加一行syntax on
搜索高亮: 编辑/etc/vim/vimrc,添加一行set hlsearch

6、dpkg命令:

dpkg -l [软件包名称]:列出系统中已安装的软件包的信息,不加参数表示列出所以已安装的信息!
dpkg -L [软件包名称]:列出指定软件包的详细安装列表
dpkg -s [软件包名称]:查看指定软件包的详细信息,如安装状态、版本信息、依赖关系、配置文件以及描述信息等!
dpkg -S [文件名]:查看指定文件的来源(就是属于那个软件包,可以直接使用绝对路径进行查看)
说明:以上名称参数均可以使用通配符!

dpkg -i [*.deb]:安装指定的deb软件包
dpkg -r [*.deb]:卸载指定的deb软件包
dpkg -P [*.deb]:彻底的卸载指定的deb软件包,包括配置文件等等
dpkg -c [*.deb]:列出指定deb软件包所包含的文件列表  rpm -qlp
dpkg -I [*.deb]:列出指定eb软件包的详细信息,如版本、依赖、描述等等

7、解压缩

解压缩 xxx.tar.gz
#tar -zxvf xxx.tar.gz
解压缩 xxx.tar.bz2
#tar -jxvf xxx.tar.bz2
压缩aaa bbb目录为xxx.tar.gz
#tar -zcvf xxx.tar.gz aaa bbb
压缩aaa bbb目录为xxx.tar.bz2
#tar -jcvf xxx.tar.bz2 aaa bbb
解压缩 RAR 文件
1) 先安装
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar
2) 解压
#unrar x aaaa.rar

8、apt-get使用小结:
用法:apt-get [选项] 命令
命令:

update - 下载更新软件包列表信息
upgrade - 进行一次升级
install - 安装新的软件包(注:包名是 libc6 而非 libc6.deb)
remove - 卸载软件包
source - 下载源码包文件
build-dep - 为源码包配置所需的构建依赖关系
dist-upgrade - 发布版升级,见 apt-get(8)
dselect-upgrade - 根据 dselect的选择来进行升级
clean - 删除所有已下载的包文件
autoclean - 删除老版本的已下载的包文件
check - 核对以确认系统的依赖关系的完整性

示例:

apt-get remove pkgname  #删除一个软件包.
apt-get --purge remove pkgname  #跟上面的一样,但保留配置文件
apt-get autoremove  #删除所有单独不用的软件包
apt-get autoclean  #删除所有老版本的软件包
dpkg -P pkgname  #彻底删除一个软件包以及配置文件.
dpkg -r pkgname  #删除但保留配置文件

附加aptitude的使用:

其基本使用方法于apt-get一样,用aptitude替代apt-get字符串即可!
aptitude install pkgname  #安装
aptitude remove pkgname  #删除,但保留配置文件
aptitude purge pkgname  #彻底删除

9、文件

快速查找某个文件
#whereis filename ||which  filename
#find 目录 -name 文件名
查看文件类型
#file filename
显示xxx文件倒数6行的内容
#tail -n 6 xxx
让tail不停地读地最新的内容
#tail -n 10 -f /var/log/apache2/access.log
查看文件中间的第五行(含)到第10行(含)的内容
#sed -n '5,10p' /var/log/apache2/access.log
查找包含xxx字符串的文件
#grep -l -r xxx .
全盘搜索文件(桌面可视化)
gnome-search-tool
查找关于xxx的命令
#apropos xxx man -k xxx
通过ssh传输文件
#scp -rp /path/filenameusername@remoteIP:/path
#将本地文件拷贝到服务器上
#scp -rpusername@remoteIP:/path/filename/path
#将远程文件从服务器下载到本地
查看某个文件被哪些应用程序读写
#lsof 文件名
把所有文件的后辍由rm改为rmvb
#rename 's/.rm$/.rmvb/' *
把所有文件名中的大写改为小写
#rename 'tr/A-Z/a-z/' *
删除特殊文件名的文件,如文件名:–help.txt
#rm — –help.txt 或者 rm ./–help.txt
查看当前目录的子目录
#ls -d */. 或 echo */.
将当前目录下最近30天访问过的文件移动到上级back目录
#find . -type f -atime -30 -exec mv {} ../back \;
将当前目录下最近2小时到8小时之内的文件显示出来
#find . -mmin 120 -mmin -480 -exec more {} \;
删除修改时间在30天之前的所有文件
#find . -type f -mtime 30 -mtime -3600 -exec rm {} \;
查找guest用户的以avi或者rm结尾的文件并删除掉
#find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} \;
查找的不以java和xml结尾,并7天没有使用的文件删除掉
#find . ! -name *.java ! -name '*.xml' -atime 7 -exec rm {} \;
统计当前文件个数
#ls /usr/bin|wc -w
统计当前目录个数
#ls -l /usr/bin|grep ^d|wc -l
显示当前目录下2006-01-01的文件名
#ls -l |grep 2006-01-01 |awk '{print $8}'

10、svn使用入门:

启动svn服务:svnserve -d
创建svn项目:稍微麻烦,创建完后需要进行用户权限的点配置,可参考已有的svn项目,拷贝过来即可(不再赘述)。

导出文件:svn co svn://192.168.1.x/var/www/svn/trunk (将工程目录trunk导出到当前目录下, co=checkout)
svn co svn://192.168.1.x/var/www/svn/trunk dir (表示将trunk/*导入到指定目录,如果没有指定目标目录,则包括trunk目录在内被导入到当前目录下)
提交文件:svn commit -m "[labServer] Fixed #bug_id bug_describ" (提交新的版本,引号内容是该版本的描述信息,commit=ci=checkin)
查看变更:svn diff ( | more)
版本同步:svn update (可在本地导出的工程目录下执行)
版本信息:svn info
版本日志:svn log
增加文件:svn add file
删减文件:svn del file
生成patch文件:svn diff > ./fix#bug_id.patch (将patch文件导出到当前目录下)

先add/del之后,再执行commit !

如果在编译时出错提示找不到makeinfo,可以通过安装texinfo解决,它是编译svn资源所不可或缺的。

11、 root 用户下添加新用户:

groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs

命令行选项的含义:

-s /bin/bash --- 指定 bash 作为 lfs 用户的默认 shell
-g lfs --- 将 lfs 用户添加到 lfs 组
-m --- 为 lfs 用户创建 home 目录
-k /dev/null --- 这个参数通过修改输入位置为特殊的空设备来防止从框架目录(默认为 /etc/skel)拷贝文件
lfs --- 这是所创建的组和用户的实际名字

为了可以使用 lfs 用户登录(与从 root 用户切换到 lfs 用户不同,这种切换不需要 lfs 用户有一个密码),必须先为 lfs 用户设置一个密码:

passwd lfs    

12、使用PUSHD将目录添加到目录栈

    首先来说明一下目录栈是什么,很简单,就是bash存储的一个目录列表。当前浏览的目录总是在列表的顶端,但如果你不通过 PUSHD往其中添加目录,这个列表则是空的。举例说明,使用 pushd /usr/bin命令会添加/usr/bin目录到列表,同时会切换到这个目录(加上-n参数可以停留在当前目录不跳转)。使用popd则会删除最顶端的 目录,然后跳转到列表中的下一个目录。尝试一下这个命令,当你在管理系统时需要在不同目录之间跳转时或者容易忘记重要东西的位置时,它可能会相当有 用。    

13、找出丢失的文件扩展名

    如果你收到一个没有扩展名的email附件,不知道是什么类型时(苹果用户经常把文件扩展名忽略),试一下file命令,直接加上 文件名。同时也可以试一下strings命令,会显示出二进制文件中任何可显示的字符串,文件的类型通常就会在前面几行,所以用管道把这个命令和head 连接起来是个好办

14、其他命令

1.ftp

上传下载文件工具-filezilla
#sudo apt-get install filezilla
filezilla无法列出中文目录?
站点->字符集->自定义->输入:GBK
本地中文界面
1)下载filezilla中文包到本地目录,如~/
2) #unrar x Filezilla3_zhCN.rar
3) 如果你没有unrar的话,请先安装rar和unrar
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar
4)先备份原来的语言包,再安装;实际就是拷贝一个语言包。
#sudo cp /usr/share/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo.bak
#sudo cp ~/locale/zh_CN/filezilla.mo /usr/share/locale/zh_CN/filezilla.mo
5)重启filezilla,即可!


2.Nautilus

显示隐藏文件
Ctrl h
显示地址栏
Ctrl l
特殊 URI 地址
* computer:/// - 全部挂载的设备和网络
* network:/// - 浏览可用的网络
* burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录
* smb:/// - 可用的 windows/samba 网络资源
* x-nautilus-desktop:/// - 桌面项目和图标
*file:///- 本地文件
* trash:/// - 本地回收站目录
* ftp:// - FTP 文件夹
* ssh:// - SSH 文件夹
* fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装
* themes:/// - 系统主题文件夹
查看已安装字体
在nautilus的地址栏里输入"fonts:///",就可以查看本机所有的fonts

3.程序
详细显示程序的运行信息
#strace -f -F -o outfile

4.日期和时间
设置日期
#date -s mm/dd/yy
设置时间
#date -s HH:MM
将时间写入CMOS
#hwclock –systohc
读取CMOS时间
#hwclock –hctosys
从服务器上同步时间
#sudo ntpdate time.nist.gov
#sudo ntpdate time.windows.com

5.控制台
不同控制台间切换
Ctrl ALT ← Ctrl ALT →
指定控制台切换
Ctrl ALT Fn(n:1~7)
控制台下滚屏
SHIFT pageUp/pageDown
控制台抓图
#setterm -dump n(n:1~7)

6.数据库
mysql的数据库存放在地方
#/var/lib/mysql
从mysql中导出和导入数据
#mysqldump 数据库名 > 文件名 #导出数据库
#mysqladmin create 数据库名 #建立数据库
#mysql 数据库名 GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456″;
'123456'是root的密码,可以自由设置,但最好是设个安全点的。
#mysql> quit; 退出mysql
apache2的操作命令
启动: #sudo /etc/init.d/apache2 start
重启: #sudo /etc/init.d/apache2 restart
关闭: #sudo /etc/init.d/apache2 stop
apache2的默认主目录:/var/www/
Ubuntu 10.04 更换软件源、更新系统

Ubuntu里提供了方便的根据网络条件选择具体的更新服务器的设置,参考如下设置

System –》 Update Manager –》 Settings –》 Ubuntu Software标签 —》Download from –》Others –》 Select your best server你可以测试得出最好的更新服务器

当然以上配置中需要root密码。

如果不想每次都提示有新的更新,你可以在Settings –》 Updates à Check for Updates 来设置更新频率,如每周,每天,每两周等。

在终端输入: #sudo gedit /etc/apt/sources.list 就能看到现在设置好了更新的源地址了。

在终端输入
#sudo apt-get update
#sudu apt-get upgrade
这样便更新以及升级了系统。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值