zoukankan      html  css  js  c++  java
  • Linux学习(一)

    从零开始学习linux,这里不多写虚拟机的安装以及centos的设置,简单粗暴从命令行开始;

    一、目录介绍

      /bin  存放必要的命令

      /boot  存放内核以及启动所需的文件

      /dev  存放设备文件

      /etc  存放系统配置文件

      /home  普通用户的宿主目录,用户数据存放在其主目录中

      /lib  存放必要的运行库

      /mnt  存放临时的映射文件系统,通常用来挂载使用

      /proc   存放储存进程和系统信息

      /root  超级用户的主目录

      /sbin  存放系统管理程序

      /tmp  存放临时文件

      /usr  存放应用程序,命令程序文件,程序库,手册和其他文件

      /var  系统默认日志存放目录

    二、Linux 常用命令

       默认进入系统,我们会看到这样的字符 [root@localhost~]#

       其中#代表当前是root用户登陆,如果是$表示当前是普通用户。

       常用命令:

        cd 命令, cd /home  说明:进入/home 目录

        ls  ./  查看当前目录所有的文件和目录

        ls -a  查看所有的 文件,包含隐藏的文件,以.开头的文件 

        pwd  显示当前所在的目录

        mkdir  创建目录,用法:mkdir test, 命令后面接目录的名称

        rmdir  删除空目录

        rm  删除文件或者目录,用法:rm -rf test.txt   (-r 表示递归, -f表示强制)

        cp   拷贝文件,用法:cp old.txt    /tmp/new.txt, 常用来备份;如果拷贝目录需要加 -r 参数

        mv  重命名或者移动文件或者目录,用法:mv   old.txt   new.txt

        touch  创建文件,用法:touch   test.txt  如果文件存在,则表示修改当前文件的时间

        Useradd  创建用户,用法 useradd wangjie ; userdel  删除用户

        Groupadd  创建组,用法:groupadd wang1;  groupdel  删除组

        find  查找文件或者目录,用法:find   /home  -name  "test.txt"  (命令格式为:find   /home  -name  "*.txt";   查找 /home 目录下, 所有.txt 结尾的文件或者目录)

        vi  修改某个文件,vi 有三种模式(命令行模式,文本输入模式,末行模式)

        cat  查看文件的内容, 用法:cat    test.txt 可以看到 test.txt 内容

        more  查看文件内容,分页查看,cat 是全部查看,如果篇幅很多,只能看到最后的篇幅,可以使用cat  和 more  同时使用, 例如: cat   test.txt | more 分页显示 test 内容, |  符号是管道符,用于把 | 前的输出作为后面命令的输入。

        echo  回显,用于 echo ok,  会显示 ok,  输入什么就打印什么。echo  ok >  test.txt ;  把 ok 字符覆盖 test.txt 内容, >  表示追加并覆盖的意思。 >>  两个大于号表示追加, echo  ok >> test.txt 表示向test.txt 文件追加 ok 字符,不覆盖原文件里的内容。

      初学linux基础命令大概那么多够玩一会儿了。

    三、Linux用户权限

      在linux操作系统中,root 的权限是最高的,相当于 windows 的administrator  拥有最高的权限,能执行任何命令和操作,在系统中,通过 UID 来区分用户的权限级别,UID 等于 0 , 表示此用户具有最高的权限,也就是管理员。其他的用户UID 依次增加,通过 /etc/passwd 用户密码文件可以查看到每个用户的独立 UID.

      每个文件或者目录的权限,都包含一个用户的权限,以一个组的权限,其他人的权限,例如:

        标红第一个root 表示该文件所有者是 root 用户, 第二个 root 代表该文件的所属的组为 root 组,其他用户这里默认不标除。

      [ root@ node1~]# ls -l monitor_log.sh

      -rw-r--r--  1 root  root  91 May   7 20:21 monitor_log.sh

      [ root@node1~]#

      如果我们想改变某个文件的所有者或者所属组,可以使用命令  chown

      chown  -R  test:test   monitor_log.sh  即可。

      每一个linux 文件和目录 都具有四个访问权限,即(读r, 写w, 可执行x, 无权限-)利用 ls -l 命令可以查看到某个文件或者目录的权限,它以显示数据的第一个字段为准,第一个字段由10个字符组成,如下:

      [ root@ node1~]# ls -l monitor_log.sh  

      -rw-r--r--  1 root  root  91 May   7 20:21 monitor_log.sh

      [ root@node1~]#

      第一位表示文件类型, -  表示文件,d 表示目录; 后面每三位为一组。

      第一组:2-4位,表示文件所有者的权限,即用户 user 权限,简称 u

      第二组:5-7位,表示文件所有者所属组成员的权限, group 权限,简称 g

      第三组:8-10位,表示所有者所属组之外的用户权限,other 权限,简称 o

      从上面这个文件,我们可以看出, monito_log.sh文件对应的权限为:

        root用户具有读和写的权限 root 组具有读的权限,其他人具有读的权限

      为了能更简单快捷的使用和熟悉权限,rwx 权限可以用数字来表示,分别表示为 r (4)、 w (2) 、x(1)。

      所以上面的文件 monitor_log.sh 的权限是 644

        6=4+2 (r+w)

        4= 4(r)

      如下案例是针对 chmod 修改 文件权限的操作。

    -rw-r--r--. 1 root root    3 Jan 12 06:56 a.php
    drwxr-xr-x. 2 root root 4096 Jan 12 06:09 new.txt
    [root@localhost testchild]# ll
    total 8
    -rw-r--r--. 1 root root    3 Jan 12 06:56 a.php
    drwxr-xr-x. 2 root root 4096 Jan 12 06:09 new.txt
    [root@localhost testchild]# chmod o+w a.php
    [root@localhost testchild]# ll
    total 8
    -rw-r--rw-. 1 root root    3 Jan 12 06:56 a.php
    drwxr-xr-x. 2 root root 4096 Jan 12 06:09 new.txt
    [root@localhost testchild]# chmod u+x a.php
    [root@localhost testchild]# ll
    total 8
    -rwxr--rw-. 1 root root    3 Jan 12 06:56 a.php
    drwxr-xr-x. 2 root root 4096 Jan 12 06:09 new.txt
    [root@localhost testchild]# 
    

      一次性修改 用户,组员,其他组的 权限

    [root@localhost testchild]# chmod u=rwx,g=rwx,o=rwx a.php
    [root@localhost testchild]# ll
    total 8
    -rwxrwxrwx. 1 root root    3 Jan 12 06:56 a.php
    drwxr-xr-x. 2 root root 4096 Jan 12 06:09 new.txt
    [root@localhost testchild]# 
    

      更快捷的修改权限 chmod 777 a.php

    [root@localhost testchild]# chmod 444 a.php
    [root@localhost testchild]# ll
    total 8
    -r--r--r--. 1 root root    3 Jan 12 06:56 a.php
    drwxr-xr-x. 2 root root 4096 Jan 12 06:09 new.txt
    [root@localhost testchild]# chmod 777 a.php
    [root@localhost testchild]# ll
    total 8
    -rwxrwxrwx. 1 root root    3 Jan 12 06:56 a.php
    drwxr-xr-x. 2 root root 4096 Jan 12 06:09 new.txt
    [root@localhost testchild]# 
    

      修改文件的用户组 chown -R abc:abc a.php

    [root@localhost testchild]# useradd abc
    [root@localhost testchild]# ls -l a.php
    -rwxrwxrwx. 1 root root 3 Jan 12 06:56 a.php
    [root@localhost testchild]# chown -R abc:abc a.php
    [root@localhost testchild]# ls -l a.php
    -rwxrwxrwx. 1 abc abc 3 Jan 12 06:56 a.php
    [root@localhost testchild]#   

    四、Linux 网络配置

      熟悉了常用的命令Linux权限,那接下来如何让所在的Linux 系统上网呢? 管理 Linux服务器网络有哪些命令呢?

      Linux服务器默认网卡配置文件在 /etc/sysconfig/network-scripts/下,命令的名称一般为:ifcfg-eth0  ifcfg-eth1,    eth0 表示第一块网卡, eth1 表示第二块网卡, 依次类推。 一般 DELLR720 标配有 4 块千兆网卡。

      修改网卡的 IP, 可以使用命令: vi  /etc/sysconfig/network-scripts/ifcfg-eth0    如果是  DHCP 获取的 IP  , 默认配置如下:

      #Advanced Micro Devices [AMD] 79C970 [PCnet32 LANCE]

      1、查看是否能够链接网络

    [root@localhost testchild]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:DD:B4  
              inet addr:192.168.217.128  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe28:ddb4/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:10215 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2749 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:10984914 (10.4 MiB)  TX bytes:161147 (157.3 KiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:12 errors:0 dropped:0 overruns:0 frame:0
              TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:720 (720.0 b)  TX bytes:720 (720.0 b)
    
    [root@localhost testchild]# ping www.baidu.com
    ping: unknown host www.baidu.com
    [root@localhost testchild]# 
    

      由此可见,目前还访问不到网络,那么开始修改网卡地址,继续往下走  cd /etc/sysconfig/network-scripts/

    [root@localhost testchild]# cd /etc/sysconfig/network-scripts/
    [root@localhost network-scripts]# pwd
    /etc/sysconfig/network-scripts
    [root@localhost network-scripts]# ls
    ifcfg-eth0   ifdown-isdn    ifup-aliases  ifup-plusb     init.ipv6-global
    ifcfg-lo     ifdown-post    ifup-bnep     ifup-post      net.hotplug
    ifdown       ifdown-ppp     ifup-eth      ifup-ppp       network-functions
    ifdown-bnep  ifdown-routes  ifup-ippp     ifup-routes    network-functions-ipv6
    ifdown-eth   ifdown-sit     ifup-ipv6     ifup-sit
    ifdown-ippp  ifdown-tunnel  ifup-isdn     ifup-tunnel
    ifdown-ipv6  ifup           ifup-plip     ifup-wireless
    [root@localhost network-scripts]# vi ifcfg-eth0
    [root@localhost network-scripts]# 
    

      修改文件前是这个样子的如下:

    DEVICE="eth0"           //第一块网卡
    BOOTPROTO="dhcp"            //动态获取的,通过dhcp 云服务端动态获取的ip地址
    HWADDR="00:0C:29:28:DD:B4"  //mack 地址
    IPV6INIT="yes"
    NM_CONTROLLED="yes"
    ONBOOT="yes"           //开机重启,网卡是否开启的意思,控制网卡的地方
    TYPE="Ethernet"
    UUID="8134b9c3-0d66-4983-ac3f-23ec133f8d9e"  
    

      修改后是这个样子的如下:

    DEVICE="eth0"
    BOOTPROTO=static   //静态ip 
    HWADDR="00:0C:29:28:DD:B4"
    IPV6INIT="yes"
    NM_CONTROLLED="yes"
    ONBOOT="yes"
    TYPE="Ethernet"
    UUID="8134b9c3-0d66-4983-ac3f-23ec133f8d9e"
    IPADDR=192.168.217.129  //ip地址
    NETMASK=255.255.255.0  //子网
    GATEWAY=192.168.217.2  //网关
    

      网卡配置完毕,还需要重启网卡;还需要用如下命令重启一下网络服务:# service network restart

    [root@localhost network-scripts]# /etc/init.d/network restart
    

      查看 ip 命令:ifconfig  查看当前服务器所有的网卡ip , 可单独指定, ifconfig eth0 查看 eth0 的ip

      网卡配置完毕,如果来配置 DNS, 首先要指定DNS 配置在哪个目录下, vi  /etc/resolv.conf

      文件: 该文件里面添加如下两条:

      nameserver   202.106.0.20

      nameserver   8.8.8.8

      从上到下,分别表示主 DNS , 备 DNS. 配置完毕后,不需要重启网卡, DNS立即生效。这个时候 ping www.baidu.com  看看效果;  

      我这里链接不了,就是因为上面这些文字没有操作导致的:

      我的错误是这样的:这个时候好像 ping www.baidu.com  貌似还是链接不上 比如出现 ping host not font www.baidu.com

      因为我们要修改dns  则继续修改:

    [root@localhost network-scripts]# vi /etc/resolv.conf
    

      修改完是这个样子的如下:[root@localhost network-scripts]# cat /etc/resolv.conf

    # Generated by NetworkManager
    
    
    # No nameservers found; try putting DNS servers into your
    # ifcfg files in /etc/sysconfig/network-scripts like so:
    #
    nameserver 192.168.217.2    //跟 GATEWAY=192.168.217.2是一样的

    nameserver 202.186.0.20 //网通的DNS(建议加上)
    # DOMAIN=lab.foo.com bar.foo.com

      然后在去 ping  可见已经成功了,特别开心,之前改 dns 时 nameserver   192.168.217.2  写成了 nameserver = 192.168.217.2  总是失败,原因是我写错了,当然如果不改这个文件还是链接不了网

      有朋友说如果不改该文件还有另外一种方案可以上网:(虚拟机开了NAT就行,然后启动network就行了)我没有测试过;

    [root@localhost network-scripts]# ping www.baidu.com
    PING www.a.shifen.com (115.239.211.112) 56(84) bytes of data.
    64 bytes from www.baidu.com (115.239.211.112): icmp_seq=1 ttl=128 time=8.36 ms
    64 bytes from www.baidu.com (115.239.211.112): icmp_seq=2 ttl=128 time=9.18 ms
    64 bytes from www.baidu.com (115.239.211.112): icmp_seq=3 ttl=128 time=8.53 ms
    ^C  

    五、远程工具链接Linux服务器

      常见的 Linux远程链接工具有:putty,  secureCRT(主流) , xshell, xmanger 等工具。

      我比较喜欢 xshell, 网上下载,安装就可以使用。

      这里我用的是xshell 

      

      输入自己的主机ip,  就可以了, 端口号默认为22, 这样就可以模拟 服务器一样使用服务器了。

      

      这样我就可以通过这个工具去远程操作某一台服务器。

      

     
  • 相关阅读:
    iOS 日期格式
    时间复杂度、空间复杂度
    转载 -- 算法题
    奇奇怪怪的Bug
    iOS12中推送通知新特性
    iOS开发网络篇—Socket编程
    iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem
    关于textField输入光标颜色及cleanButton大小和颜色的设置
    腾讯云开发微信小程序使用体验
    简单理解JavaScript原型链
  • 原文地址:https://www.cnblogs.com/dump/p/8277165.html
Copyright © 2011-2022 走看看