下载地址
centos 下载地址:
网易镜像:http://mirrors.163.com/centos/6/isos/ 搜狐镜像:http://mirrors.sohu.com/centos/6/isos/
/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
[root@hostname/]# ifconfigeth0 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)
[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=eth0TYPE=EthernetUUID=be00cae8-1162-4642-8530-6ad09fd674fcONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME="System eth0"HWADDR=00:0c:29:84:6c:c1IPADDR=192.168.1.131GATEWAY=192.168.1.1DNS1=192.168.1.1PREFIX=24LAST_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 /]# hostnamehostname
2.修改network文件
[root@hostname /]# vi /etc/sysconfig/network
NETWORKING=yesHOSTNAME=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.显示自身用户名称 whoami2.显示登录用户的用户名 who am i2.查看当前有哪些用户登录到了本台机器上 who
# vi /etc/sudoers
groupadd 组名
groupdel 组名
groupmod -n 新组名 老组名
pwd
ls
mkdir 目录名
rmdir 目录名
touch 文件名
1.复制source文件到dest cp source dest2.递归复制整个文件夹 cp -r sourceFolder targetFolder
1.删除空目录 rmdir dirname2.递归复制整个文件夹 rm -rf dirname
1.重命名 mv oldNameFile newNameFile2.移动文件 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 文件
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 [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
1)基本语法: gzip+文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip+文件.gz (功能描述:解压缩文件命令) 2)特点: (1)只能压缩文件不能压缩目录 (2)不保留原来的文件
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
1)基本语法: zip + 参数 + XXX.zip + 将要压缩的内容 (功能描述:压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件) 参数: -r 压缩目录
压缩 zip XXX.zip a.txt b.txt 解压 unzip XXX.zip
1)查看指定服务的状态 service network status 2)停止指定服务 service network stop 3) 启动指定服务 service network start 4)重启指定服务 service network restart 5)查看系统中所有的后台服务 service --status-all
1)查看所有服务器自启配置 chkconfig 2) 关掉指定服务的自动启动 chkconfig iptables off 3)开启指定服务的自动启动 chkconfig iptables on
常用语法 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是往下查找 案例
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是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。Shell是解释执行的脚本语言,在Shell中可以调用Linux系统命令。
1)echo输出命令 (1)基本语法:echo [选项] [输出内容] 选项:-e:支持反斜线控制的字符转换
控制字符 | 作 用 |
---|---|
\ | 输出\本身 |
\a | 输出警告音 |
\b | 退格键,也就是向左删除键 |
\c | 取消输出行末的换行符。和“-n”选项一致 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,也就是Tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数 |
\xhh | 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数 |
2)案例 |
# echo "HELLO WORLD"HELLO WORLD
2)第一个Shell脚本 创建一个Shell脚本,输出helloworld、
#!/bin/bashecho "helloworld"
第一种:输入脚本的绝对路径或相对路径 (1)首先要赋予
helloworld.sh
脚本的+x权限chmod777helloworld.sh
(2)执行脚本/root/helloWorld.sh或者./helloWorld.sh
第二种:bash或sh+脚本(不用赋予脚本+x权限)sh/root/helloWorld.sh或者sh helloworld.sh
1)Linux Shell中的变量分为“系统变量”和“用户自定义变量”,可以通过set命令查看系统变量。2)系统变量 :
$HOME、$PWD、$SHELL、$USER
等等 3)显示当前shell中所有变量:set
1)基本语法:变量=值 2)变量定义规则 (1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头。(2)等号两侧不能有空格 (3)变量名称一般习惯为大写 (4)双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意
STR=“hello world”A=8 定义变量Aunset A 撤销变量Areadonly B=2 声明静态的变量B=2,不能unsetexport变量名 可把变量提升为全局环境变量,可供其他shell程序使用
A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量AA=$(ls -la) 等价于反引号
1)基本语法: export 变量名=变量值 (功能描述:设置环境变量的值) echo $变量名 (功能描述:查询环境变量的值) source 配置文件 (功能描述:让修改后的配置信息立即生效)2)案例: 在/etc/profile文件中定义JAVA_HOME环境变量 export JAVA_HOME=/opt/module/jdk1.7.0_79 export PATH=$PATH:$JAVA_HOME/bin
查看环境变量JAVA_HOME的值 echo $JAVA_HOME
1)基本语法
$n
(功能描述:n为数字,$0代表命令本身,$1-$9
代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})$*
(功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)$@
(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)$#
(功能描述:这个变量代表命令行中所有参数的个数)
1)计算输入的参数1和参数2的两个数的和,并输出到控制台
#!/bin/bashnum1=$1num2=$2sum=$(( $num1 + $num2)) #变量sum的和是num1加num2echo $sum#打印变量sum的值
2)打印输入的参数总数、所有参数
#!/bin/bashecho "A total of $# parameters" #使用$#代表所有参数的个数echo "The parameters is: $*" #使用$*代表所有的参数echo "The parameters is: $@" #使用$@也代表所有参数
3) $*
与 $@
的区别
#!/bin/bashfor i in "$*" #$*中的所有参数看成是一个整体,所以这个for循环只会循环一次 do echo "The parameters is: $i" done x=1 for y in "$@" #$@中的每个参数都看成是独立的,所以“$@”中有几个参数,就会循环几次 do echo "The parameter$x is: $y" x=$(( $x +1 )) done
a)
$*
和$@
都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2…$n
的形式输出所有参数 b)当它们被双引号“”包含时,“$*”会将所有的参数作为一个整体,以“$1 $2…$n”
的形式输出所有参数;“$@”
会将各个参数分开,以“$1”“$2”…”$n”
的形式输出所有参数
1)基本语法:$?
(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。) $$
(功能描述:当前进程的进程号(PID)) $!
(功能描述:后台运行的最后一个进程的进程号(PID))
#!/bin/bash#输出当前进程的PID,这个PID就是当前这个脚本执行时,生成的进程的PIDecho "The current process is $$"
#使用find命令在root目录下查找hello.sh文件,符号&的意思是把命令放入后台执行find /root -name hello.sh &
echo "The last one Daemon process is $!"
echo "$?"
1)基本语法:(1)“$((运算式))”或“$[运算式]”(2)expr m + n注意expr运算符间要有空格2)案例:计算(2+3)X4的值 (1)采用$[运算式]方式 [root@hadoop102 datas]# S=$[(2+3)*4][root@hadoop102 datas]# echo $S (2)expr分布计算 S=`expr 2 + 3` expr $S \* 4 (3)expr一步完成计算 expr `expr 2 + 3` \* 4 echo `expr \`expr 2 + 3\`\*4`
1)基本语法:[ condition ](注意condition前后要有空格)#非空返回true,可使用$?验证(0为true,>1为false)2)案例:[atguigu] 返回true[] 返回false[condition] && echo OK || echo notok 条件满足,执行后面的语句
1)两个整数之间比较 = 字符串比较 -lt 小于 -le 小于等于 -eq 等于 -gt 大于 -ge 大于等于 -ne 不等于2)按照文件权限进行判断 -r 有读的权限 -w 有写的权限 -x 有执行的权限3)按照文件类型进行判断 -f 文件存在并且是一个常规的文件 -e 文件存在 -d 文件存在并是一个目录4)案例 [root@localhost ~]# [ 23 -ge 22 ] [root@localhost ~]# [ -w student.txt ] [root@localhost ~]# [ -e /root/install.log ]
1)基本语法:if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
#!/bin/bashread -p “please input your name:” NAME#printf ‘%s\n’ $NAMEif[ $NAME = root ]then echo “hello ${NAME}, welcome !”elif [ $NAME = atguigu] then echo “hello ${NAME}, welcome !”else echo “sorry ”fi
1)基本语法:case $变量名 in "值1") 如果变量的值等于值1,则执行程序1 ;; "值2") 如果变量的值等于值2,则执行程序2 ;; …省略其他分支… *) 如果变量的值都不是以上的值,则执行此程序 ;; esac
案例:
case $1 instart) echo “starting” ;;stop) echo “stoping” ;;*) echo “Usage:{start|stop}”esac
1)基本语法1:for 变量 in 值1 值2 值3… do 程序 done
案例:(1)打印时间
#!/bin/bash#打印时间
for time in morning noon afternoon evening do echo "This time is $time!" done
基本语法2: for (( 初始值;循环控制条件;变量变化 )) do 程序 done
从1加到100
#!/bin/bash#从1加到100
s=0 for (( i=1;i<=100;i=i+1 )) do s=$(( $s+$i )) done echo "The sum is : $s"
###### while循环
基本语法:while [ 条件判断式 ] do 程序 done
从1加到100
#!/bin/bash#从1加到100
i=1 s=0 while [ $i -le 100 ] #如果变量i的值小于等于100,则执行循环 do s=$(( $s+$i )) i=$(( $i+1 )) done echo "The sum is: $s"
1)基本语法:read(选项)(参数) 选项:-p:指定读取值时的提示符;-t:指定读取值时等待的时间(秒)。参数 变量:指定读取值的变量名
$ read -p "please input your name:" NAME
1)basename基本语法 basename [pathname] [suffix] basename [string] [suffix] (功能描述:basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。选项:suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。
$ basename /opt/test.txttest.txt
$basename /opt/test.txt .txttest
2)dirname基本语法 dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
$ dirname /opt/test.txt/opt
1)基本语法:
[ function ] funname[()] { Action; [return int;] }
function start() / function start / start()
注意:(1)必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样先编译。(2)函数返回值,只能通过$?系统变量获得,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数值n(0-255)
案例:打印出比你输入小的所有数(单参)
#!/bin/bashfunction LoopPrint() { count=0; while [ $count -lt $1 ] ; do echo $count; expr ++count; sleep 1; done return 0; } read -p "Please input the number: " n; LoopPrint $n;
多参
#!/bin/bashfunction LoopPrint() { echo $2 count=0; while [ $count -lt $1 ]; do echo $count; expr ++count; sleep 1; done return 0; } read -p "Please input the num1: " n; read -p "Please input the num2: " m; LoopPrint $n $m;
本博客仅为博主学习总结,感谢各大网络平台的资料。蟹蟹!!