Linux环境和基本命令(1)

1、使用工具: SSH 或 SecureCRT
 目前问题:Linux主机还未设置Ip地址

复习:Linux环境和基本命令
1、简述Linux在虚拟机中安装步骤(不包括放入iso镜像文件后的步骤)。
 处理器设置、内存、磁盘(分区)、网络等

2、查看Windows和Linux系统的IP地址命令?
 Windows: ipconfig
 Linux/Unix: ifconfig      Unix: ifconfig -a   a表示all 所有的

3、登录Linux/Unix有哪些方式?
1)本地登录  在主机面前,之间操作
A. 字符界面   特点:使用大量的命令来操作和管理OS
B. 图形界面   好处:直观   缺点:费资源

2)远程登录  通过网络,在其它机器远程登录 telnet   
A. 字符界面  (最常用) 好处:省资源,随处可用
B. 图形界面   缺点:需要在客户端安装特殊的软件 更麻烦

结合小工具: SSH

4、命名的基本组成?  Linux/Unix 区分大小写  -F   -f
                          Windows中命令 不区分大小写
 命令    [选项]     [参数]
 ls        -l
 ls        -F
 ls        -al
javac     -d        .      Hello.java       JDK命令
cat                   Hello.java

5、写出一些Linux命令:
1)配置IP地址:  netconfig
2)重启网络服务:service network restart
3)查看网络是否连通:ping  id地址
4)停止当前进程组合键:ctrl + c  (Windows中也支持)
    前提:在控制台中使用
    原理:在控制台中执行ping命令,会启动一个进程,占据当前终端,通过ctrl+c 即可结束当前进程,恢复终端。

5)挂起当前进程的组合键:ctrl + z  也能交出终端
6)关闭防火墙命令:iptables -F
    重新启动Linux,还需要关闭   
7)我是谁? 查看当前登录用户信息: who am i
  (Linux/Unix是基于用户权限保证环境的安全,认清身份)
8)查看当前已登录的所有用户:who (Linux/Unix多用户系统)
9)我在哪儿?查看当前工作目录 pwd
10)查看目录下的资源(文件和目录):ls  -l (linux简写 ll)
11)改变工作目录:cd
  cd ..   退回上一次目录
  cd 目录名  进入下一层目录
  cd 决定路径  直接进入某个目录

一、软硬件体系结构
1、硬件体系:
                  (I/O进行交互)
  输入设备 -------  主机  ------输出设备
(鼠标、键盘等)                   (显示器、打印机等)
                 (CPU  内存  硬盘)

2、软件体系:以主流的B/S架构系统为例,三层架构
  Client   -----  Application Server  ----- DB Server
客户端浏览器          应用服务器              数据库服务器
 Windows             Linux/Unix               Linux/Unix
                       分开部署,减轻DB的负担,增加并发量       
                      _____________________________
                                 AUT 被测系统

二、Linux/Unix系统基本层次结构
从外到内:
  应用程序  <->  Linux操作系统  <-> 硬件
                 (Shell <-> Kernel内核)
1、Shell (直译:外壳)  命令解释器 (翻译、解释命令)
介于 用户 和 内核之间,提供与系统的命令交互。
shell本身也是一个进程,表示形式:终端、命令行风格
常见的shell类型:bash  csh   sh  (都是命令 可执行文件)
类似于Windows: cmd 命令行窗口
   对应:C:/windows/system32/cmd.exe  就是一个可执行文件

查看当前是什么shll, 使用命令:ps (查看当前部分进程)
进程id 伪终端号          启动的命令
  PID TTY          TIME CMD
 2648 pts/0    00:00:00 bash   当前shell进程
 3089 pts/0    00:00:00 ps

可以在不同shell之间切换:
 csh   
 sh
 bash

不同的shell,理解命令的方式略有差异,比如csh偏向于C语言语法
推荐使用bash,比较方便
shell层层创建(原理:创建子进程,exit可返回上一层)
登录系统后,有默认shell: 登录shell (login shell) 目前bash
此时exit,则推出登录

  PID TTY          TIME CMD
 3118 pts/0    00:00:00 bash
 3153 pts/0    00:00:00 bash
 3174 pts/0    00:00:00 csh
 3194 pts/0    00:00:00 sh
 3195 pts/0    00:00:00 ps

2、Kernel 内核,和硬件打交道,比较底层。
 (把硬件管理起来,将硬件屏蔽掉)
管理内容:交换区 swap space、文件系统 File System等。
Linux内核实现了五大功能:
1)进程/处理器管理
2)内存管理
3)接口管理
4)文件管理
5)设备管理

查看当前版本:uname -r        2.4.20-8
内核版本的组成:主版本号.次版本号.修订次数
       次版本号为奇数,版本相对不稳定   2.5.10
       次版本号为偶数,版本相对稳定     2.6.10

3、File System 文件系统:对Linux/Unix中的文件进行管理。
文件:包括文件、目录,以及外部设备也当做文件来管理。
      原因:以文件方式管理比较简便,一视同仁

三、Linux的通用特性
1、支持多用户
2、支持多任务
3、支持用户界面  (良好的交互)
4、硬件的支持
5、网络连接
6、可安装网络服务
7、应用程序的支持

四、Linux/Unix的基本命令
1、执行命令,就会执行一个可执行文件,会启动一个进程。
 比如 ps    ls
      sleep  5   启动sleep进程,睡觉5秒   单位:秒

 ctrl + c 结束当前进程,交回终端
 ctrl + z 挂起当前进程

2、man 命令 (相当于帮助文档 手册)
 Linux/Unix中针对各种命令提供手册,manual 帮助手册
 查阅ls命令的功能:
 man  ls        
 控制方式: 空格 --- 翻页
              回车 --- 跳行
               q    --- 退出 quit

3、ls命令  查看目录下的内容
1)ls -l  以长格式显示文件(use a long listing format)
         linux中可简写为ll

文件类型 权限   属主   属组   文件大小 最后一次修改时间
-rw-r--r--   1 root   root    16012  9月 23 22:28 abc.txt
            硬链接数                                  文件/目录名
           (不要求)
文件类型:
 - 普通文件
 d 表示目录

除了文件名之外的所有信息:文件的属性
属主:由哪个用户user创建的文件   owner 拥有者
属组:属于哪个用户组  group
文件大小:单位 字节Byte

2)ls -a   a就是all的意思
          显示目录下所有内容,包括隐藏文件和目录。
          隐藏文件:以 . 开头的文件

3)ls -al  选项可以组合搭配使用 (功能叠加)

4)ls -R  文件全部展开 (当前目录及子目录的资源分布)

5)ls -t   按照实际先后(文件/目录的最后一次修改时间)

6)ls -lt   结合长列表方式、按照时间排序

7)ls -F   可以查看文件类型
          普通文件      无后缀显示   
          目录           /结尾
          可执行文件    *结尾

cd到/usr/bin目录下,查看文件类型

4、clear  清屏    Windows: cls     Sqlplus: clear screen

Linux/Unix发展和厂商的产品介绍:
                          1969 Unix
                             |
   ------------------------------------
   |              |               |                  |
IBM AIX   Sun Solaris     HP UX             BSD

   Minix好比小型的Unix (Linux好比山寨版Unix)
   Linus 1991   1994  Linux(Linux is not Unix) 吉祥物:企鹅
                               |
  -------------------------------------
  |                    |                |             |
Red Hat红帽   Red Flag 红旗    S.U.S.E      Ubuntu 乌班图
  开源                             起源于德国
提供图形界面
提供大量服务来盈利

五、Unix和Linux操作系统的版本:
1、Unix: IBM-AIX、Oracle Sun-Solaris、HP-UX、Minix

2、Linux: Red Hat、Red Flag、SUSE、Ubuntu

六、Linux操作系统分区
1、Linux中,所有的设备、分区都以 系统文件 形式存在。
优点:文件可读、可写、可设定权限,高透明的管理

2、Swap分区: 交换分区、虚拟内存
作用:将磁盘空间当做内存使用,扩展内存空间,但速度明显下降
应用场合:当Linux的物理内存不够时,在磁盘中开辟一块空间,放置内存中的数据。(安装Linux时指定:2G左右,一般为物理内存的2倍,VM内存 1G)
1)如果适当使用,属于正常系统状态
2)如果大量使用swap空间,说明系统内存严重不足

3、磁盘文件命名规则:
hda1:
1) hd -- IDE硬盘
2) a  -- 第一块硬盘
3) 1  -- 第一个分区

sdb3:
1) sd -- SCSI硬盘
2) b  -- 第二块硬盘
3) 3  -- 第三个分区

4、挂载点:就是目录。系统中相应的设备文件要挂载到相应目录中,才能继续使用。
(比如:光盘、U盘、硬盘、都被看做文件,需要挂载)
 mount命令 用来挂载

5、每一块硬盘最多4个主分区(包括扩展分区)
比如:  1     2     3      4
     主分区  扩展  扩展   扩展

比如:  1     2     3      4
     主分区 主分区  扩展   扩展

1)主分区:可以拿来直接使用
用途:计算机用于启动操作系统,系统启动程序、引导程序,放于主分区中。
细节:Linux规定主分区(扩展分区)占用1~16号码的前4个
      SCSI硬盘: sda1  dsa2  sda3  sda4
     剩下sda5~sda16 逻辑分区占用

2)扩展分区:不能直接使用,需要进行逻辑分区后再使用

6、文件:包括文件 和 目录(文件夹)
                 File    Directory
   目录也是一种特殊的文件:可以有子目录和其它文件

七、Linux/Unix常用命令
1、查看磁盘空间  fdisk  -l
应用场合:当系统突然变慢或性能不佳,可以查看Linux服务器的磁盘空间,确定是否磁盘瓶颈(空间不足)。

练习:查看磁盘空间是否占满
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1        13    104391   83  Linux
/dev/sda2            14       268   2048287+  82  Linux swap
/dev/sda3           269      1044   6233220   83  Linux

Blocks: Data Block 数据块
Id: idle 表示空闲的磁盘  83%的空间可用

2、mount 挂载 显示有效磁盘分区的挂载情况

/dev/sda3 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/sda1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)

3、查看文件的内容: cat  (适合查看小文件)
# cd /root
# ls
# cat install.log
# date   查看日期
# cal    查看本月日历
# cal  2014   本年日历
# cal  10 2014  某年某月

平时命令执行的结果默认向 终端 输出。(终端-标准输出)
>  输出重定向:将输出的结果重新导向到文件中,而不是终端
# date > 1.txt
  将date的结果写入1.txt文件中
# ls -l
# cat 1.txt
# cal > 1.txt
# cat 1.txt

>    输出重定向,新的会覆盖旧的
>>   输出追加重定向,向原有文件追加内容

# date >> 1.txt
# cal 10 2014  >> 1.txt
# cat 1.txt

4、自动补全功能:Tab键
# cat  1       Tab 会补充完整的文件名
# cat  1.txt

5、目录常见概念
1)绝对路径:表示从/开始到具体的目录或文件的路径
     /etc/passwd
2)当前路径:表示当前所在的目录的路径   pwd查看
     /etc
3)相对路径:相对于当前路径下的简短路径
     passwd
     ../root/1.txt  (..回到 /下   root进入其中,找到1.txt)

比如目前在/root下  (当前路径)
需要表示/etc/passwd ?
  1)绝对路径: /etc/passwd     (特点:/ 开头)
  2)相对路径: ../etc/passwd

4)主目录:用户登录到Linux/Unix系统后,默认所在的目录
   Home Directory (家目录)
该目录下用户拥有大量的操作权限,出了此目录,则处处受挫
主目录:在创建用户时分配 目录名
 一般每个用户在/home目录下,存在一个与用户名相同的目录名。

root:x:0:0:root:/root:/bin/bash
root用户         主目录  登录shell

技巧:想快速回到主目录
    cd 回车    或    cd ~

说明:~ 代替主目录
    echo  ~      echo 回声
    echo abc

5)当前目录:  .      cd .       ./1.txt
6)上一层目录:  ..   cd  ..    退回上一层目录

6、创建目录:mkdir  目录名
# cd    回到主目录
# mkdir  test   创建一个test目录
# ls -l
# cd test
# ls         什么都没有
# ls -la     只有 .  和  ..

练习:在test目录中继续创建其它目录层次
# mkdir  dir1/dir2
mkdir: 无法创建目录‘dir1/dir2’: 没有那个文件或目录
注意:Linux/Unix中,需要加 -p选项,才可创建一个目录层次
# mkdir  -p  dir1/dir2    一气呵成
# ls -R  查看目录层次
回到test下
# cd ~/test
# mkdir dir3 dir4 dir5  依次创建三个目录,空格分隔
在主目录下新建一个game目录
# mkdir  ~/game

7、切换到图形界面: startx
# startx  在虚拟机中启动图形化界面,观察目录结构

切换回字符界面:点击红帽子 -> 注销

8、新建文件: touch  文件名
说明: 如果文件名不存在,创建一个新的、空的文件
    如果文件名存在,只会修改文件的最后一次修改时间

# cd
# cd test
# date > 1.txt    通过重定向生成一个1.txt文件
# ls -l  1.txt
# touch 2.txt      创建一个空文件
# ls -l  2.txt
# touch 1.txt
# ls -l 1.txt       1.txt最后一次修改时间 更新了
# cat 1.txt         文件内容不变

9、Linux/Unix文件、目录的命名规则
1)区分大小写
2)除了/以外的的字符
3)包含空格,需要\ 转义 或 双引号 " "
4)以.开头的名称,具备隐藏属性  (隐藏文件、目录)
5)Windows用后缀来区分不同的文件类型 *.txt  *.exe  *.doc
 Linux/Unix则不需要,后缀只属于文件名的一部分,主要用于提示文件类型(见名知意)
 比如:文本文件 file1   file1.txt   file1.abc
        f1.sh  (shell脚本文件 可执行)

10、新建文件 my file
在~/test目录下
# touch my file    会依次创建两个空文件
# touch my" "file  创建带有空格的文件
# touch my\ file1  使用转义符

11、查看包含空格的文件名  " "  \
# cat my" "file
# cat my\ file1
# cat my  file      依次显示my 和 file文件的内容

12、创建隐藏文件,文件名:  .news
# touch  .news
# ls -l
# ls -a
# ls -la

13、Linux系统的目录结构  (FHS标准)
/ 根目录 (必须存在)
  /bin     大量可执行文件 (命令  ls  pwd  cd ...)
  /sbin    系统管理员命令
  /boot    启动目录
  /root    root用户 主目录 (特殊:root用户才具备操作权限)
               root的家(皇帝的家)
  /home   普通用户的主目录  (寻常百姓家)
  /usr     用户应用程序的安装目录
  /etc     存放配置文件
              比如/etc/passwd  用户账户信息
                  /etc/shadow  保存账户密码 (加密MD5)
  /dev     设备文件
  /tmp     临时文件 (程序员使用较多)
  /lib       库文件   library
  /var      数据、日志、临时文件
  /mnt     挂接其它文件系统   mount

目录或文件其它操作:
cp   拷贝文件或目录  (copy)
# cp 1.txt   11.txt     将1.txt备份为11.txt

mv  移动文件或目录  (move)
#  mv 11.txt  22.txt     重命名
本质:改变文件的绝对路径名
  源文件名:/root/test/d1/11.txt
  改后:     /root/test/d1/22.txt

练习:在~/test下,新建d1和d2目录
 d1目录下新建1.txt  文本内容:hello    echo hello > 1.txt
 将1.txt文件拷贝到 d2目录中

# cd
# cd test      或 cd ~/test
# mkdir d1
# mkdir d2       或 mkdir d1  d2
# cd d1
# echo hello > 1.txt      会新建1.txt文件 写入hello
# cp  1.txt   11.txt    当前目录下拷贝一个11.txt
# ls -l
# cp  1.txt   ../d2/1.txt   拷贝新文件由自己命名
# cp  1.txt   ../d2          新文件继续使用原文件名

当前在test下:
# cd ~/test
# cp d1/1.txt  d2/2.txt
如果当前在d2下:
# cd ~/test/d2
# cp ../d1/1.txt   .        拷贝到当前目录
# cp ../d1/1.txt   3.txt   拷贝成当前路径下的3.txt
# cp ../d1/1.txt   ./3.txt

如果使用绝对路径:
# cp  /root/test/d1/1.txt   /root/test/d2/3.txt

将d1下的1.txt移动到d3中
# mkdir d3
# cd ~/test/d1
# mv  1.txt   ../d3

本质:就是改变文件的绝对路径名
 /root/test/d1/1.txt  -->   /root/test/d3/1.txt
 
将d1下的11.txt 重命名 为22.txt
# cd ~/test/d1
# mv  11.txt  22.txt

本质: /root/test/d1/11.txt  -->   /root/test/d1/22.txt

14、拷贝命令cp 和 移动/改名命令mv 的区别:
1)1个文件 cp 之后变为 2个文件  (备份)
2)1个文件 mv 之后还是 1个文件  (本质:改变绝对路径名)

15、删除文件或目录
1)rm 文件名     删除文件
 rm -f  关闭交互

# rm *.txt     * 通配符,匹配所有字符
                 删除以.txt为结尾所有文件

2)rmdir  删除空目录

3)rm  -r   目录名    删除一个非空目录
    rm -rf   关闭交互,删除非空目录

作业:
1、使用一个命令将多个文件合并成一个大文件
2、练习:创建目录、创建文件、删除文件/目录、拷贝、移动文件
   (文件系统中常用的命令--重点)



十四、为了使用SSH,还需要配置服务器
1、先查看IP地址(让Windows机器和Linux机器相连,需要两个IP)
查看Windows系统IP命令:ipconfig
     (或者:网上邻居 -> 右键查看属性)

 VMware Network Adapter VMnet1: 192.168.111.1
 本地连接 4:  172.166.100.141

查看Linux/Unix系统IP命令:ifconfig

回顾:选择第3种 私有网络,本机和虚拟机在同一网段

2、注意:由于安装Linux时选中第3项,则当期需要查看VMnet1的IP地址:192.168.111.1

3、在Linux系统配置IP (和VMnet1的IP在同一网段)
 192.168.111.1
 192.168.111.2  就在同一网段中
原因:子网掩码 255.255.255.0
  两个IP地址分别和子网掩码,进行按位与操作,如果结果一致,就在同一网段中。

 192.168.111.1
 255.255.255.0  按位与     (有0则0,全1则1)
----------------------
 192.168.111.0

 192.168.111.2
 255.255.255.0  按位与     
----------------------
 192.168.111.0

说明:选择第3项,Linux需要和VMnet1连通
       如果选第1项,需要查看本机IP

配置步骤:
1)查看Linux的IP地址: ifconfig   目前还未设置
2)设置Linux的IP地址:netconfig
   (设置为192.168.111.2)  前3个数字和VMnet1 IP一样

在Linux中,输入 netconfig -> 出现配置窗口(字符界面)
 -> Would you like to set up networking?  是否配置网络
 -> Yes  回车  (用Tab键选择)

Use dynamic IP configuration (BOOTP/DHCP) 自动分配IP
  不选择,需要自己设置  (用Tab键跳过)
 IP address: 192.168.111.2  回车两下,自动出现后续结果
 Netmask: 255.255.255.0   子网掩码
 Default getway(IP): 192.168.111.254
 Primary nameserver: 192.168.111.1
 -> Tab  选择 OK -> 回车

3)重启网络服务:service network restart
# service network restart
# ifconfig   查看固定好的IP地址  192.168.111.2

4)使用SSH连接Linux
 打开SSH Secure Shell -> Secure Shell Client
 -> Quick Connect  快速连接
  Host Name: 192.168.111.2    主机名
  User Name: root  用户名
  Port: 22 默认端口  ->  点击Connect

连接不上,原因:网络防火墙firewall 可能没关,需要关闭防火墙
同时排查网络是否连通:ping命令 (Windows/Unix/Linux通用)
 从Windows连Linux: CMD中  ping 192.168.111.2   可以  
 从Linux连Windows:  #  ping 192.168.111.1  
不可以,考虑关闭防火墙

提示:ctrl + c命令 用于接收当前进程

5)关闭Linux防火墙:iptables -F
# iptables  -F

再使用SSH连接Linux ...
  输入:192.168.111.2    root
  输入密码:123456 即可

方法二:如果还有问题,改为桥接方式
 选择第1种:Use bridged networking  桥接方式
  (VM -> Settings -> Network Adatper  网络适配器)
 Linux IP地址也需要和本机IP处于同一网段
   本机IP: 172.166.100.141   (本地连接IP地址)
   Linux IP: 172.166.100.101  重新设置  netconfig
 再:service network restart   重启网络服务
 再:iptables -F               关闭防火墙

SSH字体大小:
 Edit -> Settings -> Global Settings -> Appearance
  -> Font  比如:Consolas 字体   16或20

十五、Linux/Unix简单命令
命令的基本格式:命令   选项   参数
command 命令、选项、参数之间至少留一个空格
          参数是操作的对象,选项是增加的功能
          命令是主要功能,选项和参数 可能不止一个
比如:    javac    -d    .    Hello.java
           iptables  -F
           ls         -l
           ls         -al

使用Linux/Unix的命令行窗口(终端、Shell、Console、控制台)
先解决一个重要的哲学问题:我是谁?我在哪儿?我有什么?

1、我是谁?使用who am i   结果root
# who am i  显示当前用户登录信息
root     pts/0        Sep 23 16:07 (192.168.111.1)
用户名  伪终端号      登录时间      从这个IP远程登录

root     pts/1        Sep 23 16:55 (192.168.111.1)
        区分不同的终端        
伪终端号:目的,便于Linux区分不同的登录用户
   pts/0 窗口  ls
   pts/1 窗口  cal  Linux分别将结果发给不同的用户

Linux/Unix特点:典型的多用户系统

# id   用户id信息
# whoami
# who   查看当前有哪些在线用户
root     tty1         Sep 23 14:35         
root     pts/0        Sep 23 16:07 (192.168.111.1)
root     pts/1        Sep 23 16:55 (192.168.111.1)

2、我在哪儿? 使用pwd命令
pwd 显示当前的工作目录(Print Working Directory)
# pwd         /root      /目录 (根目录)下的root目录

目前/root是root用户的主目录(Home Directory)
默认就是登录后所在的目录,具备较多的权限。

3、我有什么? 使用ls命令
ls 显示当前目录的内容(包括文件和目录)
   工具显示规律:蓝色表示目录
ls -l  以长列表方式查看 (更详细)

4、去别处? cd命令 (Change Directory) 改变目录
 特殊的目录名:  .  表示当前目录
                   ..  表示上一层目录
比如:目前在/root目录下
想到/ 目录下:
# cd ..     相对路径,相对于当前/root的上一层
或者:
# cd /      绝对路径,直接定位到/下  (从/开始)

# cd .   还是在当前目录
# ls
# ls -l  查看到许多目录
  bin目录     常用的系统命令  比如ls  pwd ...
  etc目录     常用的配置文件
  home目录   用户主目录所在目录(每个用户对应一个子目录)
  root目录    管理员用户主目录
  boot目录    启动文件目录
  ...
想到/home下
# cd /
# cd home    相对路径

或者
# cd /home   绝对路径 (特点:一定从/开始)



猜你喜欢

转载自blog.csdn.net/qq_36330733/article/details/80719344