jinhucheung / blog

学习笔记
6 stars 3 forks source link

Linux 学习之FAQ #7

Open jinhucheung opened 8 years ago

jinhucheung commented 8 years ago

Index

  1. 查看主机内核版本
  2. 进入root文件夹
  3. 终端显示乱码
  4. 重启X Window的方法
  5. 图形界面与终端界面切换
  6. 命令基本格式
  7. nano文本编辑器
  8. shutdown
  9. 修改终端模式欢迎信息
  10. 设置环境变量LANG
  11. 关于cp的一个疑问?(待解决)
  12. 删除了用户的主目录,进入不了该用户的图形界面环境
  13. Vim解决中文乱码的问题
  14. Shell 中判断符号[]使用的问题
  15. grub > unknow filesystem的解决方法
  16. 忘记root密码的解决方法
  17. init的配置文件错误,无法启动系统
  18. 如何切换操作系统(不能重启)
  19. 查看打印机是否支持Linux
  20. 修改主机名
  21. Ubuntu14.04下SublimeText3不能输中文
  22. Linux 下解压 Window的zip包出现乱码
jinhucheung commented 8 years ago

1. 查看主机内核版本

使用命令:

cat  /proc/version

2. 进入root文件夹

使用命令:

sudo nautilus

3. 终端显示乱码

终端默认情况下不能显示中文,刚好我们终端最优先是显示zh.CN的话,那么显示英文也会乱码,解决方法

1. 查看目前支持的语言
$ echo $LANG
zh_CN.UTF-8

2. 修改语言为UTF-8和en_US
$ LANG=UTF-8.en_US

4. 重启X Window的方法

5. 图形界面与终端界面切换

终端可以理解成独立设备,Linux会提供5到6个的虚拟终端界面给用户.其与图形界面的切换方式如下

[Ctrl]+[Alt]+[F1]~[F6]:登录tty1~tty6终端;(通常情况下是F1~F6,可是我的CentOS6.8是F2~F6)
[Ctrl]+[Alt]+[F7]:登录图形界面(我的CentOS6.8是F1)
jinhucheung commented 8 years ago

6. 命令基本格式

$      command      [-opt|--options]    parmeter1   parameter2 ...
 命令/可执行文件         -选项|--完整选项名       参数1       参数2

7. nano文本编辑器

nano编辑器可以用在命令行模式下,执行命令$ nano启动nano,根据提示操作

8. shutdown

通常我们关机前会使用多次sync命令将数据同步写入硬盘中(Linux 为了加速数据读取,某些已加载内存中的数据不直接写会硬盘,而是暂存内存中)

关机命令:shutdown

$ shutdown [-arkhncfF] 时间 [警告信息]
  • -k:只发送警告信息,不是真关机
  • -r:在将系统服务停掉后重启(常用)
  • -h:将系统服务停掉后关机(常用)
  • -n:不经过init程序,直接以shutdown功能来关机
  • -f:关机并开机后,强制略过fsck的磁盘检查
  • -F:系统重启之后,强制你行fsck磁盘检查
  • -c:取消计划

例子:

  • shutdown -h 0 //立刻关机
  • shutdown -h 20:25 //今天的20:25会关机
  • shutdown -h 10 //10分钟后关机
  • shutdown -r 30 'The system will reboot' //30分钟后重启

9. 修改终端模式欢迎信息

  1. 打开终端欢迎信息文件/etc/issue 在终端模式下可以使用nano/vim文本编辑器打开
# nano /etc/issue
  1. /etc/issue中的占位符 如果需要使用占位符,可以man查询下agetty的ISSUE ESCAPES项的各参数
jinhucheung commented 8 years ago

10. 设置环境变量LANG

在终端上使用ls -al,发现中文目录都出现"???",参考问题3. 终端显示乱码还是没有解决,而且设置的LANG还是一关机后或者切换到其他终端就不用作用的,于是设置环境变量LANG

  1. 设置环境变量LANG 在/etc/sysconfig/i18n上修改或添加LANG=“UTF-8.en_US” 注:上面是CentOS的locale环境变量设置,Ubuntu在/etc/default/locale中设置

  2. 设置环境变量LANG=“UTF-8.en_US”时 遇到以下错误:

warning: setlocale: LC_CTYPE: cannot change locale (UTF-8.en_US) 
warning: Setting locale failed.

解决方法:这里我将环境变量LANG中的UTF-8去掉了。

  1. 之后修改系统语系为English,并将中文目录更新为英文
jinhucheung commented 8 years ago

11. 关于cp的一个疑问?(待解决)

遇到的问题:
今天将/root/AndroidStudioProjects/TextProject项目复制到 /media/kumho/文档/Github/
root使用命令cp -a ~/AndroidStudioProjects/TextProject /media/kumho/文档/Github/,发现目标目录的用户/用户组全部更改成kumho,权限也被修改成700,这里好奇怪原目录的用户/用户组是root,权限是755

明明 cp -a会将目录及子文件的属性都进行复制,为什么目标目录会被修改?

这里查看了/media/kumho的文件属性drwxr-x---+ 4 root root 4096 7月 19 17:27 /media/kumho 发现文件权限后有个+,表示不解(貌似是ACL权限控制)

12. 删除了用户的主目录,进入不了该用户的图形界面环境

今天不小心将/home目录删除了(自打100下.....),之后发觉进入不了相关用户的图形界面环境 解决方法:进入终端,使用root,创建用户的主目录/home/用户名,并修改此文件的所有者与用户组为该用户

13. Vim解决中文乱码的问题

我将vim的编码都设置成utf8,可以解决中文乱码

set encoding=utf-8             "Vim内部使用的字符编码,比如脚本中的字符串,buffer,寄存器等
set termencoding=utf-8     "Vim用于屏幕显示的编码,显示时Vim将内部编码转出屏幕编码
set fileencoding=utf-8     "Vim保存文件时的编码格式
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 "Vim识别文件编码格式的识别序列,应当按照从严格到宽松的角度来摆放

参考学习 Vim文件编码识别与乱码处理

14. Shell 中判断符号[]使用的问题

判断符号[]使用有些麻烦,必须在几个地方插入空格(□)才行,比如下面的例子

[□"Hello World"□==□"Hello"□-o□"$Test"□!=□"Test"□]

就是要在变量/常量/判断符两边加上空格(□) 如果确认编写无误后,还报出"unexpected operator" 可能是shell的原因 比如 ubuntu中的sh -> /bin/dash ,其中 /bin/dash不支持 == 解决方法:

  1. 将sh -> /bin/bash : sudo dpkg-reconfigure dash 选NO
  2. 使用/bin/dash : 用=代替==
jinhucheung commented 8 years ago

15. grub > unknow filesystem的解决方法

Linux安装时分配的空间过少,而且还乱分区,所以今天想整合下分区,把没弄的分区删去.

我的根目录挂载了/dev/sda9,前面还有个/dev/sda8没有使用(df -hl 中并没有挂载/dev/sda8).于是将其删除, 但重启系统时,遇到 grub > unknow filesystem 的问题

我想是系统找不到/boot了(我的/boot没有独立分区),可能是因为根目录挂载变成/dev/sda8的原因.

这样查到了网上的解决方法

grub rescue > ls   # 查看系统分区情况
我这里列出了(hd0,msdos9),(hd0,msdos8)等

grub rescue > set root=(hd0,msdos8)  # 指向根目录

grub rescue > set prefix=(hd0,msdos8)/boot/grub  # 指定boot位置

grub rescue > insmod normal # 这命令不太懂

grub rrescue > normal #进入了平常的grub 

这里进入系统后, 下次重启时还会出现这种情况(治标不治本),于是用了boot-repair工具修复 下面是安装并启动boot-repair

add-apt-repository ppa:yannubuntu/boot-repair && apt-get update
apt-get install -y boot-repair && boot-repair

问题解决. 其实也可以直接用LIVE-CD启动系统,再用boot-repair解决(今天U盘刚好找不到了)

jinhucheung commented 8 years ago

16. 忘记root密码的解决方法

  1. 启动系统,进入boot loader启动菜单编辑,在内核项最后添加single
  2. 进入单用户维护模式,取得了root的shell
  3. 利用passwd修改密码

或者用启动盘启动系统,再挂载其原系统,利用chroot来改变工作中的系统,切换到原系统,利用passwd修改

17. init的配置文件错误,无法启动系统

  1. 启动系统,进入boot loader启动菜单编辑,在内核项最后添加init=/bin/bash
  2. 启动root的shell后再去修改init的配置文件(可能要重新挂载根目录,使其成可读写状态)

18. 如何切换操作系统(不能重启)

  1. 先在原先的操作系统中新建一个目录,比如/croot
  2. 将目标操作系统的各个分区先挂载起来,需要建立各分区对应的文件,如/croot/usr /croot/home等
  3. 使用chroot切换操作系统 chroot /croot

19. 查看打印机是否支持Linux

https://wiki.linuxfoundation.org/ 下的openprinting条目

20. 修改主机名

修改/etc/hostname(Ubuntu)/etc/sysconfig/network 之后还有修改/etc/hosts相应的条目

jinhucheung commented 8 years ago

21. Ubuntu14.04下SublimeText3不能输中文

我是查找了此网友的方法解决Ubuntu下Sublime Text 3无法输入中文

但是不能解决,继续折腾后

解决方法:

  1. 在sublimeText3官网下*.deb包,源码编译出来的sublimeText解决有点绕
  2. 下载此网友的github库sublime-text-imfix,安装其步骤来
  3. 最后遇到问题ERROR: ld.so: object '/opt/sublime_text/libsublime-imfix.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
  4. 这里要重新编译出libsublime-imfix.so库,放到/opt/sublime_text/下,编译步骤
    1. 先在下好的github库目录下找到src/sublime-imfix.c,对其进行编译
    2. 确认安装了C/C++ 的编译环境和 gtk libgtk2.0-dev,sudo apt-get install build-essential&&sudo apt-get install libgtk2.0-dev
      • 发现libgtk2.0-dev依赖有问题(啊!!你还玩我) 解决方法是用aptitude install ibgtk2.0-dev,其会提供依赖解决方法,我选择的是将依赖包降级安装
    3. gcc -shared -o libsublime-imfix.so sublime_imfix.cpkg-config --libs --cflags gtk+-2.0-fPIC 编译出libsublime-imfix.so
jinhucheung commented 7 years ago

22. Linux 下解压 Window的zip包出现乱码

使用 unzip -O cp936 解决