1. halt
-- 关机
reboot -- 重启计算机
passwd [root|用户名] -- 修改用户名
密码
whoami -- 获取当前用户名
hostname -- 计算机名称
2. -----防火墙
service iptables stop -- 关闭防火墙
service iptables [start|stop|reload|restart|condrestart|status|panic|save]
3. ---------- 修改计算机名
cat /etc/sysconfig/network --查看
vi /etc/sysconfig/network -- 修改
HOSTNAME=date2
GATEWAY=192.168.161.2
-----------修改IP地址与计算机名称的对应关系
cat /etc/hosts
vi /etc/hosts
[IP地址] [修改后的计算机名称]
----------------设置IP---------------------
虚拟机设置网络适配器选择NAT模式,编辑虚拟网络适配器选中VMnet8,选择NAT模式,点击NAT设置,设置网关IP,添加端口和虚拟机ip
cd /etc/sysconfig/network-scripts
ls
touch ifcfg-eth1 -- 没有就创建
DEVICE="eth1" -- ifconfig 第一行最前面的装置名称
TYPE="Ethernet" -- 类型
NAME="eth1" -- 和DEVICE相同
BOOTPROTO=static -- 表示ip地址静态
NM_CONTROLLED="yes" --
IPV6INIT="no" --
ONBOOT="yes" --
IPADDR=192.168.161.132 -- 虚拟网络编辑器设置的静态ip地址
NETMASK=255.255.255.0 -- 虚拟网络编辑器设置的静态ip地址的掩码
GATEWAY=192.168.161.2 -- 虚拟网络编辑器设置的静态ip地址的网关ip
DNS1=192.168.161.2 -- 与网关ip相同
DNS2=8.8.8.8 -- 服务器。。。(此为谷歌的。。。。)
------设置网关
vi /etc/resolv.conf
nameserver 192.168.161.2
nameserver 8.8.8.8 保存
service network restart -- 重启网络服务
reboot(建新文件后重启一次)
---------------------------------------------------------------------------------
4. 'ctrl + alt + F4 -- 进入命令界面
5. pwd -- 当前所在位置(路径)
6. ls /[home|路径] -- 显示文件信息
7. ls -l / -- -l(选项)每个文件夹的详细信息
d* 表示文件夹
-* 表示文件
8. ls -a /home/yangxing
9. ls ./ -- 当前目录
ls ../ -- 上一级目录
10. mkdir [文件夹名] -- 创建文件夹
11. cd [文件夹名] -- 进入文件夹
12. touch [文件名.后缀] -- 创建空文件
13. vi/vim [文件名.后缀] -- 修改文件内容
i -- 进入编辑状态
dd -- 删除选中行内容
’ESC -- 退出编辑状态
'shift + : + [wq] -- 保存
wq -- 退出(w保存,q退出)
q! -- 强制退出
14. cat [文件名.后缀] -- 查看文件内容
15. mv [旧文件名.后缀] [新文件名.后缀] -- 修改文件名
16. mv ./[文件名.后缀] ./[文件夹名] -- 移动当前文件到当前文件夹下
17. rm [文件名.后缀] -- 删除文件
rm -rf [文件夹名] -- 删除文件夹及其内部文件
18. rmdir [文件夹名] -- 删除文件夹
19. useradd [新用户名] -- 新增用户名
20. su - root -- 进入管理员账号
su [用户账户名] -- 进入普通用户
cat /etc/passwd -- 查看用户列表文件
cat /etc/group -- 查看用户组列表文件
21. groupadd [用户组名] -- 新建用户组
22. usermod -g [用户组名] [用户名] -- 修改用户到用户组中
23. su tt
cd ~ -- 进入登陆用户的根目录
24. cp ./[文件名.后缀] ./[文件夹名] -- 复制当前文件到当前文件夹下
25. ls -a -- 查看所有(包括隐藏)文件
26. cd .. -- 进入上一级
27. ifconfig -- 查看本机器IP地址
28. ping [IP地址] -- 连接[IP地址]机器
'ctrl + z -- 退出连接状态
29. scp ./[文件名.后缀] root@[IP地址]:/home/[用户名]
-- 移动当前文件夹下文件到【IP地址】机器下【用户名】目录下
30. scp root@[IP地址]:/home/[用户名]/[文件名.后缀] ./
-- 移动【IP地址】机器下【用户名】目录下文件到当前文件夹下
31. linux与windows之间文件共享
(1)在windows下面新建文件夹,然后点属性,然后点共享
(2)在虚拟机上面点击"虚拟机 -> 设置 -> 选项 -> 共享文件夹 -> 总是启用 -> 添加,选择刚才windows共享的文件夹
(3),在linux下面查看windows下的共享文件夹: cd /mnt/hgfs/windows共享文件夹
----------安装jdk,tomcat,mysql----------------
32. cp -ir /mnt/hgfs/setup ./ -- 将共享文件setup文件夹copy到当前文件下
33. tar -zxvf [jdk-8u152-linux-x64.tar.gv|文件名] -- 解压jdk...文件
34. /etc/profile (所有用户都可访问)
cd ~
ls -a
.bash_profile (最后访问,只能当前用户访问)
35. vi /etc/profile --- 全局环境变量(/root/.bash_profile -- 用户环境变量,先加载全局再加载用户)
(最后一行)
export JAVA_HOME=/usr/local/jdk1.8.0_152 -- 配置jdk环境变量
export JRE_HOME=${JAVA_HOME}/jre -- 配置jre环境变量
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${PAHT} -- 配置PATH环境变量 ([路径]:[路径]--[路径]加[路径])
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib
36. source /etc/profile -- 让修改的文件生效
37. ------------检查环境变亮是否配置正确
javac 编译命令
java 运行命令
java -version -- 查看版本
38. cd /usr/local/tomcat7/bin
./startup.sh -- linux下启动tomcat
39. netstat -- 显示所有端口
grep -ir "start" ./ --- 在当前路径下查找“start”
find ./ -name "tomcat.sh" -- 在当前路径下查找“tomcat.sh”文件(显示路径)
netstat -ntlp | grep 8080 -- 检查8080端口是否启动
#!/bin/bash
netstat -ntlp | grep 8080
result=$? -- 0开启,1未开启
40. service iptables stop -- 关闭防火墙
service iptables [start|stop|reload|restart|condrestart|status|panic|save]
41.----------安装数据库
复制 解压
mysql下 .so文件 (动态链接库)
mkdir data (mysql数据存放的地方)
groupadd mysql
-- 打开数据库
cd /usr/local/mysql/bin
--- // service mysqld start
../mysql -uroot -p
Enter password: 输入密码
-- 查看端口是否启动
cd /usr/local/mysql/bin
netstat -ntlp
42. useradd -r -g mysql mysql -s /sbin/nologin
-- 创建用户 加入用户组 用户组 用户 设置为不可用
43. chown -R mysql.mysql /usr/local/[mysql] -- 使用户具有操作数据库权限
-- 用户组.用户 mysql解压包名
44. ./bin/mysql_install_db --user=mysql --basedir=/usr/local/[mysql] --datadir=/usr/local/[mysql]/data
-- 执行安装数据库命令 用mysql用户操作 基础路径 数据存放路径
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ -- datadir=/usr/local/mysql/data/
-------初始化数据(切换到当前目录/usr/local/mysql)
45. cp -a ./support-files/my-default.cnf /etc/my.cnf -- 复制配置文件,并改名为my.cnf
46. cp -a ./support-files/mysql.server /etc/init.d/mysqld -- 复制mysql系统服务脚本
47. service mysqld start -- 启动mysql服务
48. cat /root/.mysql_secret -- 查看数据库初始密码
49. ---------修改数据库密码
cd /usr/local/mysql
./binmysql -uroot -p
输入密码
Set PASSWORD = PASSWORD('123456'); --设置密码
flush privileges; -- 刷新
quit -- 退出
50. show databases; -- 显示所有数据库
use mysql; -- 使用mysql数据库
show tables; -- 显示mysql数据库里所有的表
desc user; -- 表字段
51. -------- 使数据可以被远程访问
update user set host = '%' where user='root'; -- mysql内更改user表host字段
--------windows访问linux数据库
cmd
cd C:\Program Files(x86)\MySQL\MySQL Server 5.0\bin (mysql安装路径下的bin文件)
mysql -h192.168.161.132 -P3306 -uroot -p
(要连接的IP地址) (mysql端口) (用户登录为管理员)
输入密码
--------------
52. #!/bin/bash -- 解析器(开头第一行)
‘Esc 'Shift + : set number --- 显示行号
53. chmod + x a1.sh --修改a1.sh 文件的权限
[x|r|w](可以用数字代替[4|1|2])
[执行|只读|写入]
chmod 777 a1.sh -- 给a1.sh加上所有权限
54. ----运行
1) ./a1.sh
2) sh a1.sh
3) /bin/bash a1.sh (文件头没有写解析器)
55. -------在a2.sh文件里创建文件等操作
#!/bin/bash
mkdir /home/yangxing/test2/aa
cd /home/yangxing/test2/aa
touch a.txt
echo "hello world!" > a.txt
echo "abc" >> a.txt ---在文件下追加内容(先备份)
56. whoami -- 获取当前用户名
vi t3.sh
echo `whoami` > a.txt
57. ----------变量的赋值和读取
#!/bin/bash
name="xiao" --- 字符串
aa="abcdefghijklmnopqrstuvwxyz"
sex='f' --- 字符
array_name=(1 3 5 7 15 98 100) --- 数组
echo $name
echo ${name}
echo ${name}hello ----(xiaohello)
echo "hello ${name}" --- (hello xiao)
echo 'hello ${name}' --- (hello ${name})
echo ${#name[*]} -- 获取name字符串的字节长度
echo ${name:3:2} -- 截取name字符串的子字符串,从3位开始(0位开始),取两位
echo ${array_name[0]} -- 获取数组array_name中的第0位元素
echo `expr index "${aa}" c` -- 字符c在变量aa中的位置(3)
echo `expr index "${aa}" "${sex}"` --(6)
#注释 ----获取所有值的两种方法----
echo ${array_name[@]}
echo ${array_name[*]}
-----
echo ${#array_name[*]} -- 数组长度
58. ----------------变量运算操作
#!/bin/bash
x=7 --- 赋值号前后没有空格
y=5
z=`expr ${x} + ${y}` --- 运算符前后必须有空格,
z=`expr ${x} \* ${y}` -- 乘法运算符*需要转译
echo `${z}
echo `expr ${x} + ${y}`
echo x+y=`expr ${x} + ${y}` ---- (x+y=13)
let a=${x}+${y} --- 加号左右不加空格
echo $a
---------数字比较 if----------------
if [ ${x} -eq ${y} ] -- eq相等,gt大于,ne不想等,lt小于,le小于等于,ge大于等于
then
echo "equals"
elif [[ ${x} > ${y} ]] -- 中括号前后加空格(字符串比较)
then
echo "gt"
else
echo "not equals"
fi --- 结束判断--
59. ------逻辑运算符
!非; -o, || 或; -a, && 与
60. ------字符串比较
if [ ${a} = ${b} ] 字符串是否相等
if [ -z ${a} ] 长度是否为0
if [ -n ${a} ] 长度是否不为0
if [ ${a} ] 是否为空
61. -------文件
file="/home/yangxing/test3/aa"
if [ -d ${file} ] -- file路径是否是文件夹
if [ -f ${file} ] -- 是否是文件
if [ -r ${file} ] -- 是否可读
if [ -w ${file} ] -- 是否可写
if [ -x ${file} ] -- 是否可读执行
62. --------for 循环
for i in ${array_name[*]} ---- //for var in 1 2 3 4 5 6 7 8 9
do
echo ${i}
done
------------1到100
for i in `seq 1 100`
for i in {1..100}
for ((i=0;i<100;i++))
----------------case语句
a=""
case $a in
"aa")
echo "aa"
;;
"bb")
echo "bb"
;;
"*"
echo "0"
;;
esac
63. -------键盘
read -p "please enter name: " name --- -p等待键盘输入
echo ${name}
64. ages=(${ages[*]} 18) --- 在数组里添加新数据
65. ----------从文件外部传入
a10.sh
#!/bin/bash
echo $0 --- 第一个参数
echo $1
echo $2
-- 文件外,键盘输入
sh a10.sh 1 200 300
--显示
a10.sh
1
200
66. -------while
while (( "${i} < 100 " ))
do
let "sum+=i"
done
67. wget http://www.baidu.com/ -- 访问网页 (wget 下载)
more index.html -- 从首页开始访问
68. --------------安装redis
/usr/local 下解压(安装路径,任意都行,注意环境变量的设置添加)
cd /usr/local/redis-3.0.7
make -- 编译
make install -- 安装
${PATH} -- 查看/usr/local/bin是否已配置
redis-server -v -- 查看版本
----------------配置-----------------
-----配置文件
cd /etc
mkdir redis
cd /var
mkdir redis
cd /var/redis
mkdir data log run
-----配置参数
cp /usr/local/redis-3.0.7/redis.conf /etc/redis/
cd /etc/redis
vi redis.conf
找到 pidfile /var/run/redis.pid 改为 pidfile /var/redis/run/redis.pid
dir ./ 改为 dir /var/redis/data (更改数据默认存放路径)
logfile "" 改为 logfile "/var/redis/log/redis.log" (日志文件路径)
------ 运行
cd /usr/local/bin
redis-server /etc/redis/redis.conf
后台(用另一个软件)执行 netstat -ntlp 命令 ,查看6379端口是否打开
(---redis-server /etc/redis/redis.conf & 后台运行---)
‘ctrl + z 退出
--------------------------------
redis-cli
set user tt
get user
----------------------------------------------------------------------
69.----------------函数
#!/bin/bash
a=$1 ---- 脚本外的参数
function demo(){ -- 函数定义,function可不写
read a
read b
echo `expr $a + $b`
}
demo -- 函数调用
function add(){
echo $1 -- 第一个参数
echo $2
echo $# --- 参数个数
c=`expr $1 + $2`
return $c
}
add 10 20 -- 传参
ret=$? --- 获取上一个返回值
echo ret
ret1=`demo` -- 运行demo函数,获取所有echo值,用空格分开
echo ret1
----------------------------------------------------
[tt@localhost home]$
[当前用户@当前机器 当前文件夹]普通用户
[root@localhost home]#
。。。。。超级管理员
--------------------------------------------------------
linux文件目录:
bin 二进制可执行文件
etc 系统配置文件
usr 共享系统资源
lib 库文件
tmp 临时文件
home
dev 设备文件
--------------------------------------------------------
脚本编程
windows: dos setclasspath.bat(文件存放)
inux: shell setclasspath.sh
-------------------------
./a5.sh -- 当前路径下
a5.sh -- PATH 环境变量下路径
--------------------
= 赋值
== 内容相等 !=
=== 内容相等,类型相等(绝对等于) !==
-------------------------------------------------------------
http://www.runoob.com/linux/linux-shell.html
获取第n个参数 --- ${!i}
reboot -- 重启计算机
passwd [root|用户名] -- 修改用户名
密码
whoami -- 获取当前用户名
hostname -- 计算机名称
2. -----防火墙
service iptables stop -- 关闭防火墙
service iptables [start|stop|reload|restart|condrestart|status|panic|save]
3. ---------- 修改计算机名
cat /etc/sysconfig/network --查看
vi /etc/sysconfig/network -- 修改
HOSTNAME=date2
GATEWAY=192.168.161.2
-----------修改IP地址与计算机名称的对应关系
cat /etc/hosts
vi /etc/hosts
[IP地址] [修改后的计算机名称]
----------------设置IP---------------------
虚拟机设置网络适配器选择NAT模式,编辑虚拟网络适配器选中VMnet8,选择NAT模式,点击NAT设置,设置网关IP,添加端口和虚拟机ip
cd /etc/sysconfig/network-scripts
ls
touch ifcfg-eth1 -- 没有就创建
DEVICE="eth1" -- ifconfig 第一行最前面的装置名称
TYPE="Ethernet" -- 类型
NAME="eth1" -- 和DEVICE相同
BOOTPROTO=static -- 表示ip地址静态
NM_CONTROLLED="yes" --
IPV6INIT="no" --
ONBOOT="yes" --
IPADDR=192.168.161.132 -- 虚拟网络编辑器设置的静态ip地址
NETMASK=255.255.255.0 -- 虚拟网络编辑器设置的静态ip地址的掩码
GATEWAY=192.168.161.2 -- 虚拟网络编辑器设置的静态ip地址的网关ip
DNS1=192.168.161.2 -- 与网关ip相同
DNS2=8.8.8.8 -- 服务器。。。(此为谷歌的。。。。)
------设置网关
vi /etc/resolv.conf
nameserver 192.168.161.2
nameserver 8.8.8.8 保存
service network restart -- 重启网络服务
reboot(建新文件后重启一次)
---------------------------------------------------------------------------------
4. 'ctrl + alt + F4 -- 进入命令界面
5. pwd -- 当前所在位置(路径)
6. ls /[home|路径] -- 显示文件信息
7. ls -l / -- -l(选项)每个文件夹的详细信息
d* 表示文件夹
-* 表示文件
8. ls -a /home/yangxing
9. ls ./ -- 当前目录
ls ../ -- 上一级目录
10. mkdir [文件夹名] -- 创建文件夹
11. cd [文件夹名] -- 进入文件夹
12. touch [文件名.后缀] -- 创建空文件
13. vi/vim [文件名.后缀] -- 修改文件内容
i -- 进入编辑状态
dd -- 删除选中行内容
’ESC -- 退出编辑状态
'shift + : + [wq] -- 保存
wq -- 退出(w保存,q退出)
q! -- 强制退出
14. cat [文件名.后缀] -- 查看文件内容
15. mv [旧文件名.后缀] [新文件名.后缀] -- 修改文件名
16. mv ./[文件名.后缀] ./[文件夹名] -- 移动当前文件到当前文件夹下
17. rm [文件名.后缀] -- 删除文件
rm -rf [文件夹名] -- 删除文件夹及其内部文件
18. rmdir [文件夹名] -- 删除文件夹
19. useradd [新用户名] -- 新增用户名
20. su - root -- 进入管理员账号
su [用户账户名] -- 进入普通用户
cat /etc/passwd -- 查看用户列表文件
cat /etc/group -- 查看用户组列表文件
21. groupadd [用户组名] -- 新建用户组
22. usermod -g [用户组名] [用户名] -- 修改用户到用户组中
23. su tt
cd ~ -- 进入登陆用户的根目录
24. cp ./[文件名.后缀] ./[文件夹名] -- 复制当前文件到当前文件夹下
25. ls -a -- 查看所有(包括隐藏)文件
26. cd .. -- 进入上一级
27. ifconfig -- 查看本机器IP地址
28. ping [IP地址] -- 连接[IP地址]机器
'ctrl + z -- 退出连接状态
29. scp ./[文件名.后缀] root@[IP地址]:/home/[用户名]
-- 移动当前文件夹下文件到【IP地址】机器下【用户名】目录下
30. scp root@[IP地址]:/home/[用户名]/[文件名.后缀] ./
-- 移动【IP地址】机器下【用户名】目录下文件到当前文件夹下
31. linux与windows之间文件共享
(1)在windows下面新建文件夹,然后点属性,然后点共享
(2)在虚拟机上面点击"虚拟机 -> 设置 -> 选项 -> 共享文件夹 -> 总是启用 -> 添加,选择刚才windows共享的文件夹
(3),在linux下面查看windows下的共享文件夹: cd /mnt/hgfs/windows共享文件夹
----------安装jdk,tomcat,mysql----------------
32. cp -ir /mnt/hgfs/setup ./ -- 将共享文件setup文件夹copy到当前文件下
33. tar -zxvf [jdk-8u152-linux-x64.tar.gv|文件名] -- 解压jdk...文件
34. /etc/profile (所有用户都可访问)
cd ~
ls -a
.bash_profile (最后访问,只能当前用户访问)
35. vi /etc/profile --- 全局环境变量(/root/.bash_profile -- 用户环境变量,先加载全局再加载用户)
(最后一行)
export JAVA_HOME=/usr/local/jdk1.8.0_152 -- 配置jdk环境变量
export JRE_HOME=${JAVA_HOME}/jre -- 配置jre环境变量
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${PAHT} -- 配置PATH环境变量 ([路径]:[路径]--[路径]加[路径])
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib
36. source /etc/profile -- 让修改的文件生效
37. ------------检查环境变亮是否配置正确
javac 编译命令
java 运行命令
java -version -- 查看版本
38. cd /usr/local/tomcat7/bin
./startup.sh -- linux下启动tomcat
39. netstat -- 显示所有端口
grep -ir "start" ./ --- 在当前路径下查找“start”
find ./ -name "tomcat.sh" -- 在当前路径下查找“tomcat.sh”文件(显示路径)
netstat -ntlp | grep 8080 -- 检查8080端口是否启动
#!/bin/bash
netstat -ntlp | grep 8080
result=$? -- 0开启,1未开启
40. service iptables stop -- 关闭防火墙
service iptables [start|stop|reload|restart|condrestart|status|panic|save]
41.----------安装数据库
复制 解压
mysql下 .so文件 (动态链接库)
mkdir data (mysql数据存放的地方)
groupadd mysql
-- 打开数据库
cd /usr/local/mysql/bin
--- // service mysqld start
../mysql -uroot -p
Enter password: 输入密码
-- 查看端口是否启动
cd /usr/local/mysql/bin
netstat -ntlp
42. useradd -r -g mysql mysql -s /sbin/nologin
-- 创建用户 加入用户组 用户组 用户 设置为不可用
43. chown -R mysql.mysql /usr/local/[mysql] -- 使用户具有操作数据库权限
-- 用户组.用户 mysql解压包名
44. ./bin/mysql_install_db --user=mysql --basedir=/usr/local/[mysql] --datadir=/usr/local/[mysql]/data
-- 执行安装数据库命令 用mysql用户操作 基础路径 数据存放路径
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ -- datadir=/usr/local/mysql/data/
-------初始化数据(切换到当前目录/usr/local/mysql)
45. cp -a ./support-files/my-default.cnf /etc/my.cnf -- 复制配置文件,并改名为my.cnf
46. cp -a ./support-files/mysql.server /etc/init.d/mysqld -- 复制mysql系统服务脚本
47. service mysqld start -- 启动mysql服务
48. cat /root/.mysql_secret -- 查看数据库初始密码
49. ---------修改数据库密码
cd /usr/local/mysql
./binmysql -uroot -p
输入密码
Set PASSWORD = PASSWORD('123456'); --设置密码
flush privileges; -- 刷新
quit -- 退出
50. show databases; -- 显示所有数据库
use mysql; -- 使用mysql数据库
show tables; -- 显示mysql数据库里所有的表
desc user; -- 表字段
51. -------- 使数据可以被远程访问
update user set host = '%' where user='root'; -- mysql内更改user表host字段
--------windows访问linux数据库
cmd
cd C:\Program Files(x86)\MySQL\MySQL Server 5.0\bin (mysql安装路径下的bin文件)
mysql -h192.168.161.132 -P3306 -uroot -p
(要连接的IP地址) (mysql端口) (用户登录为管理员)
输入密码
--------------
52. #!/bin/bash -- 解析器(开头第一行)
‘Esc 'Shift + : set number --- 显示行号
53. chmod + x a1.sh --修改a1.sh 文件的权限
[x|r|w](可以用数字代替[4|1|2])
[执行|只读|写入]
chmod 777 a1.sh -- 给a1.sh加上所有权限
54. ----运行
1) ./a1.sh
2) sh a1.sh
3) /bin/bash a1.sh (文件头没有写解析器)
55. -------在a2.sh文件里创建文件等操作
#!/bin/bash
mkdir /home/yangxing/test2/aa
cd /home/yangxing/test2/aa
touch a.txt
echo "hello world!" > a.txt
echo "abc" >> a.txt ---在文件下追加内容(先备份)
56. whoami -- 获取当前用户名
vi t3.sh
echo `whoami` > a.txt
57. ----------变量的赋值和读取
#!/bin/bash
name="xiao" --- 字符串
aa="abcdefghijklmnopqrstuvwxyz"
sex='f' --- 字符
array_name=(1 3 5 7 15 98 100) --- 数组
echo $name
echo ${name}
echo ${name}hello ----(xiaohello)
echo "hello ${name}" --- (hello xiao)
echo 'hello ${name}' --- (hello ${name})
echo ${#name[*]} -- 获取name字符串的字节长度
echo ${name:3:2} -- 截取name字符串的子字符串,从3位开始(0位开始),取两位
echo ${array_name[0]} -- 获取数组array_name中的第0位元素
echo `expr index "${aa}" c` -- 字符c在变量aa中的位置(3)
echo `expr index "${aa}" "${sex}"` --(6)
#注释 ----获取所有值的两种方法----
echo ${array_name[@]}
echo ${array_name[*]}
-----
echo ${#array_name[*]} -- 数组长度
58. ----------------变量运算操作
#!/bin/bash
x=7 --- 赋值号前后没有空格
y=5
z=`expr ${x} + ${y}` --- 运算符前后必须有空格,
z=`expr ${x} \* ${y}` -- 乘法运算符*需要转译
echo `${z}
echo `expr ${x} + ${y}`
echo x+y=`expr ${x} + ${y}` ---- (x+y=13)
let a=${x}+${y} --- 加号左右不加空格
echo $a
---------数字比较 if----------------
if [ ${x} -eq ${y} ] -- eq相等,gt大于,ne不想等,lt小于,le小于等于,ge大于等于
then
echo "equals"
elif [[ ${x} > ${y} ]] -- 中括号前后加空格(字符串比较)
then
echo "gt"
else
echo "not equals"
fi --- 结束判断--
59. ------逻辑运算符
!非; -o, || 或; -a, && 与
60. ------字符串比较
if [ ${a} = ${b} ] 字符串是否相等
if [ -z ${a} ] 长度是否为0
if [ -n ${a} ] 长度是否不为0
if [ ${a} ] 是否为空
61. -------文件
file="/home/yangxing/test3/aa"
if [ -d ${file} ] -- file路径是否是文件夹
if [ -f ${file} ] -- 是否是文件
if [ -r ${file} ] -- 是否可读
if [ -w ${file} ] -- 是否可写
if [ -x ${file} ] -- 是否可读执行
62. --------for 循环
for i in ${array_name[*]} ---- //for var in 1 2 3 4 5 6 7 8 9
do
echo ${i}
done
------------1到100
for i in `seq 1 100`
for i in {1..100}
for ((i=0;i<100;i++))
----------------case语句
a=""
case $a in
"aa")
echo "aa"
;;
"bb")
echo "bb"
;;
"*"
echo "0"
;;
esac
63. -------键盘
read -p "please enter name: " name --- -p等待键盘输入
echo ${name}
64. ages=(${ages[*]} 18) --- 在数组里添加新数据
65. ----------从文件外部传入
a10.sh
#!/bin/bash
echo $0 --- 第一个参数
echo $1
echo $2
-- 文件外,键盘输入
sh a10.sh 1 200 300
--显示
a10.sh
1
200
66. -------while
while (( "${i} < 100 " ))
do
let "sum+=i"
done
67. wget http://www.baidu.com/ -- 访问网页 (wget 下载)
more index.html -- 从首页开始访问
68. --------------安装redis
/usr/local 下解压(安装路径,任意都行,注意环境变量的设置添加)
cd /usr/local/redis-3.0.7
make -- 编译
make install -- 安装
${PATH} -- 查看/usr/local/bin是否已配置
redis-server -v -- 查看版本
----------------配置-----------------
-----配置文件
cd /etc
mkdir redis
cd /var
mkdir redis
cd /var/redis
mkdir data log run
-----配置参数
cp /usr/local/redis-3.0.7/redis.conf /etc/redis/
cd /etc/redis
vi redis.conf
找到 pidfile /var/run/redis.pid 改为 pidfile /var/redis/run/redis.pid
dir ./ 改为 dir /var/redis/data (更改数据默认存放路径)
logfile "" 改为 logfile "/var/redis/log/redis.log" (日志文件路径)
------ 运行
cd /usr/local/bin
redis-server /etc/redis/redis.conf
后台(用另一个软件)执行 netstat -ntlp 命令 ,查看6379端口是否打开
(---redis-server /etc/redis/redis.conf & 后台运行---)
‘ctrl + z 退出
--------------------------------
redis-cli
set user tt
get user
----------------------------------------------------------------------
69.----------------函数
#!/bin/bash
a=$1 ---- 脚本外的参数
function demo(){ -- 函数定义,function可不写
read a
read b
echo `expr $a + $b`
}
demo -- 函数调用
function add(){
echo $1 -- 第一个参数
echo $2
echo $# --- 参数个数
c=`expr $1 + $2`
return $c
}
add 10 20 -- 传参
ret=$? --- 获取上一个返回值
echo ret
ret1=`demo` -- 运行demo函数,获取所有echo值,用空格分开
echo ret1
----------------------------------------------------
[tt@localhost home]$
[当前用户@当前机器 当前文件夹]普通用户
[root@localhost home]#
。。。。。超级管理员
--------------------------------------------------------
linux文件目录:
bin 二进制可执行文件
etc 系统配置文件
usr 共享系统资源
lib 库文件
tmp 临时文件
home
dev 设备文件
--------------------------------------------------------
脚本编程
windows: dos setclasspath.bat(文件存放)
inux: shell setclasspath.sh
-------------------------
./a5.sh -- 当前路径下
a5.sh -- PATH 环境变量下路径
--------------------
= 赋值
== 内容相等 !=
=== 内容相等,类型相等(绝对等于) !==
-------------------------------------------------------------
http://www.runoob.com/linux/linux-shell.html
获取第n个参数 --- ${!i}