本帖最后由 ubuntu2011 于 2015-10-19 01:23 编辑
一些常见问题
修改默认启动的系统
在终端里用编辑器如gedit打开grub的默认配置文件
sudo gedit /etc/default/grub
可以看到GRUB_DEFAULT=0、GRUB_TIMEOUT=10等行列,GRUB_DEFAULT是设定默认启动项,从0开始计数,假如windows在第4项,就把他的值设为3。GRUB_TIMEOUT定义grub界面的倒计时时间,可以设定为你喜欢的时间。
设置完后保存,退出编辑器,回到终端,执行以下命令即可
sudo update-grub
因为grub负责系统引导,修改配置请务必小心。比如GRUB_TIMEOUT的时间不是任何数字都可以的,我不知道设置成0或者负数会发生什么,胆子大的不如试试看?
开机打开数字键盘?
安装numlockx,sudo apt-get install numlockx
Ubuntu和windows共享文件
http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=225431
网上银行兼容性列表
http://www.openbanks.info/
Mp3标签乱码问题分析与解决方案
http://linux-wiki.cn/wiki/Mp3%E6 ... 3%E6%96%B9%E6%A1%88
中文文件名乱码问题
http://linux-wiki.cn/wiki/%E4%B8 ... 1%E9%97%AE%E9%A2%98
理解和编辑fstab文件
http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=58468
Linux目录树解释
深入了解 Linux文件目录结构 的标准和每个目录的详细功能,对于我们用好Linux系统至关重要
/boot 该目录默认下存放的是Linux的启动文件和内核(kernel),grub配置文件一般也存放这里。[mw_shl_code=css,true]initramfs-* 系统启动时的模块供应的主要来源
System.map-* 启动系统所需加载的虚拟磁盘 ,System.map文件是一个索引文件,它记录了中的symbols的位置,symbols包括有变量或函数名称。
vmlinuz-* 实际上就是系统的kernel,kernel主要负责的是北桥、南桥、CPU及内存,可见它们都是整个主机最重要的硬件核心部分,kernel如果出了问题,系统肯定无法启动起来;
config-* 为系统Kernel配置文件[/mw_shl_code]/bin存放所有用户可以使用的linux基本操作命令(目录中多是可执行的二进制文件)[mw_shl_code=css,true] at 将文件链接到标准输出
chgrp 改变文件所在组
chmod 改变文件访问权限
chown 改变文件所有者和组
cp 复制文件和目录
date 打印或者设置系统日期和时间
dd 转换和复制文件
df 报告文件系统磁盘空间使用情况
dmesg 打印或控制内核消息缓存区
echo 显示一行文本
false 什么也不做,只返回不成功的工具
hostname 显示或者设置系统主机名
kill 向进程发送消息
ln 文件之间创建链接
login 在系统上开启会话
ls 列出目录文件
mkdir 创建目录
mknod 创建块或字符设备文件
more 按页翻看文件
mount 挂载文件系统
mv 移动或重命名文件
ps 查看系统进程状况
pwd 打印当前工作目录路径
rm 删除文件或目录
rmdir 删除空目录
sed 流文本编辑器
sh Bourne 命令shell
stty 改变和打印终端行设置
su 切换用户ID
sync 清理文件系统缓存
true 什么也不做,只返回成功
umount 卸载文件系统
uname 打印系统信息
tar 档案工具
gzip GNU压缩工具
gunzip GNU解压工具
zcat GUN解压工具
netsatart 网络统计工具
ping ICMP网络测试工具[/mw_shl_code]/dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,访问这些外部设备与访问一个文件或一个目录没有区别。[mw_shl_code=css,true]/dev/urandom:随机数设备
/dev/pilot => /dev/ttyS[0-9]
/dev/random:随机数设备
/dev/modem => /dev/ttyS[0-9]
/dev/cdrom => /dev/hdc
/dev/fb[0-31]:framebuffer
/dev/console:控制台
/dev/lp[0-3]:并口
/dev/ttyS[0-3]:串口
/dev/tty[0-63]:虚拟终端
/dev/zero:无限零资源
/dev/null:无限数据接收设备,相当于黑洞
/dev/ram[0-15]:内存
/dev/loop[0-7]:本地回环设备
/dev/md[0-31]:软raid设备
/dev/fd[0-7]:标准软驱
/dev/sd[a-z]:SCSI设备
/dev/hd[a-t]:IDE设备[/mw_shl_code] /etc 该目录存放系统管理时要用到的各种配置文件和子目录,例如网络配置文件、X系统配置文件、设备配置信息、设置用户信息等。[mw_shl_code=css,true]/etc/login.defs 设置用户帐号限制的文件
/etc/skel/ 默认创建用户时,把该目录拷贝到家目录下
/etc/redhat-release 查看系统版本
/etc/exports 设置NFS系统用的配置文件路径
/etc/init.d 这个目录来存放系统启动脚本
/etc/profile /etc/csh.login /etc/csh.cshrc 全局系统环境配置变量
/etc/sudoers sudo命令的配置文件
/etc/syslog.conf 系统日志参数配置
/etc/sysconfig/network-scripts/ifcfg-eth0 网卡设备eth0配置
/etc/sysconfig/network IP、掩码、网关、主机名配置
/etc/securetty root用户登录tty访问权限控制
/etc/shadow 在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读.这使破译口令更困难.
/etc/printcap 打印机配置.不同打印机语法不同.
/etc/shells 有效的登陆shell的路径名称
/etc/resolv.conf DNS服务器配置
/etc/mtab 文件系统的动态信息,例如df 命令
/etc/hosts 本地域名解析文件
/etc/issue 在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定.
/etc/magic file 的配置文件.包含不同文件格式的说明,file 基于它猜测文件类型.
/etc/motd 当天登录后的消息提示文件
/etc/inittab 调整系统启动级别的配置文件
/etc/group 类似/etc/passwd ,但说明的不是用户而是组
/etc/modprobe.conf 内核模块的额外参数设定
/etc/fstab 启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表. Linux下,也包括用swapon -a启用的swap区的信息.
/etc/passwd 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息.
/etc/rc 或 /etc/rc.d 或 /etc/rc*.d 启动、或改变运行级时scripts或scripts的目录.[/mw_shl_code] /home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。
/media 移动存储设备默认挂载点,若打开硬盘上的NTFS分区,也挂载在这个目录下
/mnt 临时将别的文件系统挂在该目录下。
/root root用户目录
/sbin 该目录用来存放系统管理员使用的管理程序。[mw_shl_code=css,true]fsck.* 针对某一特定文件系统检查和修复
shutdown 关闭系统
fsck 文件系统检查和修复
fdisk 操作分区表
mkfs.* 创建特定的文件系统
mkswap 设置交换分区命令
init 初始化启动级别
ifconfig 配置网络
update 周期性清洗文件系统缓存的后台服务
mkfs 创建文件系统
halt 关机命令
/sbin/sysctl -p 立即生效内核配置
swapon 启用交换分区
runlevel 查看系统启动级别
reboot 重启系统
swapoff 关闭交换分区
route IP路由表[/mw_shl_code]
/lib 该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库。
/lost+found ext文件系统特有的目录,该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些无家可归的文件就临时存放在这里
/opt /opt一般存放的是“非开源/非自由”的软件,诸如google chrome,crossover,oracle jdk,WPS office for linux等,一般都安装在这。
/tmp 用来存放不同程序执行时产生的临时文件,该目录会被系统自动清理干净。
/proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里[mw_shl_code=css,true]/proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关
/proc/execdomains Linux内核当前支持的execution domains
/proc/mdstat 多硬盘,RAID配置信息(md=multiple disks)
/proc/ioports 一个设备的输入输出所使用的注册端口范围
/proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
/proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关
/proc/meminfo RAM使用的相关信息
/proc/misc 其他的主要设备(设备号为10)上注册的驱动
/proc/modules 所有加载到内核的模块列表
/proc/mounts 系统中使用的所有挂载
/proc/mtrr 系统使用的Memory Type Range Registers (MTRRs)
/proc/partitions 分区中的块分配信息
/proc/slabinfo 系统中所有活动的 slab 缓存信息
/proc/stat 所有的CPU活动信息
/proc/fb 帧缓冲设备列表,包括数量和控制它的驱动
/proc/sysrq-trigger 使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的
/proc/filesystems 内核当前支持的文件系统类型
/proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
/proc/locks 内核锁住的文件列表
/proc/uptime 系统已经运行了多久
/proc/swaps 交换空间的使用情况
/proc/version Linux内核版本和gcc版本
/proc/bus 目录下存放 系统总线(Bus)信息,例如pci/usb等
/proc/driver 目录下存放驱动信息
/proc/fs 目录下存放文件系统信息
/proc/irq 中断请求设备信息
/proc/net 目录下,网卡设备信息
/proc/scsi scsi设备信息
/proc/dma 已注册使用的ISA DMA频道列表
/proc/tty tty设备信息
/proc/net/dev 显示网络适配器及统计信息
/proc/vmstat 虚拟内存统计信息
/proc/vmcore 内核panic时的内存映像
/proc/diskstats 取得磁盘信息
/proc/schedstat kernel调度器的统计信息
/proc/zoneinfo 显示内存空间的统计信息,对分析虚拟内存行为很有用
/proc/cmdline 启动时传递给kernel的参数信息
/proc/cpuinfo cpu的信息
/proc/devices 已经加载的设备并分类[/mw_shl_code]
/usr 用户的应用程序和文件几乎都存放在该目录下。[mw_shl_code=css,true]/X11R6 存放X window系统
/bin 存放增加的用户程序
/dict 存放字典
/doc 存放追加的文档
/etc 存放设置文件
/games 存放游戏和教学文件
/include 存放C开发工具的头文件
/info 存放GNU信息文件
/lib 存放库文件
/local 存放本地产生的增加的应用程序
/man 存放在线帮助文件
/sbin 存放增加的管理程序
/share 存放结构独立的数据
/src 存放程序的源代码[/mw_shl_code]
/var 该目录用来存放系统管理员使用的管理程序。[mw_shl_code=css,true]/var/tmp 系统两次启动之间的临时数据
/var/spool mail, news, 打印队列和其他队列工作的目录
/var/run 有关正在运行的进程数据
/var/log 各种程序的日志文件和目录
/var/lock 锁定文件
/var/local 是/usr/local中安装程序的可变数据
/var/lib 系统运行时的改变的文件
/var/cache 应用程序缓存[/mw_shl_code]
控制台ttf下中文的正常显示:
使用Fbterm,另一个同类的zhcon,因为代码太久没人维护,似乎已经不能在新的内核下使用
软件中心已收录,安装:sudo apt-get install fbterm
请注意,Fbterm可能需要开源显卡驱动支持,本人在安装有NVIDIA官方闭源驱动时运行后无法正常显示,显示器提示超频。
安装之后,需要一些配置:
==> 若想使用非根用户运行fbterm,需要把用户加入video组:
sudo gpasswd -a YOUR_USERNAME video #用你的用户名代替大写的部分YOUR_USERNAME
==> 若想非根用户可使用键盘快捷方式,需要:
sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm
或者:
sudo chmod u+s /usr/bin/fbterm
ctrl+alt+F1-F6,登录之后输入fbterm即可使用
Fbterm 使用 ~/.fbermrc 来进行配置。该文件将在第一次运行 Fbterm 之后自动生成。文件内有详细的注释,可以帮助您了解如何配置 Fbterm,比如需要修改字体大小的话找 “font-size=12”那一行
Ubuntu 忘记密码的解决方法
最权威解决办法:ubuntu官方的帮助页面https://help.ubuntu.com/community/LostPassword,请勿轻易尝试网上搜索到的其他解决方法!下面大致翻译一下:
标准方法:
警告:下面的过程中会赋予你一个具有完全root权限的命令行界面,请万分小心以防损坏你的系统。
开机的时候按SHIFT (ubuntu9.10 "karmic"或更新版本) 或者ESC (ubuntu 9.04 "jaunty" 或更正的版本) ,进入grub开机菜单界面,选择恢复模式然后按enter键,进入系统修复模式。较老版本的ubuntu的grub界面会在第一层界面列出所有已安装的内核以及相应的恢复模式,最新版ubuntu需要进入第二项(若未修改过grub),即可看到所有已安装内核及其恢复模式。
选择root项,回车,会看到下面出现root shell,
输入命令:passwd 你的用户名,回车
连续输入两次新密码,如果修改成功,会有提示,若失败请尝试下一种方法。
按ctrl+alt+delete重启。
另一种解决方法:
首先,同上,进入grub界面,较新版ubuntu需进入第二项下的子菜单。
选择你当前使用的内核(注意:不是恢复模式,有多个可用内核的话随便选一个),然后按e键进入编辑模式。注意不要按回车。
移动光标到kernel那一行,也就是内核参数行,把ro 改成rw ,再在后面添加 init=/bin/bash
然后按F10或者ctrl+x,启动到root shell
输入命令:passwd 你的用户名
回车,输入两次新密码
这时候应该成功了。ctrl+alt+delete重启。
上面的方法在ubuntu10.04上稍有不同,版本较老,懒得翻译了,请参阅官方页面。
更改计算机名
首先sudo gedit /etc/hostsname,修改后保存
然后sudo gedit /etc/hosts,修改127.0.1.1后面的。网上搜到的方法大多没提这一步,但是如果不修改,在终端使用sudo命令时会提示无法解锁主机
如何更改用户名?
首先这是个有危险的动作,刚刚试过修改用户名,发现网上搜索到的方法大部分是有错误的,所以觉得有必要分享出来。下面讲的是不添加用户的情况下直接修改当前用户的用户名(大部分用户的ubuntu系统只有一个管理员账户,下面讲的就是如何修改这一个用户的名字)。更改用户名之前,需要了解/etc/passwd 、 /etc/shadow 、/etc/group 三个文件,我们要修改这三个文件。
/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:
name:password:uid:gid:comment:home:shell
name,用户登录名,我们需要修改的是这个
password,用户口令。此域中的口令是加密的。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。
uid,指定用户的 UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。
gid,GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。
comment,用来保存用户的真实姓名和个人细节。
home指定用户的主目录的绝对路径。
shell如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。
/etc/group 文件文件的格式和 /etc/passwd 文件格式类似,它也是一个纯文本文件,定义了每个组中的用户。每行的格式是:
group_name:passwd:GID:user_list
它们的含义如下:
group_name组名
password组口令。此域中的口令是加密的。如果此域为空,表明该组不需要口令。
gid指定 GID。
user_list该组的所有用户,用户名之间用逗号隔开。
与上面两个不同,Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件。
Linux /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口 令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
5)“最大时间间隔”指的是口令保持有效的最大天数。
6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
下面是修改办法:
注意:用户名不能使用不合法的字符,具体怎样才能合法还没查清楚,目前知道全小写字母肯定可以,首字母不能是大写!
1)打开一个终端,输入 sudo su转为root用户。注意,必须先转为root用户!!!
2)gedit /etc/passwd ,找到代表你的那一行,修改用户名为新的用户名。注意:只修改用户名!后面的全名、目录等不要动!
3)gedit /etc/shadow,找到代表你的那一行,修改用户名为新用户名
4)gedit /etc/group,你应该发现你的用户名在很多个组中,全部修改!
完毕,修改的时候要格外小心,不要打错一个字母。修改完,保存,重启。
修改用户目录名的方法请查询usermod命令的使用方法
grub rescue修复方法
症状:
开机显示:GRUB loading
error:unknow filesystem
grub rescue>
原因:
已经发现下面几种操作会导致这种问题:
1,想删除ubuntu,于是直接在windows下删除/格式化了ubuntu所在的分区。
2,调整磁盘,利用工具合并/分割/调整/删除分区,使磁盘分区数目发生了变化。
3,重新安装系统,把linux安装到了新分区,原有分区已经格式化,但是没有重新安装grub2。
4,用ubuntu备份工具/衍生版制造工具等,把主分区回复成了8.X的老版本,结果老版本的grub是grub1,于是把grub2破坏掉了。
总归,是由于操作者不知道grub2分为两部分,一部分(一般情况下)写在了硬盘MBR和保留扇区上,另一部分写在了根分区的/boot/grub目录(如果/boot单独分区,则直接写在对应分区的/grub目录)里面。由于上述操作,致使grub2的MBR里面的那一部分找不到/grub目录里面的那一部分了(或者那一部分已经删除了)。
方法1,彻底删除grub2,让这个提示不再出现:
适用于已经不想再使用ubuntu,要转回windows的人。
这个很简单,制作U盘PE,启动到PE里,用diskgenius等分区工具重建MBR即可
如果你有Windows系统光盘(非Ghost),用它启动,至选择安装位置,不用真正安装,退出重启就可以。
或者用它启动到故障修复台,运行fixboot或者fixmbr都可以。
win7命令行下,则是执行:BootRec.exe /fixmbr
(/fixmbr修复mbr, /FixBoot修复启动扇区,/ScanOs检测已安装的win7,/RebuildBcd重建bcd。)
方法2,重新安装、修复grub2
1. 先使用ls命令,找到Ubuntu的安装在哪个分区:
在 grub rescue>下输入以下命令:
ls
会罗列所有的磁盘分区信息,比方说:
(hd0,1),(hd0,5),(hd0,3),(hd0,2)
2. 然后依次调用如下命令: X表示各个分区号码
如果/boot没有单独分区,用以下命令:
ls (hd0,X)/boot/grub
如果/boot单独分区,则用下列命令:
ls (hd0,X)/grub
正常情况下,会列出来几百个文件,很多文件的扩展名是.mod和.lst和.img,还有一个文件是grub.cfg。假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
3,如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:
以下是/boot没有单独分区的命令:
grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/boot/grub
grub rescue>insmod /boot/grub/normal.mod
以下是/boot 单独分区的命令:(这几句有待验证)
引用:
grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/grub
grub rescue>insmod /grub/normal.mod
然后调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
启动起来,进入ubuntu之后,在终端执行:
代码:
sudo update-grub
sudo grub-install /dev/sda
(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)
重启测试是否已经恢复了grub的启动菜单? 恭喜你恢复成功!
4,如果找不到正确的/grub目录,比如第3、4种误操作,则尝试寻找是否有linux核心文件,则依次调用如下命令: X表示各个分区号码:
grub rescue>下,输入:
如果/boot没有单独分区:
ls (hd0,X)/boot
如果/boot单独分区,则:
ls (hd0,X)
找名字类似与vmlinuz-3.0.0-12-generic这样的文件,这是linux核心文件,如果找到,记下(hd0,X)中的X值。假设找到(hd0,5)时,显示了文件夹中的文件。
然后用live cd 或者 live usb启动,在live cd的ubuntu的终端中依次输入以下命令(sda5中的“5”必须改成上面记录下来数值)(这两句需要验证):
如果/boot没有单独分区:
sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt/boot /dev/sda
如果/boot单独分区,则:
sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
然后重新启动即可。
(以上这两句命令也可以解决安装ubuntu时grub安装位置不对,没有将grub安装到/dev/sda,造成启动时不出现ubuntu启动项直接进入windows的问题,不过需要自行确定sda5中的“5”改成什么数字。)
5,如果连linux核心文件都没有,那么,彻底重新安装吧。
以上关于grub的内容大部分转自:http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=348503
关于grub的更多知识可参考:http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=229387 |