linux学习记录
下载地址
centos 下载地址:
网易镜像:http://mirrors.163.com/centos/6/isos/
搜狐镜像:http://mirrors.sohu.com/centos/6/isos/
Linux目录结构
/bin:是Binary的缩写,这个目录存放着系统必备执行命令
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:所有的系统管理所需要的配置文件和子目录。
/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/misc: 该目录可以用来存放杂项文件或目录,即那些用途或含义不明确的文件或目录可以存放在该目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/net 存放着和网络相关的一些文件.
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙
/srv:service缩写,该目录存放一些服务启动之后需要提取的数据。
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
/tmp:这个目录是用来存放一些临时文件的。
/usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
常用:/home /etc /mnt /root /opt /tmp /usr /var
系统管理
查看当前服务器IP地址
[root@hostname/]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:84:6C:C1
inet addr:192.168.1.131 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe84:6cc1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28537 errors:0 dropped:0 overruns:0 frame:0
TX packets:12206 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2370715 (2.2 MiB) TX bytes:4462450 (4.2 MiB)
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:65536 Metric:1
RX packets:41376 errors:0 dropped:0 overruns:0 frame:0
TX packets:41376 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:14479865 (13.8 MiB) TX bytes:14479865 (13.8 MiB)
修改IP地址
[root@hostname/]# vim /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:84:6c:c1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
~
~
如果是克隆机器,需要将eth0网卡进行删除,并将eth1改为eth0,并复制新的eth0的物理地址
[root@hostname /]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=be00cae8-1162-4642-8530-6ad09fd674fc
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=00:0c:29:84:6c:c1
IPADDR=192.168.1.131
GATEWAY=192.168.1.1
DNS1=192.168.1.1
PREFIX=24
LAST_CONNECT=1543763603
~
~
~
需要修改的地方如下:
IPADDR=192.168.1.131
GATEWAY=192.168.1.1
ONBOOT=yes
BOOTPROTO=static 设置为静态ip
DNS1=192.168.1.1
HWADDR=00:0c:29:84:6c:c1 设置为刚才复制的物理地址
设置完成,重启机器即可
配置主机名称
1.查看主机名称
[root@hostname /]# hostname
hostname
2.修改network文件
[root@hostname /]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hostname
3.修改hosts文件
[root@hostname /]# vim /etc/hosts
添加如下内容
192.168.1.131 hostname
防火墙
1.查看防火墙的状态
service iptables status
2.临时关闭防火墙
service iptables stop
3.查看防火墙开机启动状态
chkconfig iptables --list
4.关闭防火墙开机启动
chkconfig iptables off
5.开启防火墙开机启动
chkconfig iptables on
关机重启机器
1.sync (功能描述:将数据由内存同步到硬盘中)
2.shutdown [选项] 时间
选项:
-h:关机
-r:重启
3.halt (功能描述:关闭系统,等同于shutdown -h now 和 poweroff)
4.reboot (功能描述:重启系统,等同于 shutdown -r now)
远程登录
windows 远程登录linux系统软件
xshell,SecureCRT,winscp
用户和用户组
用户
添加用户
useradd 用户名
设置密码
passwd 用户名
判断用户是否存在
id 用户名
切换用户
su 用户名称
root用户切换普通用户无需输入密码,普通用户切换root用户需要输入密码
删除用户
1.删除用户但保存用户主目录
userdel 用户名
2.删除用户不保存用户主目录
userdel -r 用户名
查看登录用户信息
1.显示自身用户名称
whoami
2.显示登录用户的用户名
who am i
2.查看当前有哪些用户登录到了本台机器上
who
设置普通用户具有root权限
# vi /etc/sudoers
用户组
添加用户组
groupadd 组名
删除用户组
groupdel 组名
修改用户组
groupmod -n 新组名 老组名
常用基本命令
文件目录操作命令
显示当前工作目录的绝对路径
pwd
列出目录的内容
ls
创建一个新的目录
mkdir 目录名
删除一个空的目录
rmdir 目录名
创建一个空的文件
touch 文件名
复制文件
1.复制source文件到dest
cp source dest
2.递归复制整个文件夹
cp -r sourceFolder targetFolder
删除目录(慎用!!!)
1.删除空目录
rmdir dirname
2.递归复制整个文件夹
rm -rf dirname
移动文件
1.重命名
mv oldNameFile newNameFile
2.移动文件
mv /temp/movefile /targetFolder
查看文件
cat [选项] 要查看的文件
选项:
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
tail (可以实时追踪文件的所有更新,例如查看tomcat的log日志)
1.查看文件头10行内容,10可以是任意行数
tail -n 10 文件
2.实时追踪该档的所有更新
tail -f 文件
echo
1.将要显示的内容,存储到文件中
echo 要显示的内容 >> 存储内容的的文件
2.显示变量的值
echo 变量
文件权限命令
文件属性:
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
0 | 1 2 3 | 4 5 6 | 7 8 9 |
目录文件 | 读 写 执行 | 读 写 执行 | 读 写 执行 |
rxw作用文件和目录的不同解释
(1)作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录 有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
(2)作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
修改权限
chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode=421 ] [文件或目录]
chmod 777 /opt/softwear
-R 可以为指定文件夹下的所有文件及目录设置权限
chmod -R 777 /opt/softwear
改变文件所属用户组
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
改变文件所有者
chown [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
压缩解压缩命令
gzip/gunzip压缩
1)基本语法:
gzip+文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip+文件.gz (功能描述:解压缩文件命令)
2)特点:
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件
tar打包
tar打包
tar + 参数 + XXX.tar.gz + 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
参数:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
压缩
tar -zcvf XXX.tar.gz n1.txt n2.txt
解压
tar -zxvf XXX.tar.gz
zip/unzip压缩
1)基本语法:
zip + 参数 + XXX.zip + 将要压缩的内容 (功能描述:压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件)
参数:
-r 压缩目录
压缩
zip XXX.zip a.txt b.txt
解压
unzip XXX.zip
后台服务管理命令
service后台服务管理
1)查看指定服务的状态
service network status
2)停止指定服务
service network stop
3) 启动指定服务
service network start
4)重启指定服务
service network restart
5)查看系统中所有的后台服务
service --status-all
chkconfig设置后台服务的自启配置
1)查看所有服务器自启配置
chkconfig
2) 关掉指定服务的自动启动
chkconfig iptables off
3)开启指定服务的自动启动
chkconfig iptables on
VI和VIM编辑器
一般模式
常用语法
1)yy (功能描述:复制光标当前一行)
y数字y (功能描述:复制一段(从第几行到第几行))
2)p (功能描述:箭头移动到目的行粘贴)
3)u (功能描述:撤销上一步)
4)dd (功能描述:删除光标当前行)
d数字d (功能描述:删除光标(含)后多少行)
5)x (功能描述:删除一个字母,相当于del)
X (功能描述:删除一个字母,相当于Backspace)
6)yw (功能描述:复制一个词)
7)dw (功能描述:删除一个词)
8)shift+^ (功能描述:移动到行头)
9)shift+$ (功能描述:移动到行尾)
10)1+shift+g (功能描述:移动到页头,数字)
11)shift+g (功能描述:移动到页尾)
12)数字N+shift+g (功能描述:移动到目标行)
编辑模式
常用语法
1)进入编辑模式
(1)i 当前光标前
(2)a 当前光标后
(3)o 当前光标行的下一行
2)退出编辑模式
按『Esc』键
指令模式
常用语法
(1):
选项:
w 保存
q 退出
! 感叹号强制执行
(2)/
查找,/被查找词,n是查找下一个,shift+n是往上查找
(3)?
查找,?被查找词,n是查找上一个,shift+n是往下查找
案例
RPM命令
查询
1)基本语法:
(1)rpm -qa (功能描述:查询所安装的所有rpm软件包)
过滤
rpm -qa | more
rpm -qa | grep X
rpm -qa | grep -I 软件名
(2)rpm -q 软件包名 (功能描述:查询软件包是否安装)
(3)rpm -qi 软件包名 (功能描述:查询软件包信息)
(4)rpm -ql 软件包名 (功能描述:查询软件包中文件)
(5)rpm -qf 文件全路径名 (功能描述:查询文件所属的软件包)
rpm -qf /etc/passwd
rpm -qf /root/install.log
(6)rpm -qp 包文件名 (功能描述:查询包的信息对这个软件包的介绍)
rpm -qp jdk-1_5_0-linux-i586.rpm
rpm -qpi jdk-1_5_0-linux-i586.rpm
rpm -qpl jdk-1_5_0-linux-i586.rpm
安装
1)基本语法:
rpm -ivh RPM包全名
-i=install,安装
-v=verbose,显示详细信息
-h=hash,进度条
--nodeps,不检测依赖进度
rpm -ivh XXXX.rpm
卸载
1)基本语法:
(1)rpm -e RPM软件包
(2) rpm -e --nodeps 软件包
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
shell编程
概述
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。Shell是解释执行的脚本语言,在Shell中可以调用Linux系统命令。
shell脚本的执行方式
1)echo输出命令
(1)基本语法:
echo [选项] [输出内容]
选项:
-e: 支持反斜线控制的字符转换
控制字符 | 作 用 |
---|---|
输出本身 | |
a | 输出警告音 |
退格键,也就是向左删除键 | |
c | 取消输出行末的换行符。和“-n”选项一致 |
e | ESCAPE键 |
f | 换页符 |
换行符 | |
回车键 | |
制表符,也就是Tab键 | |
v | 垂直制表符 |