从零开始学习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.0inet6 addr: fe80::20c:29ff:fe28:ddb4/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:10215 errors:0 dropped:0 overruns:0 frame:0TX packets:2749 errors:0 dropped:0 overruns:0 carrier:0collisions: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.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:12 errors:0 dropped:0 overruns:0 frame:0TX packets:12 errors:0 dropped:0 overruns:0 carrier:0collisions: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, 这样就可以模拟 服务器一样使用服务器了。
这样我就可以通过这个工具去远程操作某一台服务器。