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, 这样就可以模拟 服务器一样使用服务器了。

  

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

  

 
原文地址:https://www.cnblogs.com/dump/p/8277165.html