zoukankan      html  css  js  c++  java
  • Linux

    1、认识Linux

     1.1、大纲

    • 了解Linux系统
    • 安装Linux虚拟机
    • 学习Linux的常用命令***
    • 多用户以及权限学习***
    • Linux实战
    • Linux基础精华

     1.2、学习Linux之前先认识Unix

    • Unix是一个强大的多用户、多任务操作系统。
    • 于1969年在AT&T的贝尔实验室开发。
    • UNIX的商标权由国际开放标准组织(The Open Group)所拥有。
    • UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。

     1.3、认识Linux

      

      Linux是基于Unix的,并不是在Unix的基础上开发而是参考它的思想开发的!

     1.4、Linux历史

      Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统,所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统.

     1.5、Linux的应用领域

    • 服务器系统(目前应用最多的)
      • Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;
    • 嵌入式系统
      • 路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,
    • 高性能运算、计算密集型应用
      • Linux有强大的运算能力。
    • 桌面应用系统
    • 移动手持系统(安卓就是安装在linux系统上的)

     1.6、Linux的版本说明

    • Linux的版本分为两种:内核版本和发行版本
    • 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号;
    • 发行版本是一些组织和公司根据自己发行版的不同而自定的;

     1.7、Linux主流产品(都是发行版的)

      

      :全球最大的Linux发行版的发行商,用的人最多的(很多大公司用的),收费。

      :看作是小红帽的免费版。

      :全球市场市场占有率最高的操作系统。在中国市场占有率并不高。

    2、安装Linux

     2.1、安装Linux虚拟机

    • 什么是虚拟机?
      • 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整通过软件计算机系统。
    • VirtualBox
      • VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在Sun 被Oracle 收购后正式更名成Oracle VM VirtualBox。
    • Centos
      • CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。

     2.2、网络设置

    • 首先ping一下,看是否能上网
    • 未通过,,window中通过ipconfig,而linux中用ifconfig(补充:Tab键可联想填补)查看网卡
    • 激活网卡,设置Ip参考《设置固定IP.doc》

     2.3、设置快捷键

      管理—>全局设定:

      

     2.4、文件系统

      wintdows:
      

    • Windows磁盘分区格式:FAT16,FAT32,NTFS,exFAT
    • Linux磁盘分区格式:与其它操作系统完全不同,共有两种。一种是Linux Native主分区,一种是Linux Swap交换分区。常见磁盘文件系统格式为:Ext2,ext3和ext4

     2.5、Linux的组成

      

    • COMPUTER RESOURCES系统资源
    • 内核(KERNEL)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
    • Shell是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。
    • 文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等
    • 应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等

     2.6、Linux的目录结构

      

    • Linux的目录结构是一个树形结构,“/”是Linux的根目录。(它没有c盘,只有一个“/”根目录)
    • Bin:操作命令文件
    • Etc:放配置文件
    • Home:linux本身是一个多用户系统,所有用户的根目录都是在home目录下
    • Root:特殊目录,只有超级管理员root用户有这个操作权限,其他用户没有操作权限
    • User:一般用户安装软件都装在此目录
    • Var:保存系统运行时的日志、临时文件

     2.7、远程登录Linux

    • 使用CRT软件:






      连上后,黑框直接exit即可!
    • 使用CRT注意修改外观及编码

    3、常用命令

     3.1、关机、重启

    • 关机
      • shutdown -h now  (立刻关机
      • shutdown -h 5  (5分钟后关机)
      • poweroff  (立刻关机)
    • 重启
      • shutdown -r now (立刻重启)
      • shutdown -r 5 (5分钟重启)
      • reboot (立刻重启)
    • shutdown –help帮助

    实际中,是不操作关机重启的,一般这些命令会被禁掉!

     3.2、远程登录

    • 使用CRT等客户端软件登录;
    • 使用ssh登录(登录到另一个系统);
      • ssh -l 用户名 -p 端口目标机器IP
    • 退出
      • exit (退出当前登录)

     3.3、帮助命令

    • Linux的命令非常之多,不可能都记得住使用方法;
    • 使用帮助命令--help
      • shutdown--help
      • ssh –help   (无效,解决: yum -y install openssh-clients
      • ifconfig --help (查看网卡信息)
    • 使用man命令(命令说明书)
      • man shutdown   (无效,解决:yum install man)

     3.4、Linux下查看系统版本信息

    • 查看Linux内核版本命令(两种方法)
      • cat[more] /proc/version
        [root@localhost ~]# cat /proc/version
        Linux version 2.6.18-194.8.1.el5.centos.plus (mockbuild@builder17.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Wed Jul 7 11:50:45 EDT 2010
      • uname -a
        [root@localhost ~]# uname -a
        Linux localhost.localdomain 2.6.18-194.8.1.el5.centos.plus #1 SMP Wed Jul 7 11:50:45 EDT 2010 i686 i686 i386 GNU/Linux
    • 查看Linux系统版本的命令(3种方法)
      • lsb_release -a,即可列出所有版本信息
        [root@localhost ~]# lsb_release -a
        LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
        Distributor ID: CentOS
        Description: CentOS release 5.5 (Final)
        Release: 5.5
        Codename: Final

        这个命令适用于所有的Linux发行版,包括Redhat、SuSE、Debian…等发行版。

      • cat[more] /etc/redhat-release,这种方法只适合Redhat系的Linux
        [root@localhost ~]# cat /etc/redhat-release
        CentOS release 5.5 (Final)
      • cat[more] /etc/issue,此命令也适用于所有的Linux发行版
        [root@localhost ~]# cat /etc/issue
        CentOS release 5.5 (Final)
        Kernel 
         on an m

     3.5、cd命令

    • cd app  ➔切换到app目录
    • cd..  ➔切换到上一层目录
    • cd /  ➔切换到系统根目录
    • cd    ➔切换到用户主目录(home)
    • cd -  ➔切换到上一个所在目录

     3.6、列出文件列表:ll,ls,dir

      

    1. 在linux系统中隐藏文件是以"." 开头的文件;
    2. 使用ll -a 查看所有文件,包括隐藏文件;
    3. ll显示更全,ls和dir效果相同[ls命令用法详解]
    4. ll –h  友好显示文件大小,如kb、mb

     3.7、mkdir和rmdir

    • mkdir(make directory)命令可用来创建子目录。
      • mkdir app  ➔在当前目录下创建app目录
      • mkdir –p app2/test  ➔级联创建aap2以及test目录
    • rmdir(remove directory)命令可用来删除“空”的子目录:
      • rmdir app  ➔删除app目录
    • 补充:将光标切换行最前(Ctrl+a)、最后(Ctrl+e)

     3.8、浏览文件cat,more,less

    • cat
      • 用于显示文件的内容(小文件)。
      • 格式:cat[参数]<文件名>
    • more
      • 一般用于要显示的内容会超过一个画面长度的情况。
      • 按空格键显示下一个画面。
      • 按q 键退出查看。
    • less
      • 用法和more类似,不同的是less可以通过PgUp、PgOn和空格键来控制。

    注意: cat一般用于小文件,more查看大文件内容;

     3.9、tail

    • tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。
    • 用法
      • tail -10 /etc/passwd  ➔查看后10行数据
      • tail -f catalina.log  ➔动态查看日志
    • ctrl + c  结束查看

     3.10、sed查看某时间段日志

      sed -n '/2016-07-11 13:41:00/,/2016-07-11 13:42:00/p' xxx.log

     3.11、文件删除-rm

    • rm  删除文件
      • 用法:rm [选项]... 文件...
      • rm a.txt  ➔删除a.txt文件
      • 删除需要用户确认,y/n
    • rm 删除不询问
      • rm -f a.txt  ➔不询问,直接删除
    • rm 删除目录
      • rm -r a  ➔级联、递归删除
    • 不询问递归删除(慎重)
      • rm -rf  a  ➔不询问递归删除(慎重)
      • rm -rf *   ➔删除所有文件
    • rm -rf /*   ➔自杀

     2.12、文件拷贝-cp、移动-mv、传输-scp

    • cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
      • cp a.txt b.txt  ➔将a.txt复制为b.txt文件
      • cp a.txt ../  ➔将a.txt文件复制到上一层目录中
    • mv 移动或者重命名
      • mv a.txt ../  ➔将a.txt文件移动到上一层目录中
      • mv a.txt b.txt  ➔将a.txt文件重命名为b.txt
    • scp传输文件到服务器
      • scp -r ./***.war localadmin@IP:~
        [文件传输目的地:/home/localadmin/]

     3.13、压缩/解压-zip,tar,tar.gz,tar.bz2

    1. ZIP
      zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。
      • 压缩
        • zip -r xxx.zip ./*
      • 解压
        • unzip xxx.zip
    2. TAR,TAR.GZ

      tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gizp压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件,即tar.gz。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。

      • 常用参数:
        • -c:创建一个新tar文件
        • -v:显示运行过程的信息
        • -f:指定文件名
        • -z:调用gzip压缩命令进行压缩
        • -t:查看压缩文件的内容
        • -x:解开tar文件
      • 总结:
        • tar -cvf xxx.tar ./*➔打包当前目录的所有文件以及目录,不压缩
        • tar -czvf xxx.tar ./*   ➔打包当前目录的所有文件以及目录,压缩
        • tar -xvf xxx.tar.gz  ➔解压
        • tar -xvf xxx.tar.gz  -C /tmp/xxx/➔解压并指定解包路径
    3. TAR.BZ2
      tar.bz2这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间
      • 压缩
        • tar -jcvf xxx.tar.bz2 ./*
      • 解压
        • tar -jxvf xxx.tar.bz2 -C /tmp/xxx/

     3.14、pwd,wget,touch等常用命令

    • pwd  显示当前所在目录
    • touch 创建一个空文件
      • touch a.txt 
    • wget 下载资源  (无效,解决:yum -y install wget)

     3.15、文件编辑器-vi

    • 在Linux下一般使用vi编辑器来编辑文件。
    • vi既可以查看文件也可以编辑文件。
    • 三种模式:命令行、插入、底行模式。
      • 切换到命令行模式:按Esc键;
      • 切换到插入模式:按i 、o、a键;
      • 切换到底行模式:按:(冒号);
    • 更多详细用法,查询文档《Vim命令合集.docx》《vi使用方法详细介绍.docx》
    • 保存并且退出::wq
    • 退出不保存::q!
    • 直接退出(未改动情况下)::q

    • 快捷键:
      • 大写的G跳到最后一行
      • 双d(快速):删除当前行[适用于切换插入模式前]
      • 搜索:在命令行模式下输入":/搜索内容"回车,按"n"查找下一个

     3.16、重定向输出-‘>’和‘>>’

    • >重定向输出;
    • >>重定向输出,又追加功能;
    • 示例:
      • cat /etc/passwd > a.txt  将输出定向到a.txt中
      • cat /etc/passwd >> a.txt  输出并且追加

     3.17、管道-‘|’ 

    • 管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
    • 示例
      • ls --help | more  分页查询帮助信息
      • ps –ef | grep java  用标准的格式来显示名称中包含java的进程
        • 显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD
      • ps aux | grep java 用BSD的格式来显示名称中包含java的进程
        • 显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND
      • grep -rn "2015-10-12 20:20" catalina.out 输出catalina.out文件中某个时间点的日志记录

     3.18、执行控制命令-‘&&’

    • 命令之间使用&&连接,实现逻辑与的功能。
    • 只有在&&左边的命令返回真(命令返回值$? == 0),&&右边的命令才会被执行。 
    • 只要有一个命令返回假(命令返回值$? == 1),后面的命令就不会被执行。

    启动tomcat后立刻查看日志:

    ./xxx.sh start && tail –f ../log/xxx.log

     3.19、网络通讯命令-‘ifconfig’、‘ping’、‘netstat’

    • ifconfig  显示或设置网络设备。
      • ifconfig  显示网络设备
      • ifconfig eth0 up 启用eth0网卡
      • ifconfig eth0 down  停用eth0网卡
    • ping   探测网络是否通畅。
      • ping 192.168.0.1
    • netstat 查看网络端口。
      • netstat -an | grep 3306 查询3306端口占用情况

     3.20、网络常见问题

    • mac地址不一致问题:
      • 修改成一致的mac地址;
      • 删除文件:rm -rf /etc/udev/rules.d/70-persistent-net.rules(网卡于max地址一一对应配置,这里删除,重启以重新生成)
      • 重启虚拟机
    • 没有设置开机启动
      • chkconfig --level 2345 network  on

     3.21、系统管理命令一-‘date’、‘df’、‘free’、‘top’

    • 查看物理CPU个数、核数、逻辑CPU个数
      # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
      # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
      
      # 查看物理CPU个数
      cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
      
      # 查看每个物理CPU中core的个数(即核数)
      cat /proc/cpuinfo| grep "cpu cores"| uniq
      
      # 查看逻辑CPU的个数
      cat /proc/cpuinfo| grep "processor"| wc -l
      
      #查看CPU信息(型号)
      cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
    • date 显示或设置系统时间
      • date  显示当前系统时间
      • date -s “2014-01-01 10:10:10“  设置系统时间
    • df 显示磁盘信息
      • df -h  查看每个根路径分区大小
      • df -hl 查看磁盘剩余空间
    • free 查看内存使用情况
      • free –m 以mb单位显示内存组昂头
    • top 显示,查看内存及cpu使用情况
      • 查看服务器负载,一般10已经挺高的了!(当服务器运行变慢的时候,查看服务器负载,服务器负载高的话,查看下边哪个进程导致的!)

      

    • 安装htop工具,这样更直观,
      • 安装命令如下:sudo apt-get install htop,安装完后,直接输入命令:htop,就可以看到内存或cpu的使用情况了。

     3.22、系统管理命令二-‘clear’、‘ps’、‘kill’

    • clear 清屏幕
    • ps 正在运行的某个进程的状态
      • ps –ef  查看所有进程
      • ps –ef | grep ssh 查找某一进程
    • kill 杀掉某一进程
      • kill 2868  杀掉2868编号的进程
      • kill -9 2868  强制杀死进程

     3.23、系统管理命令三-‘du’、‘who’、‘hostname’、‘uname’

    • du 显示目录或文件的大小。
      • du –h 显示当前目录的大小
      • du -sh [目录名] 返回该目录的大小
      • du -sm [文件夹] 返回该文件夹总M数
      • du --help 查看更多功能
    • df 以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息
      • df -hl 查看磁盘剩余空间

      • df -h 查看每个根路径的分区大小

      • df --help 查看更多功能
    • 查看硬盘的分区 #sudo fdisk -l

      查看IDE硬盘信息 #sudo hdparm -i /dev/hda

      查看STAT硬盘信息 #sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id

    • who 显示目前登入系统的用户信息。
    • hostname 查看当前主机名
      • 修改:vi /etc/sysconfig/network
    • uname 显示系统信息。
      • uname –a 显示本机详细信息。依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称

     3.24、用户操作命令-‘useradd’、‘passwd’、‘userdel’

    • useradd 添加一个用户
      • useradd test 添加test用户
      • useradd test -d /home/t1  指定用户home目录
      • useradd test –g public 指定用户组
    • passwd  设置、修改密码
      • passwd test  为test用户设置密码
    • userdel 删除一个用户
      • userdel test 删除test用户(不会删除home目录)
      • userdel –r test  删除用户以及home目录

     3.25、用户组操作命令-‘groupadd’、‘groupdel’

    • 当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的私有组。创建用户时也可以指定所在组  useradd test –g public
    • groupadd  创建组
      • groupadd public  创建一个名为public的组
      • useradd u1 –g public  创建用户指定组
    • groupdel 删除组,如果该组有用户成员,必须先删除用户才能删除组。
      • groupdel public

     3.26、id命令

    • 功能:查看一个用户的UID和GID
    • 用法:id [选项]... [用户名]

     

     3.27、su命令

    • 功能:切换用户。
    • 用法:su [选项]... [-] [用户[参数]... ]
    • 示例:
      • su u1  切换到u1用户
      • su – u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)
      • sudo -i 临时切换超级用户root(推荐使用)

     3.28、用户文件

    • vi /etc/passwd

      

     3.29、密码文件

    • vi /etc/shadow

     3.30、组文件

    • vi /etc/group

     3.31、权限

    • 主权限:文件所属用户权限

    • 组权限:同组的其他人对这个文件所拥有的权限
      • Linux三种文件类型
        • 普通文件:包括文本文件、数据文件、可执行的二进制程序文件等。
        • 目录文件:Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
        • 设备文件:Linux系统把每一个设备都看成是一个文件。
      • 文件类型标识
        • 普通文件(-)
        • 目录(d)
        • 符号链接(l)
        • 字符设备文件(c)
        • 块设备文件(s)
        • 套接字(s)
        • 命名管道(p)

          补充:软链接——相当于window中快捷方式,修改软链接文件对应真是的文件也会被修改!

                   硬链接——两个文件都存在硬盘上,是同步的,改其中一个,另一个也会更改!

      • 文件权限管理
        • chmod 变更文件或目录的权限。
          • chmod 755 a.txt
          • chmod u=rwx,g=rx,o=rx a.txt
          • chmod 000 a.txt  / chmod 777 a.txt
          • sudo chmod -R 777 /Users/cbb/xxx/xxx  
        • chown 变更文件或目录的拥有者或所属群组。
          • chown u1:public a.txt
          • chown -R u1:public dir 

            注意:chown命令只能是root执行。

     3.32、设置或显示环境变量-‘export’

      Linux export命令用于设置或显示环境变量。

    • 语法
      export [-fnp][变量名称]=[变量设置值]
    • 参数说明
      • -f  代表[变量名称]中为函数名称。
      • -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
      • -p  列出所有的shell赋予程序的环境变量。
    • 实例
      #mac 中禁止Homebrew自动更新
      export HOMEBREW_NO_AUTO_UPDATE=true
      
      #查看设置
      echo HOMEBREW_NO_AUTO_UPDATE

    4、Linux实践

     未完待续。。。

  • 相关阅读:
    JavaScript中的Date对象
    补零函数和随机数函数
    设置与获取自定义属性
    eval()
    获取DOM元素样式
    do{}while() 循环
    ++ 运算符
    switch 语句
    git
    webpack
  • 原文地址:https://www.cnblogs.com/cb0327/p/5396200.html
Copyright © 2011-2022 走看看