linux学习整理2

RuifengZeng 2013-09-10


== 自己的整理 ============================================================================================

# ls|more      ls|less  分屏显示
# ls|grep aaa   只看含有aaa的输出

# mv i386-redhat-linux7-gcc gcc   把i386-redhat-linux7-gcc 重新命名为 gcc

- 运行C程序  (linux 自带的c运行器 放在了/usr/bin中    gcc296。   命令改了新的名字  gcc)
 gcc296 -o Hello Hello.c
 ./Hello
- 运行c++程序 (linux 自带的c++运行器 放在了/usr/bin中  i386-redhat-linux7-c++      命令改了新的名字  g++)
 i386-redhat-linux7-c++ -o w w.cpp
 ./w

- # rpm -ivh cdrom/RedHat/RPMS/gcc-3.2.2-5.i386.rpm  安装rpm类型程序

- gzip -d apache-tomcat-5.5.25.tar.gz   解压.gz类型的程序  -->这个将会生成 .tar文件
- tar -xvf 文件名


vi /etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE=eth0
 BOOTPROTO=none
 HWADDR=00:50:8D:7D:F9:44
 ONBOOT=yes
 TYPE=Ethernet
 NETMASK=255.255.255.0
 IPADDR=172.16.106.155
 USERCTL=no
 PEERDNS=yes
 GATEWAY=172.16.106.254
 IPV6INIT=no
改IPADDR=后面的值..........

== 2 ===============================================================================================
分区的种类:

主分区 -> 装操作系统  C盘
扩展分区 D E F 总称为扩展分区(里面有各种逻辑分区D,E,F)

== 3 linux设备也当作文件,如何访问设备 =============================================================

# cd /  进根目录
# cd dev  进 dev 目录
# pwd  查看当前路径
# whoami  查看你是哪个user
# ls  当前目录下 所有文件 和 文件夹

- linux系统里 有分区这个概念,但是看不到像windows那样的 C D E盘这样的分区的具体体现
- linux系统里的分区 主分区 或 扩展分区 1~4 /dev/hda1  /dev/hda2  /dev/hda3  /dev/hda4
                    逻辑分区 5往后,永远从5开始  /dev/hda5  /dev/hda6 ....  
                    (其中 字母a表示第一个磁盘,第二个磁盘上的分区那个字母为b)

- linux 直接 cd cdrom 并不能进入cdrom中,因为cdrom不是一个文件夹,而是一个块设备,是一个整体。
  需要用到 挂载点;即把cdrom和一个目录名联系起来,通过访问那个目录来访问cdrom
 # mount /dev/cdrom /mnt/cdr    -> 把设备cdrom挂在到cdr目录文件夹下
 然后
 # cd /mnt/cdr
 # ls
 然后显示出来的 就是 光驱里的内容

 # umount /dev/cdrom   或者  umount /mnt/cdr  都可以删除那个挂载点

- 硬盘 也是 一个设备,所以对硬盘的访问 也是用挂载点来做。
  '/' 是根路径,即是根硬盘的挂载点

== 4 硬盘分区 =========================================================================================

- MBR (Master Boot Record) 位于硬盘 第一个 物理扇区,柱面0,磁头0,扇区1处。
  包含 硬盘的 主引导程序,硬盘分区表

- 硬盘分区方案。两个必备分区:  '/'根分区, SWAP分区(虚拟内存,硬盘当内存使用。linux下必须有,而且大小是物理内存的两倍)


------ 一个网友的例子 -----------
在安装Linux系统时候,我将硬盘分为四个分区:第一个分区挂载在“/”目录下,第二个分区挂载在“/boot”下,第三个分区挂载在“/home”下,第四个分区是交换分区(Swap分区)。

至于/dev/hda1,/dev/hda2 也是表示硬盘的分区。

理解如下:
/dev/cdrom  这表示一个物理上的设备。但是不能从这里进入cd,需要从挂载点进入, 一般是挂在 /mnt下的某个目录里
/dev/hda1   表示一个硬件,即硬盘的一个分区。也需要从挂载点进入。 主分区就挂在 目录'/'下。
------------------


== 5 文件夹 ============================================================================================

/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
 
/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可

/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
 
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
 
注:/etc/X11存放与x windows有关的设置。
 
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
 
/lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
 
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found
 
/mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
 
/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
 
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
 
/root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
 
/sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
 
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
 
/srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
 
/usr:应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间

/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间

== 6 linux的启动顺序 =========================================================================================


1.load bios(hardware informantion)

2.read MBR's config to find out the OS
  硬盘上的数据由五大部分组成,它们分别是:MBR区、DBR区,FAT区,DIR区和DATA区。
  MBR - Main Boot Record 主引导记录区,位于整个硬盘的0磁道0柱面1扇区。

3.load the kernel of the OS

4.init process starts...

5.execute /etc/rc.d/sysinit
  rc - run command
  d - 后台运行的进程

6.start other modules (/etc/modules.conf)

7.execute the run level scripts (这里有层次的概念)
  0 - 系统停机状态
  1 - 单用户工作
  2 - 多用户状态(没有nfs-网络文件系统)
  3 - 多用户状态(有nfs)
  4 - 系统未使用,留给用户
  5 - 图形界面
  6 - 系统正常关闭并重新启动
 
8.execute /etc/rc.d/rc.local   -> 很重要,比如需要开机自动启动tomcat,在这里配置
 
9.execute /bin/login
 
10.shell started...

# exit   退出当前shell
# shutdown  关机
# reboot  重启
# man shutdown  显示命令的具体解释


== 7 常用命令1 ============================================================================================

# ls   列出当前文件夹内容
# ls -l   文件/文件夹 细节
# ls -m
# ls --help  帮助命令

# cd ..   进入上一级文件夹
# cd /   进入根文件夹

# pwd   显示当前路径

# mkdir 文件夹名
# rmdir 文件夹名  只能删除空文件夹
# rm -r 文件夹名  删除有内容的文件夹,删除时内容需要确认
# rm -rf 文件夹名  删除有内容的文件夹,删除时内容不需要确认

# touch 1   创建一个文件。(linux里 后缀没有技术上的意义,只有约定俗成的讲究)

# rm 1    删除文件
# rm -f 1   删除文件

== 8 常用命令2 =============================================================================================

# ls -R   树形结构显示当前文件夹所有内容
# cp 1 2  拷贝文件。1是已经存在的文件,2是目标文件
# cp -r d1 d2  拷贝目录。d1是已经存在的文件夹,d2是目标文件夹。   -r表示递归,很多命令都有这个后缀
# mv d1 /home  移动文件夹 到绝对路径
# mv d1 ../  移动文件夹到相对路径,这里是上一级目录
# mv -r d1 d2  移动文件夹,当文件夹里有很多东西的时候

# vi   linux的文本编辑器(两种模式  命令模式,编辑模式),刚进去是命令模式
 命令模式 输入  a 命令模式 ——> 编辑模式
 编辑模式 输入  'esc' 编辑模式 -> 命令模式
 命令模式 输入  : 在最下面一行显示出‘:’
    :w 表示存盘
    :q 表示退出
    :q! 不存盘退出
    :wq 存盘退出
 命令模式 双击 dd, 删除光标所在的那一行
 命令模式 dw,  删除一个词
 命令模式 o,  插入一空行到光标下一行
 命令模式 O,  插入一空行到光标上一行

# more 1.txt  查看文件的内容

== 9 常用命令3 ============================================================================================

# cat 1.txt  貌似和more一样,打开某个文件
# tac 1.txt  倒序 打开某个文件
# head -3 1.txt  打开 某个文件 前3行
# tail -3 1.txt  打开 某个文件 后3行
# clear   清屏
# find /etc -name *local 查找文件,在/etc目录下查找,文件名称为 *local
# whereis ls  whereis后面跟命令,显示出命令的位置 等等 (和windows下的环境变量path是一个概念)

DOS下看某个环境变量:    echo %path%    echo %classpath%

# echo $path  查看环境变量 path

# ln 1.txt 4  创建 到 1.txt的一个链接 4 。复制了一份1.txt,但是他俩是同步的。
# ln 1.txt -s 5  创建 到 1.txt的一个链接 5, 软连接 (类似于快捷方式)。注意,这里不是拷贝


== 10 常用命令4 用户管理 ============================================================================================

# useradd testuser  添加一个用户,用户名testuser
# passwd testuser  为用户设定密码

# cd /etc   # more passwd 进入etc文件夹,passwd文件,里面有所有的user信息 
    e.g.   testuser:x:501:502::/home/testuser:/bin/bash

- 什么是shell
 linux有一个内核,user和内核打交道 需要 借助于 shell。
 shell 有各种不同的类型,不同的shell有各自的用途和命令;常用的命令可能会通用。
 
 # csh  转换到c shell, 提示符变为$
 # ksh  k shell
 # sh  最原始的 shell
 # bsh  b shell
 # bash  b again shell

# cd /etc   # more group 用户组的信息。
    当 添加 用户 而不指定这个用户组的时候,默认 创建一个和这个用户名 一样 的 组。

# groupadd testg  创建一个组,组名为 testg

# useradd testuser2 -g testg 把一个用户 加入 一个组

# usermod -g testg testuser 把一个用户testuser 改到 testg 组中

# userdel testuser     # rm -rf testuser 删除用户分两步,先删用户,再删对应的主目录


# su testuser2  从当前用户 切换到 user testuser2 (当新用户登录时, 默认的目录是 该用户 主目录)


== 11 常用命令5 文件权限 ============================================================================================

- linux权限有4种:
 r read
 w write
 x execute
 - 没有权限

- 当运行 # ls -l的时候,输出很多信息,其中包含:
 rw-r--r--
 rwxrwxrwx
 共9位,分为3组,
 前3个,表示 这个 文件/目录 的所有者,有什么权限
 中3个,表示 这个 文件/目录 的所有者,同组的其他人
 后3个,剩下的人有什么权限

# chmod +x 4 表示 对文件/目录4,同时给3个权限组,x的权限
# chmod -x 4 和上面相反
# chmod u+x 4 只给当前user权限
# chmod g+x 4 只给用户组其他人加权限
# chmod o+x 4 只给其他用户加权限

# chmod 755 4 表示给文件/目录4 权限。 7表示 111 rwx, 5表示101  r-x, 5表示101 r-x
  表示给权限   rwxr-xr-x.

# chown testuser2 4 把文件/目录4的所有者,变为testuser2

== 12 常用命令6 其他常用命令,管道 ============================================================================================

# wc   统计指定文本文件的 行数 字数 字符数
# grep b 1.txt  文件1.txt中,哪些行包含字符b,就输出这些行。
# date
# who , w
# id
# hostname
# uname
# dmesg
# du
# df
# free
# fdisk -l  磁盘信息
# locale

- 管道: 将一个命令的输出 传送给 另一个命令,做为另一个命令的输入
# ls -Rl /etc | more
# cat /etc/passwd | wc
# dmesg | grep eth0 看网卡启动信息是否正常
# man bash | col -b > bash.txt
# ls -l | grep "^d"
# ls -l | grep "^-" | wc -l


== 13 常用命令7 ============================================================================================

== 14 常用命令8 ============================================================================================

# wall date 每个登录系统的用户的shell都会显示信息 'aaa'.  warning all
# wall `date` 把date做为命令运行,把运行结果发布给每一个人

- 重定向

# ls > cmd.txt  先在当前目录找到/创建 cmd.txt文件,再把ls的运行结果放到cmd.txt文件中。
# ls >> cmd.txt  运行结果append到cmd.txt中。上面是overwrite
# lssss 2> cmd.txt 错误重定向


- 作业:如何修改系统的默认启动级别?


== 15 16 17 18 vsftp redhat自带的程序 ============================================================================================

在root用户下测试。其他用户因为权限 可能会不一样

# service vsftpd start  ftp服务启动
# ftp localhost
# bye    ftp 退出
# service vsftpd stop  ftp服务停止
# service vsftpd restart ftp重启

# ifconfig   显示ip地址
# ifconfig eth0 192.168.0.1 设置ip地址

# service iptables stop  关闭防火墙

------- 配置虚拟机ip --------

目的是:让windows和linux在同一个网段里。(同一网段指 ip地址 和 子网掩码 共同决定的 公网部分 )
 同一网段的电脑是可以直接连接的。否则的话 就需要 类似路由器 那种设备。。

windows的 ip 通过  ipconfig/all可以看到。一般是两块虚拟网卡,一般用第一块网卡的ip。 比如192.168.126.1
linux  的 ip 通过 上面的命令配置。配成 192.168.126.6.

然后就直接在windows里 ping 192.168.126.6. 如果不通,可能是linux那边装有防火墙。 查查google看怎么关linux防火墙

---------------

- ftp的配置文件   /etc/vsftpd/vsftpd.conf

- windows里,连接linux ftp的命令是 ftp 192.168.126.6

- ftp # ls  查看ftp里的内容

- 在windows安装ftp客户端。并且默认anonymous用户可以登录 ,但是不可以上传。 (下载这块没讲,貌似应该默认就好用,没啥说的)
  需要配置 允许root用户上传,步骤如下:
  # more /etc/vsftpd.user_list  这里能看到哪些用户被deny访问,用vi把root用户注视掉就行。
 
- ftp服务 设置 开机启动 
 # chkconfig vsftpd on

----------- 用ftp的步骤----------------
1. 确定ftp start.   in linux check:   # ftp localhost
2. 确定linux配置了正确的ip。  in linux check :    # ifconfig
 如果ip不对,用   # ifconfig eth0 192.168.126.6 来配置  ==》 这是暂时的配置,还不知道如何永久配置ip
3. 确定windows和linux能ping通。  in windows:    ping 192.168.126.6
 如果不能ping通,检查  in linux check:    # service iptables stop  关闭防火墙
     in windows: ipconfig/all   检查 windows和linux是不是在一个网段

---------------------------


== 18 ssh 作用是 服务器远程操作 ============================================================================================

# more /etc/inittab 这里面配置 linux启动时,默认进入哪一个level,命令行 还是 图形界面    id:3:initdefault: 

# service sshd start 启动ssh
# chkconfig sshd on 设置开机默认启动  (上网找ssh客户端)

- putty 安装这个软件,远程登录操作服务器 !!!!

== 19 20 安装JDK ============================================================================================

- jdk默认安装目录   /usr/java/jdk1.6.0.03

- 遗留的问题,如何配置 环境变量 ???

- 配置环境变量
修改/etc/profile文件
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。
·用文本编辑器打开/etc/profile
·在profile文件末尾加入:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

== 20 21 22 23 24 安装tomcat ============================================================================================

相关推荐