Linux基础命令(一) 
  
 
 命令后都要有空格
 
1.who 谁在操作,返回用户名
 
2.pwd 当前路径
 
3.ll ( list all )当前路径包含的东西
 
4.ls( list )仅列出文件或文件夹的名称
 
5. 文件权限 1.d:directory 目录 2.w:writeable可写 3.r:readable 可读 4.x:excutable可执行
 
 文件名颜色的含义:蓝:目录 绿:可执行文件 黑:普通文本 红:压缩包
 
6.cd (acess directory) 访问目录
 
 cd . 表示当前目录
 
 cd..表示当前目录的上层目录
 
 cd / 根目录 或者用来表示当前目录的下一层目录
 
7.clear 清屏
 
8.mkdir (make directory)创建目录
 
9.touch 创建文件 或者直接用 vim 文件
 
10.rm (remove)删除文件
 
11.rm -rvf 删除目录 r :级联 v:可视化 f:强制
 
12.man : 解释命令 man cp 
 
13.q(quit)退出
 
14.cp(copy) 复制文件 cp 文件 目录
 
15.cp -rvf 复制目录 cp 目录 目录
 
16.mv (move)移动、剪切、重命名 mv 文件 目录(文件名)
 
17.chmod (change mod)改变模式 chmod +权限 文件/目录
 
18.tab 补齐文件名
 
19.rebot:重启
 
20.su 进入超级用户
 
 
 
 
Linux基础操作(二)
 
1.创建文件 vim 120.sh
 
2.文本编辑器下的三种模式 :1.一般模式 可查看内、删除、查找(只需要输入/后接查找内容)
 
 2.编辑模式 输入I进入编辑模式、可进行任何操作
 
 3.命令模式 ESC键 wq! 强制保存退出
 
3. ./120.sh执行当前文件
 
4.shell脚本命令属于解析型一条一条去执行
 
5.* 通配符
 
6.tar -xvf 压缩文件 解压文件 其中的x代表extract tar -cvf tar包名称 被打包目录文件 压包
 
7.cat 文件名:打开文件  
 后台进程 
  就可以直接在terminal中查看到文件内容
 
 
8.more 文件名 终端显示文件 支持分页显示  
 前台进程
 
9.vim 文件名 在文本编辑器中打开
 
10.查找 which bash 返回bash的路径 which命令只能查找环境变量中的东西,寻找内置命令
 
11.find / -name bash 在/目录下查找名字含有bash的位置 全局寻找,根据指定位置寻找
 
12.在一个shell脚本编程的开头 都会指定解析器
 
 #!/bin/bash 解析器
 
 
 
 
Linux与进程管理(一)
 
1.ps (process status)查看进程状态 ;ps (process snapshot)查看进程快照
 
2.PID (process identify)进程号
 
3.PPID(parent PID)父进程号
 
4.top 查看动态进程状态 类似于任务管理器 ctrl+c跳出前台进程
 
5.pr (process priority)进程优先级
 
6. > 定向符 top > 1.txt把top的信息写入到11.txt中
 
7.| 管道符 进程与进程之间通讯通过管道符或信号
 
8.grep(GM regular expression) GM组织提出的正则表达式
 
9.kill -9 3282 强制杀死进程  
 把正在运行的进程变成孤儿进程,杀掉其父进程,就可以成为孤儿
 
10.find /home -name test 在home目录下查找test的文件 也是前台进程
 
11.find / -name init & 把前台进程转化成后台进程
 
12.ps el | grep httpd 寻找包含httpd的进程
 
13.ifconfig 查找IP地址 (windows下)ipconfig msconfig
 
14.source 更新 source /etc/profile 更新配置文件
 
 
 
 
 
 
 
Linux与进程管理(二) 服务器
 
1.pgrep 服务器名称 查找服务器进程号 (把进程号过滤出来,显示服务器名称的进程号)
 
2.启动httpd service httpd start 
 
3.xkill 骷髅头???
 
4.nice 指定运行优先级,nice值越小,优先级越高,优先级取值 [-20,19] nice -n 数字 程序名
 
5.renice 改变一个正在运行进程的优先级 renice 数字 进程号 先运行再指定
 
 
 
 
Linux与shell脚本编程 (一)
 
1.vim `which startx` 反引号 内为表达式 其中会计算
 
2.#开头的是注释 但不包括多行注释
 
3.shell脚本变量 1.普通变量 2.环境变量 3.只读变量 用set查找系统中所有变量 用env查找所有环境变量
 
4.普通变量 赋值: a=200 取值:echo $a $ 取值符 bash一下之后 普通变量的值取不到而环境变量的值能够取到
 
5.环境变量 声明 export a=100
 
6.只读变量 声明 readonly a
 
写一个shell脚本之后,首先要chmod之后才能够执行
 
7.变量拼接要用花括号 :{skill}script 
 
8.输出 echo 'xxx'原样输出 echo "xxx" 字符串原样输出,该计算取值即计算取值 echo `xxx`计算表达式的值
 
9.运算符 1.$$取当前命令的PID,当前所在进程的进程号 
 
 2.!!再次执行上次命令 
 
 3.![]再次执行上次命令
 
 4.-eq 等于 -ne 不等于 
 
 -gt 大于 -lt 小于
 
 -ge 大于等于 -le小于等于
 
 5.-z 为空 -n不为空
 
10. [ ]表判断 括号内前后都要有空格 [ $a -eq $b ]
 
11.echo $ 查看上一次运行结果真假 0为真 1为假
 
12.必考: [ -d /home/zhujin ] && echo hello 判断是否为目录 是则输出
 
13.必考: [ -z "`pgrep httpd`"]判断httpd是否启动起来了
 
14.以树型结构查看当前进程树 pstree pstree | grep vim -A2 -B2查看vim的前两行两列
 
15.用户进程的优先级默认 nice:0 pri:80
 
16.变量永远保存 vim /etc/profile 写入配置文档 可被兄弟继承资源共享
 
 
 
 
Linux与shell脚本编程(二)
 
 
 
 
1.运算符 -a:与 -o:或
 
2.[ -USER = zhujin ] 用“ = ”判断两个值是否相等时前后要用括号,否则系统默认赋值
 
3.‘=’ ‘!=’用于字符串的表达 " -eq " " -ge " " ne "等用于纯数字判断
 
4.if 和 else 的条件格式
 
1)
 
#! /bin/bash 
 
if(){
 
...
 
}
 
else{
 
...
 
}
 
2)
 
if 条件
 
then
 
...
 
...
 
fi
 
 
 
 
3)
 
if 条件
 
then
 
...
 
else
 
...
 
fi
 
 
 
 
4)
 
if 条件1
 
then
 
...
 
elif 条件2 ,then 
 
...
 
fi
 
 
 
 
 
 
 
5. ./110.sh 执行当前目录下的110.sh脚本 
 
 bash 110.sh 执行110.sh (可以不设置解析器)
 
bash -vx 110.sh v可视 x操作过程 设置断点
 
6.$1 获取第一个参数 可用于传参
 
7.case $canshu in 
 
xxx)
 
...
 
;;
 
xxx)
 
...
 
;;
 
esac
 
 
 
 
8.计算
 
Z = `expr $x + $y`
 
Z = `expr $x \* $y` 转义字符\
 
Z = `expr $x / $y` 除号取整
 
9.((z = x+y))
 
 
 
 
Linux与shell脚本编程(三)
 
1.
 
for var in 1 2 3 4
 
do
 
echo $var
 
done
 
2.计时器
 
#!/bin/bash
 
for x in `seq 1 10`
 
do
 
echo -n "$x "
 
sleep 1s 每隔1s打印 可不用s 系统默认单位为s
 
done
 
3.判断当前apach服务器是否运行,若运行则停止,否则打印语句并退出shell 
 
#! /bin/bash
 
x=`pgrep apache`
 
if [ -z "$x"]
 
then 
 
echo "apache is not running "
 
else
 
for y in $x
 
do
 
kill -9 $y
 
done
 
fi
 
练几个Linux的编程题
 
 
 
 
Linux网络基础(一)
 
1. IPV4 :点分十进制 192.168.10.10 32位 可服务 2³² - 2台机器
 
IPV6:128位 的机器更多
 
IP : 网络号 + 主机号
 
2. ping 命令(域名或者地址) ping www.baidu.com 测试主机可不可达,服务器可用不可用
 
ping包默认大小为56个字节
 
ICMP (Internet Control Message Protocal )Internet控制报文协议
 
ping命令基于ICMP协议 telnet命令基于ICMP (ICMP包大小8字节)
 
TTL ( Time to live ) 存活周期 以防数据包不能到达主机无限漫游 ttl=128 单位:hop
 
time :信息往返时间
 
 
 
 
 
Linux网络基础(二)
 
1.telnet 命令 远程登陆 可测试应用前
 
2.ab 命令 测试web服务器性能 ab -c 100 -n 500 www.jxnu.edu.cn/模拟100个人在线 每个发起500个链接请求。
 
3.trace route 跟踪路径
 
4.route 获取Linux fedora 内核信息
 
 
5.httpd默认端口:80
 
 
 
 
Linux数据库基础(一)
 
1.查看数据库是否启动 
 
1)查看相关进程是否启动 ps -el | grep mysqld 
 
2)查看mysql端口3306 程序起起来,系统必定分配唯一端口 netstat -anp | grep 3306
 
3)查看mysql的进程号 pgrep mysqld
 
2.把mysql起起来
 
1.cd/home/mysql
 
2.bin/mysql_safe --user=mysql &
 
3.bin/mysql -u root -p (切换到mysql交互页面)默认无密码
 
3.sql语句 (结尾必有分号)
 
1.show databases; 展示数据库(按字母排序)
 
2.use test(库名)拿到这个数据库的环境,之后的操作都对此数据库进行
 
3.show tables; 查看当前数据库里的表
 
4.create database 新建库名;
 
5.drop database if exists 库名;
 
6.建表 create table users(username varchar(8),userID varchar(8));
 
7.插入数据 insert into users values('jxnu','001')
 
8.查看表结构 desc users
 
9. select * from users where userID = '002' 查询
 
模糊查询 select * from users where username LIKE '%0%'
 
10.更新数据 update users set username='zhujin' where userID='002'
 
11.删除数据 delete from users where userID='003'
 
12.删除表、数据库 drop table 表明/database 数据库名
 
13.查询当前数据库的版本 show variable like 'version'
 
14.Mysql表操作
 
1.修改数据库表明 alter table 旧表名 rename 新表名;
 
2.在表中增加字段
 
1.alter table users 
 
 add userAge varchar(8) first;
 
2.alter table users
 
 add userQQ varchar(8) after username;
 
3.alter table users
 
 add userAddress varchar(8);默认加到最后
 
3.删除字段 alter table users 
 
drop userAddress;
 
4.清空表中记录 (表名还在 但为空集)
 
delete from 表名;
 
15.Mysql数据库设置密码 
 
1.mysql(交互界面写sql语句) set password for not = password("新密码")
 
密码设置成功后 重新进入 bin/mysql -u root -p新密码
 
2.在bash底下改 进入/home/mysql/bin 再lmysqladmin -u 用户名 -p 旧密码
 
16.退出Mysql:exit
 
17.停止mysql数据库:bin/mysqladmin -u 用户名 -p密码 shutdown
 
 
 
 
Linux数据库基础(二)
 
1.备份 (先把Mysql服务启动 进入/home/mysql/bin)
 
mysqldump -u root -p密码 数据库名 > data.bak(默认备份到当前目录下)
 
2.用vim data.bak 可以查看备份内容
 
3.备份的是Mysql语句,不是数据
 
4.恢复 mysql -u root -p密码 数据库名 < data.bak