安装软件的时候出现错误,遇到包管理系统损坏的问题。在askubuntu上找到解决办法,这里进行记录总结:
首先:
sudo apt-get -f install
强制安装没有下载完成的文件。
然后:
sudo apt-get update
然后:
重复执行 sudo apt-get -f install
直到只剩下导致错误的包。
然后:
sudo dpkg --configure -a
最后清空缓存即可。
sudo apt-get clean
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
在升级之前我们需要更新系统。打开终端,输入以下命令:
sudo apt-get update && sudo apt-get dist-upgrade
上面的命令将下载并安装可用的最新的软件包。
重新启动系统才能完成安装更新。
现在,输入以下命令升级到新的版本:
sudo update-manager -d
软件更新窗口会显示出来,搜索可用的新版本。OK 按照提示操作就可以了:
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
整理了Ubuntu更新的几种命令:
1.列举本地更新sudo apt-get update
2.安装可用更新sudo apt-get upgrade
3.查询软件包apt-cache search package_name
4.安装一个软件包sudo apt-get install package_name
5.删除一个软件包sudo apt-get remove package
6.列举其他apt-get 命令apt-get help
7.install/unstall .deb filessudo dpkg -i package_file.deb ,sudo dpkg -r package_filename
8.convert .rpm to .deb filessudo alien package9.install tarballstar xfvz tarball_name
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
造成该问题可能的原因是我update之后对系统造成了修改,结果导致了/boot/grub/i386-pc/normal.mod的丢失,normal.mod是ubuntu开机引导的必加载项,因而报出
/boot/grub/i386-pc/normal.mod not found. Grub Rescue>的问题。
关于基本知识,孙斌斌的个人blog 做了部分总结:
下面是具体步骤:
①查看分区
因为每个人的分区不一样,所以我们要查看分区,用ls指令
grub rescue>ls
回车后,就会出现
(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos1)
grub rescue>
注:我用的是grub2,对于grub用户,分区前没有msdos字样
上面是我的分区,每个人的不一样。
grub rescue>set回车
prefix=(hd0,msdos9)/boot/grub
root=hd0,msdos9
从上面可以看出来现在我的系统是从(hd0,msdos9)里启动的。
那么怎么知道ubuntu在哪个分区呢?进入第二步
②寻找ubuntu所在分区
这一步我们要一个一个的试,
还是用ls指令
先试下在不在(hd0,msdos8)里边
grub rescue>ls (hd0,msdos8)
回车会发现,不是,还是unknown filesystem
接着来
。。。。。。。。。
当我试到
(hd0,msdos7)的时候,可以看到一下子多了很多字,这些就是我ubuntu主文件夹下的文件夹和文件的名字。OK,找到分区了!
③修改启动分区
grub rescue>root=(hd0,msdos7)
grub rescue>prefix=/boot/grub //grub路径设置
grub rescue>set root=(hd0,msdos7)
grub rescue>set prefix=(hd0,msdos7)/boot/grub
grub rescue>insmod normal //启动normal启动
grub rescue>normal
依次敲入上面的指令,是不是看到熟悉的启动菜单了?选win7后,一键Ghost就开始备份系统了。别高兴太早,一切还都没开始呢。如果你不是因为一键Ghost问题进入grub rescue,可以直接跳到第⑤步
④再来一遍
当你等着一键Ghost备份完系统,重启后,你发现还是
error:unknown filesystem
grub rescue>
别着急,再把前三步进行一遍就可以了
⑤进入命令行 启动Ubuntu
进入系统启动选项界面后,你发现,无论点那个还是进不去,这是因为你还没有真正的修改grub,这个要到ubuntu里修改
进入系统启动项界面后,按C进入命令行模式
grub >set root=hd0,msdos7
grub >set prefix=(hd0,msdos7)/boot/grub
grub >linux /vmlinuz-xxx-xxx root=/dev/sda7 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off
grub >initrd /initrd.img-xxx-xxx
grub >boot
Ubuntu正常启动了吧?
⑥进入ubuntu修复grub
大功就要高成了
进入Ubuntu后,修复grub
在终端里运行
sudo update-grub
重建grub到第一硬盘mbr
sudo grub-install /dev/sda
以上内容很的好学习的关于开机引导的问题,but it doesn't work for me.
最终我的解决方案:
1.考虑使用UltraISO制作ubuntu14.04 U盘镜像以启动系统恢复
参考:http://jingyan.baidu.com/article/363872ec8b4f6a6e4ba16f2b.html
结果:失败,由于刻录镜像时报出始终被占用的问题,后来网上提示原因是UltraISO版本问题以及ubuntu14.04太新。。。。放弃
2.考虑使用Universal-USB-Installer制作ubuntu14.04 U盘以启动系统恢复
参考:http://blog.csdn.net/liangcaiyun2013/article/details/10410797
结果:U盘启动ubuntu成功,但是,进入ubuntu后无法修复原分区的系统。
3.考虑使用Boot-Repair
参考:http://sourceforge.net/p/boot-repair-cd/home/Home/
结果,有详细的教程,然后最后修复成功。
补充,由于我是在修复我的vmware中的ubuntu,因而还需要做一个vmware的u盘启动,教程如下:
http://jingyan.baidu.com/article/b2c186c8eb3813c46ef6ffef.html
注意事项:教程中建立好新硬盘后,如果想要该盘的启动顺序排在前面,点右面详细面板的高级,设置虚拟设备节点,将想要先启动的硬盘盘号往前排。
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
Ubuntu apt-get安装出现dpkg status database is lock...解决
最近在Ubuntu 服务器上安装包的时候出现了一个异常,采用的是 apt-get install 方式 。
异常详细信息如下:
dpkg status database is locked by another process
原因是包管理器没有正确关闭。需要重启计算机或者重新打开终端 输入:
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
然后重新安装包。
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
这次使用的是第三方开发的MentoHUST,因为官方的锐捷Linux版久无更新,使用官方程序很多同学无法通过认证,有些能通过但容易掉线。虽然网上第三方Linux版锐捷客户端不少,但都大同小异,不能通过锐捷的客户端校验。而MentoHUST提供一个Linux下与锐捷兼容性很好的认证客户端,方便使用Linux和锐捷的同学使用校园网。
使用方法很简单,因为我的实验环境所Ubantu物理机,所以只要安装deb包,然后做一下配置,最后运行即可。
安装deb包成功后在终端中输入:
$sudo -i #取得root权限
$sudo mentuhust #运行软件,初次安装后需要初始设置,帐号密码同XP,网卡选择“1”,剩余两项填“0”。
修改设置可以运行:$sudo gedit /etc/mentohust.conf
开始登陆
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
wget -O xx http://.........
wget是下载命令 -O xx表示保存为xx
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
一、 C/C++编译器和基本库和常用工具(gcc系列)
刚装好的Ubuntu系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。
1.安装所需要的软件包:
sudo apt-get install build-essential
2.编辑器,任选一个:
sudo apt-get install emacs
sudo apt-get install vim
vim默认语法染色功能是关闭的,我们可以编辑/etc/vim/vimrc文件
把syntax on 前面的符号去掉,然后保存。就可以启动vim的语法染色功能。
二、 GTK/GNOME开发环境(库、IDE、工具)
所需要的软件包:
sudo apt-get install gnome-dev
三、 Qt/KDE开发环境(库、工具、IDE)
库、工具(软件包):
sudo apt-get install kdesdk
IDE(软件包):
sudo apt-get install kdevelop
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
Ubuntu文件的复制、移动和删除命令
http://blog.sina.com.cn/s/blog_6db312f101017wxg.html
http://blog.163.com/yuhua_kui/blog/static/967996442013714103414691/
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
命令:tar
u 对压缩文件进行操作
1. -c: 建立压缩档案
2. -x:解压
3. -t:查看内容
4. -r:向压缩归档文件末尾追加文件
5. -u:更新原压缩包中的文件
u 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
1. -z:有gzip属性的
2. -j:有bz2属性的
3. -Z:有compress属性的
4. -v:显示所有过程
5. -O:将文件解开到标准输出
u 下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
1. # tar -cf all.tar *.jpg
2. 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
3. # tar -rf all.tar *.gif
4. 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
5. # tar -uf all.tar logo.gif
6. 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
7. # tar -tf all.tar
8. 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
9. # tar -xf all.tar
10. 这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
Ø 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
总结
1. *.tar 用 tar –xvf 解压
2. *.gz 用 gzip -d或者gunzip 解压
3. *.tar.gz和*.tgz 用 tar –xzf 解压
4. *.bz2 用 bzip2 -d或者用bunzip2 解压
5. *.tar.bz2用tar –xjf 解压;
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
ubuntu12.04 添加程序启动器
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
nohup xxx &
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法: 用包含字母和操作符表达式的文字设定法 其语法格式为:chmod [who] [opt] [mode] 文件/目录名 其中who表示对象,是以下字母中的一个或组合: u:表示文件所有者 g:表示同组用户 o:表示其它用户 a:表示所有用户 opt则是代表操作,可以为: +:添加某个权限 -:取消某个权限 =:赋予给定的权限,并取消原有的权限 而mode则代表权限: r:可读 w:可写 x:可执行 例如:为同组用户增加对文件a.txt的读写权限: chmod g+rw a.txt 用数字设定法 而数字设定法则更为简单:chmod [mode] 文件名 关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为: 111 101 100 再将其每三位转换成为一个十进制数,就是754。 例如,我们想让a.txt这个文件的权限为: 自己 同组用户 其他用户 可读 是 是 是 可写 是 是 可执行 那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令: chmod 664 a.txt
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
pgrep firefox
会返回数值,譬如是7198.现在输入:
kill 7198
就会杀死Firefox进程了。
你也可以使用killall命令。killall可以使用程序的名称,譬如输入:
killall firefox
3法
如果前两者还是杀不死,用 kill -9 pid 命令,来绝杀
http://hi.baidu.com/strive_boy/blog/item/d3020b1865efd6b14aedbcd2.html
PS:http://justcoding.iteye.com/blog/1931347
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
Linux makefile 教程 非常详细,且易懂
http://blog.csdn.net/liang13664759/article/details/1771246
Makefile的一个具体的实例
http://blog.sina.com.cn/s/blog_73d4d5fa0100paiy.html
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
(一)文件、目录操作命令
(1)ls命令
功能:显示文件和目录的信息
ls 以默认方式显示当前目录文件列表
ls -a 显示所有文件包括隐藏文件
ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M 2G)
ls -lt 显示文件,按照修改时间排序
(2)cd命令
功能:切换目录
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到到上一级目录
cd ../.. 切换到上二级目录
cd ~ 切换到用户目录,比如是root用户,则切换到/root下
(3)cp命令
功能:copy文件
cp source target 将文件source复制为target
cp /root/source . 将/root下的文件source复制到当前目录
cp –av soure_dir target_dir 将整个目录复制,两目录完全一样
(4)rm命令
功能:删除文件或目录
rm file 删除某一个文件
rm -f file 删除时候不进行提示。可以于r参数配合使用
rm -rf dir 删除当前目录下叫dir的整个目录
(5)grep命令
功能:检索文字列
(6)mv命令
功能:将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令
mv source target 将文件source更名为target
(7)sed命令
功能:置换文字列,删除行。
(8)diff
功能:比较文件内容
diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
(9)find
功能:检索文件和目录
(10)ln命令
功能:建立链接。windows的快捷方式就是根据*inx下的链接的原理来做的
ln source_path target_path 硬连接
ln -s source_path target_path 软连接
(11)pwd命令
功能:显示当前目录
(二) 查看编辑文件命令
(1)cat命令
功能:显示文件的内容,和DOS的type相同
cat file
(2)more命令
功能:分页显示命令
more file more命令也可以通过管道符(|)与其他的命令一起使用,例如: ps ux|more
(3)tail 命令
功能:显示文件的最后几行
tail -n 100 aaa.txt 显示文件aaa.txt文件的最后100行
(4)vi命令
vi file 编辑文件file
vi 原基本使用及命令: 输入命令的方式为先按[ESC]键,然后输入:w(写入文件),:w!(不询问方式写入文件),:wq保存并退出,:q退
(5)touch命令
功能:创建一个空文件
touch aaa.txt 创建一个空文件,文件名为aaa.txt
(6)wc命令
功能:显示文件的行数,字节数或单词数 出,q!不保存退出
(三) 基本系统命令
(1)man命令
功能:查看某个命令的帮助,如果你不知道某个命令的用法不懂,可以问他,他知道就回告诉你
例如: man ls 显示ls命令的帮助内容
(2)w命令
功能:显示登录用户的详细信息
(3)who命令
功能:显示登录用户
(4)last命令
功能:查看最近那些用户登录系统
(5)date命令
功能:系统日期设定
date 显示当前日期时间
date -s 20:30:30 设置系统时间为20:30:30
date -s 2002-3-5 设置系统时期为2003-3-5
(6)clock命令
功能:时钟设置
clock –r 对系统Bios中读取时间参数
clock –w 将系统时间(如由date设置的时间)写入Bios
(7)uname命令
功能:查看系统版本
uname -R 显示操作系统内核的version
(8)reboot/halt命令
功能:重新启动系统
(9)shutdown命令
功能:关闭,再启动系统
shutdown -r now 重新启动系统,停止服务后重新启动系统
shutdown -h now 关闭系统,停止服务后再关闭系统
(10)su命令
功能:切换用户
su - 切换到root用户
(四) 监视系统状态命令
(1)top命令
功能:查看系统cpu、内存等使用情况
(2)free命令
功能:查看内存和swap分区使用情况
(3)uptime
功能:现在的时间 ,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载
(4)vmstat命令
功能:监视虚拟内存使用情况
(5)ps命令
功能:显示进程信息
ps ux 显示当前用户的进程
(6)kill命令
功能:干掉某个进程,进程号可以通过ps命令得到
kill -9 1001 将进程编号为1001的程序干掉
(7)sleep命令
功能:某进程停止指定的时间
(五) 磁盘操作命令
(1)df命令
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
(2)du命令
功能:检测一个目录和(递归地)所有它的子目录中的文件占用的磁盘空间。
(3)mount命令
功能:使用mount命令就可在Linux中挂载各种文件系统。
(4)mkswap命令
功能:使用mkswap命令可以创建swap空间。
(5)fdisk命令
功能:对磁盘进行分区
(6)mkfs命令
功能:格式化文件系统,可以指定文件系统的类型,如ext2、ext3、fat、ntfs等
(7)dd命令
功能:功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。
(六) 用户和组相关命令
(1)groupadd命令
功能:添加组
groupadd test1 添加test1组
(2)useradd命令
功能:添加用户
useradd user1 添加用户user1,home为/home/user1,组为user1
(3)passwd命令
功能:更改用户密码
passwd user1 修改用户user1的密码
(4)userdel命令
功能:删除用户
userdel user1 删除user1用户
(5)chown命令
功能:改变文件或目录的所有者
chown user1 /dir 将/dir目录设置为user1所有
(6)chgrp命令
功能:改变文件或目录的所有组
chgrp user1 /dir 将/dir目录设置为user1所有
(7)chmod命令
功能:改变用户的权限
chmod 666 file 将文件file设置为可读写
(8)id命令
功能:显示用户的信息,包括uid、gid等
(9)finger命令
功能:显示用的信息
(七) 压缩解压命令
(1)gzip格式命令
功能:压缩文件,gz格式的
注意:生成的文件会把源文件覆盖
(2)zip格式命令
功能:压缩和解压缩zip命令
(3)bzip2根式命令
功能:bzip2格式压缩命令
注意:生成的文件会把源文件覆盖
(4)tar命令
功能:归档、压缩等,比较重要,会经常使用。
-cvf <DSTfilename.tar> <SRCfilename> 压缩文件或目录
(5)unzip命令
功能:解压zip文件
(6)gunzip命令
功能:解压gz文件
(八) 网络相关命令
(1)ifconfig命令
功能:显示修改网卡的信息
ifconfig 显示网络信息
(2)route命令
功能:显示当前路由设置情况
(3)netstat命令
功能:显示网络状态
netstat -an 查看网络端口信息
(4)ping命令
功能:调查远程主机的状况以及发送包等等
(5)traceroute命令
功能:路由跟踪
(6)nslookup命令
功能:域名解析排错
(7)host命令
功能:检索host的信息
(8)hostname命令
功能:表示设定主机名称
(九) 其他命令
(1)ssh命令
功能:远程登陆到其他主机,基于SSL加密
(2)telnet命令
功能:远程登陆到其他主机,明码传输,没有加密
telnet 192.168.1.5
(3)ftp命令
功能:连接ftp服务器,传输文件
(4)scp命令
功能:远程拷贝
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
Linux下生成静态库.a文件和动态库.so文件
http://blog.sina.com.cn/s/blog_78d6f460010128nd.html
http://blog.csdn.net/heyabo/article/details/11688517
----------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------