初学Linux时遇到的系列问题和解决方案

Linux初学者实践指南 本文为Linux初学者提供了一系列实践练习,包括Linux安装、硬件兼容性检查、系统模式选择、常用命令使用、文件操作、权限管理、进程控制、备份与压缩等内容。通过这些练习,用户可以掌握Linux操作系统的基础操作常用工具,提升对命令行环境的熟悉度。 阅读详情
1、在VPC中安装RHEL,startx时花屏

  说明:这是由于VPC色度不支持(真彩)24色导致的,直接修改为16即可。
  方法:vi /etc/X11/XF86Config | vi /etc/X11/xorg.conf
     Section "Screen"节点
       修改 Depth  16  -- 默认24
          Modes  "1024x768" "800x600" "640x480"

 

2、locate命令无效。

  说明:系统提示“warnning: database '/var/lib/slocate/slocate.db' is more than 8 days old ”。
  方法:updatedb

 

 3、VPC中,间断性的显示:localhost kernel: i8253 count too high! resetting..

  说明:【摘】i8253是计算机内的一个计时器芯片,当使用虚拟机或是某些笔记本安装 linux的时候,系统的时间会不定期的产生一些误差,包括linux在内的很多系统都可以进行纠正这种时间上的混乱。Linux的2.4.20核心以及 更高版本的核心在处理这种时间上的混乱时会同时发送一条Debug信息,这条信息就是i8253 count too high。

  方法:chkconfig pcmcia off,每次开机都运行。

  其它:关闭提示:开机到grub处,按下e键,选择kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ ,在末尾处“空格+single”,然后回车退出,再按b键引导进入单用户模式,在单用户模式下输入chkconfig pcmcia off;消除误差:通过修改源代码arch /i386 /kernel /time.c 文件并重新编译。

 
4、xWindow中文字体乱码。

  说明:桌面linux乱码
  方法:拷贝字体库(从Win系统中获取或网上下载)文件到: /usr/share/fonts/chinese/TrueType/目录。

5、Linux中firefox的安装。(丢弃)

  说明:半天没装上。RPM resource libpangocairo-1.0.so.0
    运行时提示: ./firefox-bin: error while loading shared libraries: libpangocairo-1.0.so.0: cannot open shared object file: No such file or directory。
    从rpmfind.net下载了pango-1.28.1-5.fc15 RPM for i686,rpm安装后还是老样子。

  方法:faint, 继续安装中。。。(可能是RHEL版本太老的缘故,多数rpm版本不够,装个firefox1,2看看。)
  继续晕,,,装FF到xWindow都进不去:
/usr/bin/gnome-session: error while loading shared libraries: libXinerama.so.1: cannot open shared object file : No such file or directory

Firefox 3.6 System Requirements 

Please note that Linux distributors may provide packages for your distribution which have different requirements.

  • Firefox will not run at all without the following libraries or packages:
    • GTK+ 2.10 or higher
    • GLib 2.12 or higher
    • Pango 1.14 or higher
    • X.Org 1.0 or higher
  • For optimal functionality, we recommend the following libraries or packages:
    • NetworkManager 0.7 or higher
    • DBus 1.0 or higher
    • HAL 0.5.8 or higher
    • GNOME 2.16 or higher
6、Apache的安装

  说明:

  方法: ./configure --sysconfdir=/etc/httpd --datadir=/usr/local/apache2/httpd --enable-modules=most --enable-mods-shared=all --enable-so
  (Fault:  no acceptable C compiler found in $PATH)
  # 要安装 GCC
  # install gcc-x.x.x-xx.el5.ix86.rpm
  # install gcc-objc-x.x.x-xx.el5.ix86.rpm
  # install gcc-objc++-x.x.x-xx.el5.ix86.rpm
  make
  make install
  chkconfig -add httpd
  chkconfig httpd on

7、Linux中jdk+tomcat的安装(稳定版: JDK1.5 + TOMCAT5)。

  说明:
  方法:到http://java.sun.com/javase/downloads/5u22/jdk上下载jdk-1_5_0_22-linux-i586-rpm.bin。 先sh, 后rpm -ivh jdk-1_5_0_22-linux-i586.rpm。
  完成安装后 vi /etc/profile:
    export JAVA_HOME=/usr/java/j2sdk1.5.0_22 (Faint, 地址写错,查了N久! debug 提示 nb: java_home should point to a jdk not a jre)
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
  reboot or source /etc/profile
  java -version 查看jvm版本。(java version "1.5.0.22" /r/n java(TM) 2 Runtime Environment,,,etc,)

 

  tomcat下载
  完成解压后 vi /etc/profile
    export TOMCAT_HOME=/usr/local/tomcat-5.5.31
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$TOMCAT_HOME/bin
  reboot or source /etc/profile
  chmod u+x $TOMCAT_HOME/bin/*.sh
  ##  $TOMCAT_HOME/bin/catalina.sh debug
  sh $TOMCAT_HOME/bin/startup.sh

8、Linux中 Apache + Tomcat  与 Apache + mod_jk2 + Tomcat 的区别。

  说明:如何做apache+tomcat整合。单独安装Apache和Tomcat并没做整合。
    apache解析html效率高,tomcat作为jsp,servlet的容器,解析html不如apache。

  方法:Apache和Tomcat的整合有三种方式,分别是JK、http_proxy和ajp_proxy.其中JK方式是最常见的方式,JK本身有两个版本分别是1和2,目前1最新版本是1.2.8,而版本2早已经废弃了。http_proxy是利用Apache自带的mod_proxy模块使用代理技术来连接Tomcat。Ajp_proxy连接方式其实跟http_proxy方式一样,都是由mod_proxy所提供的功能。只需要把配置中的 http://换成ajp://,同时连接的是Tomcat的AJP Connector所在的端口。JK稳定性好,建议采用。
  JK下载,JK安装参考
  tar -zxvf tomcat-connectors-1.2.30-src.tar.gz
  cd ./tomcat-connectors-1.2.30-src/native
  ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=/usr/java/jdk1.5.0_22/bin
  make, make install
  # cp ./apache-2.0/mod_jk.so $APACHE_HOME/modules/mod_jk.so (auto)
  cp workers.properties /etc/httpd/conf/workers.properties
  cp httpd-jk.conf /etc/httpd/conf/mod_jk.conf
  httpd -t
   (httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_jk.so into server: /usr/local/apache2/modules/mod_jk.so: undefined symbol: ap_get_server_description
   下载其它: mod_jk.so: ELF file data encoding not little-endian)
  下载mod_jk-1.2.30-httpd-2.2.X.so并覆盖mod_jk.so
  (httpd: Syntax error on line 216 of /etc/httpd/conf/httpd.conf: Syntax error on line 4 of /etc/httpd/conf/mod_jk.conf: Cannot load /usr/local/apache2/modules/mod_jk.so into server: /usr/local/apache2/modules/mod_jk.so: failed to map segment from shared object: Permission denied)
  ls -Z /usr/local/apache2/modules (查看 selinux security 的 context 项目)
  chcon -t httpd_modules_t /usr/local/apache2/modules/mod_jk.so
  ls -Z /usr/local/apache2/modules/mod_jk.so
    (list: -rwxr-xr-x  root root root:object_r:httpd_modules_t    mod_jk.so)
  httpd -t
   (Syntax OK)
  jk 配置
  httpd.conf
    Include /etc/httpd/conf/mod_jk.conf

  mod_jk.conf
    LoadModule jk_module /usr/local/apache2/modules/mod_jk.so

    <IfModule jk_module>
     JkWorkersFile /etc/httpd/conf/workers.properties
     JkLogFile /var/log/httpd/mod_jk.log
     JkLogLevel info
     JkShmFile /var/log/httpd/mod_jk.shm
     JkWatchdogInterval 60
     JkMount /*.jsp tomcatwork
     JkMount /servlet/* tomcatwork

     <Location /tomcatwork>
     # Inside Location we can omit the URL in JkMount
     JkMount tomcatwork
     Order deny,allow
     Allow from all
     </Location>

    </IfModule>

  workers.properties
    worker.list=tomcatwork
    worker.tomcatwork.type=ajp13
    worker.tomcatwork.host=localhost
    worker.tomcatwork.port=8009
    worker.tomcatwork.lbfactor=1

  $TOMCAT_HOME/conf/server.xml
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.jk.config.ApacheConfig" modJk="/usr/local/apache2/modules/mod_jk.so" workersConfig="/etc/httpd/conf/workers.properties"/>
  ...
  <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
  <Listener className="org.apache.jk.config.ApacheConfig" append="true" jkWroker="tomcatwork"/>
  ...
  </Host>
  ...
</Server>

  tomcat服务 jsvc参考
  cd $TOMCAT_HOME/bin
  tar xvfz commons-deamon-native.tar.gz
  cd commons-daemon-1.0.2-native-src/unix
  ./configure && make
  cp jsvc ../..
  cd $TOMCAT_HOME
  ./bin/jsvc -Djava.endorsed.dirs=./common/endorsed -cp ./bin/bootstrap.jar /
   -outfile ./logs/catalina.out -errfile ./logs/catalina.err /
   org.apache.catalina.startup.Bootstrap
  ln -s $TOMCAT_HOME//bin/commons-daemon-1.0.2-native-src/unix/native/Tomcat5.sh /etc/init.d/tomcatd
  vi /etc/init.d/tomcatd
  #!/bin/sh
  # chkconfig: 2345 10 90
  # description: Starts and Stops the Tomcat deamon.
  # ...
  # Adapt the following lines to your configuration
  JAVA_HOME=/usr/java/jdk1.5.0_22
  CATALINA_HOME=/usr/local/tomcat-5.5.31
  DAEMON_HOME=/usr/local/tomcat-5.5.31/bin/commons-daemon-1.0.2-native-src
  TOMCAT_USER=fbug
  JAVA_OPTS="-Xms512m -Xmx1024m -XX:PermSize=64M"

  # for multi instances adapt those lines.
  TMP_DIR=/var/tmp
  PID_FILE=/var/run/jsvc.pid
  CATALINA_BASE=/usr/local/tomcat-5.5.31
  CATALINA_OPTS="-Djava.library.path=/usr/local/tomcat-5.5.31/jni/native/.libs"
  CLASSPATH=/
  # ...
  chkconfig --add tomcatd
  (service tomcatd does not support chkconfig, Tomcat5.sh头部加红色附注即可解决)
  chkconfig tomcatd on
  service tomcatd start/stop


  其他:jsvc.tar.gz 在linux上以服务的方式启动java程序, 如用来自动启动tomcat。

 

9、Linux 系统的启动过程

  说明:
  方法:BIOS -> LILO/GRUB -> Kernel -> Init[rc.sysinit, rc] -> mingetty -> login -> shell。

  当Bash作为login shell被激活时,它将依次读取并执行以下文件:
  /etc/profile,~/.bash_profile,~/.bash_login,~/.profile
  使用--noprofile选项激活Bash可以禁止其读任何初始化文件
  在退出时执行 ~/.bash_logout 文件
  当Bash作为非login shell被激活时,它将读取并执行~/.bashrc
  使用--norc选项激活Bash可以禁止执行任何初始化文件, 使用 --rcfile file可以指定执行的初始化文件.

 

10、Linux 系统 Putty连接配置

  说明:ssh被安全策略过滤。
  方法:

  1. chkconfig sshd on;
  2. service sshd start;
  3. service iptables stop; -- vi /etc/sysconfig/iptables
    [-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT]
11、Linux中文输入法安装

  说明:Linux下的中文输入发。
  方法:fcitx3.6.3下载;
  1, tar jxvf;
  2, yum -y install gettext gettext-devel libXft libX* (linux字体)
  3, ./autogen.sh
  4, ./configure && make && make install
  5, vi /etc/X11/xinit/xinput.d/zh_CN
    XIM=fcitx
    XIM_PROGRAM=fcitx
    GTK_IM_MOUDLE=fcitx
    QT_IM_MOUDLE=fcitx
  6, vi ~/.bashrc (append)
    export LC_CTYPE="zh_CN"
    export XMODIFIERS="@im=fcitx" (before if [ -f /etc/bashrc ]; then...)
    vi ~/.i18n (new file)
    LANG="zh_CN.UTF-8"
  7, reboot(CTRL+ALT+BACKSPACE) OK
  fcitx -c
  fopen: No such file or directory
  yum -y install strace
  strace fcitx
  vi ~/.bashrc
  export XDG_CONFIG_HOME=/usr/local/fcitx-3.6.3/conf
  fcitx -c
  fcitx -d

12、linux系统的运行级别

  说明:vi /etc/inittab   内容:“id:3:initdefault:  ”
  方法:
    0 - 系统停机状态
    1 - 单用户工作状态
    2 - 多用户状态 (没有NFS)
    3 - 多用户状态 (有NFS)
    4 - 系统未使用,留给用户,一般在系统出现故障时使用
    5 - X11控制台 (xdm,gdm或kdm)
    6 - 系统正常关闭并重新启动

      常用的运行级别是3(在linux系统启动后进入字符模式) 和 5(在linux系统启动后进入图形模式)
  其它:/boot/grub/grub.conf 设置grub引导等待时间。

13、挂接新硬盘

  说明:06年的w320a本(神舟)用vmware没空间。
  方法:
    vmware分配2G新硬盘,
    reboot : sdb: assuming drive cache: write through (/dev/sdb (新出现))
    fdisk /dev/sdb   [n, p, 1],  [w]
    mount -t ext3 /dev/sdb1 /usr/local/src
    (mount: wrong fs type, bad option, bad superblock on /dev/sdb1 ...)
    mkfs -t ext3 -c /dev/sdb1
    (invalid argument passed to ext2 library while setting up superblock)
    fdisk -l
    fdisk /dev/sdb   [n,l,1] [w]
    fdisk -l
     Device Boot Start End  Blocks   Id  System
    /dev/sdb1   1   261  2096451  5  Extended  (主分区,1-4)
    /dev/sdb5   1   261  2096419+ 83  Linux      (扩展分区,从5开始)
    mkfs -t ext3 -c /dev/sdb5
    mount -t ext3 /dev/sdb5 /usr/local/src
    ls /usr/local/src
    vi /etc/fstab
    /dev/sdb1   /usr/local/src    xt3  defaults  1 2

14、挂接磁盘自动加载失败。

  说明:
  方法: rescue模式进入linux(光盘引导,输入:linux rescue)。
  vi /mnt/sysimages/etc/fstab
  /dev/sdb5   /usr/local    xt3  defaults  1 2
  reboot
  (lol~~,  Success!)
  (此时,/usr/local目录为 sdb的内容,而原先的sda中的/usr/local被隐藏。)

20、Tomcat实现负载均衡(待解决)

  说明:负载均衡实现的方式大概有四种:
    第一是通过DNS,但只能实现简单的轮流分配,不能处理故障。
    第二如果是基于MS IIS,Windows 2003 server本身就带了负载均衡服务。
    第三是硬件方式,通过交换机的功能或专门的负载均衡设备可以实现。
    第四种是软件方式,一台Apache Httpd Server做负载均衡,N台Tomcat集群节点;策略配置。连接用JK。
  方法:(研究中。。。)
    Apache+Tomcat集群的方式使用到得配置文件有httpd.conf、mod_jk.conf、workers.properties。
  参一、参N

 

 

10000、其它:个人新学命令,自己使用

名称:history
说明:罗列最近输入的命令
用法:history 5

名称:which
说明:查找命令所在目录
用法:which ls

名称:PS1 PS2
说明:设置提示符
用法:PS1='[/u@/h /w]/$'
/!    显示该命令的历史记录编号。
/#    显示当前命令的命令编号。
/$    显示$符作为提示符,如果用户是root的话,则显示#号。
//    显示反斜杠。
/d    显示当前日期。
/h    显示主机名。
/n    打印新行。
/nnn   显示nnn的八进制值。
/s    显示当前运行的shell的名字。
/t    显示当前时间。
/u    显示当前用户的用户名。
/W    显示当前工作目录的名字。
/w    显示当前工作目录的路径。

 

我的站点:www.fbug.cn


Linux驱动系列目录 Linux驱动入门系列 Linux驱动入门(一)字符设备驱动基础 Linux驱动入门(二)操作硬件 Linux驱动入门(三)Led驱动 Linux驱动入门(四)非阻塞方式实现按键驱动 Linux驱动入门(五)阻塞方式实现按键驱动 Linux驱动入门(六)poll机制实现按键驱动 Linux驱动入门(七)使用定器消除按键抖动 Linux misc设备驱动 Linux misc设备(一)misc驱动... 阅读详情

相关推荐

献给初学者:谈谈如何学习Linux操作系统

一、 选择适合自己的linux发行版 谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习lin...

小白的逆袭 1443

misp 交叉编译 错误 xxxxxxxxx/lib/libdl.so.2: ELF file data encoding not little-endian

centos系统 原因: 系统命令 cat ls 这些也使用了动态库,由于环境变量没有设置本机的库导致的这些系统工具{ls cat bash等}到工具链目录里找相应的库, 解决方法 : 所以添加上系统库路径到环境变量里就可以了,而且在centos下 需要把系统库放在前面写. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/:/usr/lib/:/usr/local/lib/:$COMPILETOOL_PATH/lib/:$COMPILETOOL_PA...

一土博客 1534

初学linux设备驱动遇到的编译操作问题解决

最近在学习linux驱动,其中当然也出现了不少问题,通过询问同事网上检索,得到解决,总结如下。后续将会更新。配置编译linux内核:1、makemenuconfig出现下面问题:’makemenuconfig’ requires the ncurses libraries原因:一个管理应用程序在字符终端显示的函数库解决:apt-getinstalllibncurses5-dev2、制作initr

pillarzheng的博客 601

7. 交叉开发环境设置

交叉编译工具是为了使在上位机中编译的文件能够在不同平台的目标机中执行,搭建交叉编译环境是嵌入式开发的第一步,也是关键的一步。不同的体系结构、不同的操作系统,甚至是不同版本的内核,都会用到不同的交叉编译器。选择交叉编译器非常重要, 有些交叉编译器经常会有部分的 BUG,都会导致最后的代码无法正常运行。

Leon的博客 1908

LibreOffice使用问题记录

LibreOffice使用心得总结

大尾猴的博客 6906

error while loading shared libraries的解决方案

error while loading shared libraries: libXXXXXXX.so.1: cannot open shared object file: No such file or directory的解决方案

weixin_42310458的博客 7万+

mysql安装报错error while loading shared libraries: libaio.so.1: cannot open shared object file: No such

  mysql安装失败,报错如上,原因是没有安装libaio.so.1,安装即可:   yum install -y libaio   然后重新安装即可。

程序园@大Null 7511

初学Linux RHEL遇到的系列问题解决方案

1、在VPC中安装RHEL,startx花屏   说明:这是由于VPC色度不支持(真彩)24色导致的,直接修改为16即可。   方法:vi /etc/X11/XF86Config | vi /etc/X11/xorg.conf      Section "Screen"节点        修改 Depth  16  -- 默认24           Modes  "1024x76

Ryan Z 的技术日志 2290

Linux初学到精通

<br /><br />华清远见系列图书<br />Linux初学到精通<br />华清远见嵌入式培训中心  张勤  鲜学丰  等编著<br />ISBN 978-7-121-12802-8<br />2011年4月出版<br />定价:62.00元(含DVD光盘1张)<br />16开<br />540 页<br />宣传语<br />深入浅出,依靠深厚行业经验讲透技术原理<br />循序渐进,详解典型应用案例提升实战能力<br />内 容 简 介<br />目前各种类型的Linux系统在其应用领域中都

Broadview专栏 1594

Linux系统初学者的常见问题解决集结(转)

Linux系统初学者的常见问题解决集结(转)   一、 如何建立多用户   提醒大家一句,别一直使用root用户,因为root用户在系统中有着至高无上的权力,一不小心就可能破坏系统。比如我们想删除/temp目录下的文件却将命...

cuemes08808的博客 287

linux初学文档,Linux初学者文档系列Linux基本知识

于 2014-01-28 11:25:50发表:谢谢分享,学习了~~~suoneo 于 2013-10-16 21:21:39发表:谢谢楼主的分享!!!huayeaiwo 于 2013-08-20 15:57:35发表:楼主好人想自由 于 2013-08-19 16:08:01发表:看看bbb1398135241 于 2013-08-07 00:22:49发表:顶顶顶顶顶顶顶顶顶顶顶顶顶顶...

weixin_36324960的博客 115

献给初学者 谈谈如何学习Linux操作系统

献给初学者 谈谈如何学习Linux操作系统

yrryyff的博客 661

error while loading shared libraries: libatomic.so.1

安装服务的候出现的问题: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory 解决方法: yum -y install libatomic

数据与工程工作,AI大模型应用 1万+

C++ 使用外部动态库

利用extern “C” 构建一个外部C库 //testlibc.cpp #include<iostream> extern "C" void test() { std::cout << "this is a test log" << std::endl; } //编译成动态库 g++ -std=c++11 testlibc.cpp -shared -fPIC -o libtest.so C 文件调用方式 main.c int main() { tes

sh13661847134的博客 1244

"error while loading shared libraries: " 错误的原因解决办法

1.系统里确实没有包含该共享库 可以 apt-get install ..... 2.已经安装了该共享库, 但执行需要调用该共享库的程序的候, 程序按照默认共享库路径找不到该共享库文件. 2.1如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令 具体 https://blog.csdn.net/u010987458/articl...

weixin_30475039的博客 2482

error while loading shared libraries: libnet.so.1:cannot open shared object file :No such file or di

Linux共享库路径配置详解: Linux下找不到共享库文件的典型现象为明明已经安装某个软包(如libnet,mysql),编译连接可以正常进行,但是在运行出现如“error while loading shared libraries: libnet.so.1:cannot open shared object file :No such file or directory”的错误提示。 ...

4860

Linux中error while loading shared libraries错误解决办法 --关于exe是否在运行夹在动态库的猜想

标准解法:   1、首先打开/etc/ld.so.conf文件   2、加入动态库文件所在的目录:执行vi /etc/ld.so.conf,在"include ld.so.conf.d/*.conf"下方增加"/usr/local/lib"。   3、保存后,在命令行终端执行:/sbin/ldconfig -v;其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/...

ljq550000的专栏 4954
上一篇: linux 文件系统目录分类
下一篇: 脚本:时间轴的实现
FBugFramework
博客等级 码龄23年 25粉丝 36原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值