hi 感恩节——Linux基础教程之mysql和php

感恩节。虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面。愿大家安好!

学习Linux的前言

选择了Linux发行版本,你就会想如何开始学习Linux了。

1.当然是安装Linux了,请上网自行google或者百度,下载redhat linux 5的安装光盘,然后再安装vmware,自行安装

2.多动手,多敲命令。只看书,不实践,一切都是浮云。默认安装redhat 5,启动redhat 5是带有图形界面的,但是图形界面最好少用,对学习Linux不利,一定要尽量用字符界面,慢慢习惯。而工作中,使用Linux,使用图形界面的概率几乎是0。所以你去学习图形界面的技术价值,几乎为0,性价比不高。

如何学习Linux

1.学习Linux的第一件事情是学习Linux基础,这方面我推荐鸟哥的私房菜的Linux 基础文件,里面讲解了Linux的文件,磁盘,网络,进程等,看懂了这本书,并且一个个命令去实践,你就开始入门Linux了。

2.学习Linux的第二事情就是用Linux。前面说过,Linux的最大用处是服务器领域,所以你要学的第二步是学会架设服务器,这方面我推荐鸟哥的私房菜Linux 架站文件,这本书介绍了很多服务器的假设,没有必要把全部服务器的架设步骤都看完。个人觉得可以先看完架设服务器的基础,然后再看看如何搭建web服务器,ftp服务器,telnet服务器,ssh服务器。学会这几个服务器的搭建,管理,再根据个人兴趣和需要选择其他服务器的搭建。

3.进阶——编程。到了这里,你只是会用Linux而已,或许学会少许shell编程,能够学会简单的shell,编写脚本。但是你要进一步熟悉Linux,就要学会Linux编程。例如,Linux的管道是怎么做,Linux的deamon进程是如何实现的,为什么nohub可以让一个进程可以以daemon形式运行,即使关闭了shell也不会让这个进程也被关闭。这些,你学会了Linux环境编程,你就豁然开朗了。这里我推荐 《UNIX环境高级编程》,此书是Linux/Unix编程的圣经,堪称惊世之作。

4.到了这里,你就可以对Linux/Unix有所了解,已经有一定的基础了,接下来你就要根据你的兴趣去选择你感兴趣的方向去学习,或许要根据你的工作方向去学习(很多时候工作不是自己的兴趣),师父领进门,修行在个人,以上的学习步骤是我能想到的最简化的步骤,学习的东西越多,只会让初学者更迷茫。

下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了。

一、Linux基础(二)

-----Linux常用命令(二)-----

3、文件搜索命令

3.1 文件搜索命令locate

--优点:

搜索速度快(在学习中,要把眼光放远、放大一点,设想数据量很大的情况或是规模很大的问题的情况)

locate 文件名

--工作原理:

在后台数据库按文件名搜索

所以,新创建的文件往往搜索不到(缺点)

解决办法:等(1天);updatedb命令更新数据库

--缺点:

只能按照文件名搜索(功能弱)——理解就是,牺牲功能提升速度

--搜索/更新配置:

vi /etc/updatedb.conf

得到

PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"

第一行就是说,是否执行下列的更新规则

后面是不搜索这些文件夹/文件

所以有时候有些目录中的内容搜索不到的——比如常用的/tmp

3.2 命令搜索命令whereis和which

3.2.1 whereis

--基本

[root@andy ~]# whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

能搜索到命令的目录以及其帮助文档的目录(所以命令所在位置where is ,同时要牢记,linux中一切皆文件)

--选项

-b 只查找可执行文件

-m 只查找帮助文件

[root@andy ~]# whereis -b mkdir
mkdir: /bin/mkdir

3.2.2 which

--基本

[root@andy ~]# which ls
alias ls='ls --color=auto'
/bin/ls

还会查到别名(如果有的话)。

这里ls会自动显示不同的颜色

[root@andy ~]# which pwd
/bin/pwd

没有别名就还是这样,但没有帮助文档

3.2.3 其他说明

--找不到的命令

[root@andy ~]# which cd
/usr/bin/which: no cd in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@andy ~]# where cd
-bash: where: command not found

有些类型是找不到的,原因是shell自带的(以后学)

--path环境变量

环境设定的基本路径,比如上述(/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

它使我们可以不用绝对路径来输入命令——windows也是这样的

还是那句话,都是文件

path环境变量的定义:系统搜索命令的路径

自己写的程序,要么命令都写绝对路径,要么放在这些path路径中

3.3 find命令

最强大的搜索命令——这里只学习基本的、常用的用法

--基本

find [搜索范围] [搜索条件] 文件名

[root@andy ~]# find / -name install.log
/root/install.log

会发现速度很慢——范围太大

而且真实情况会更加复杂,有可能速度更慢,压力更大

——尽量缩小范围!

而且,如果打算进行模糊匹配,比如install.log.syslog。这个命令是查不到的,要进行通配符匹配,通配符是完全匹配

--通配符

* 匹配任意内容

[root@andy ~]# find /root -name "install.log*"
/root/install.log.syslog
/root/install.log

? 匹配任意一个字符

[] 匹配中括号中的任意一个字符

[root@andy ~]# find /root -name "*[asdf]?"
/root/anaconda-ks.cfg
/root/.viminfo
/root/japan
/root/japan/anaconda-ks.cfg

要注意,find是完全匹配,要小心

--搜索条件

-

find /root -name  install.log  按照文件名搜索

find /root -inname install.log   不区分大小写

-

find /root -user install.log  按照所有者搜索(不常用)

find /root -nouser 搜索所有没有所有者的文件(常用)——这种文件很多是垃圾文件,但是有两种情况除外——内核创建的(sys中);外来文件(比如U盘)

-

find /var/log -mtime +10  查找10天前修改的文件——atime 文件访问时间,mtime 修改文件时间,ctime 改变文件属性;+10 10天前修改的文件,-10 10天内,10 10天当天(注意没有10天后,哈哈)——常用于日志的删除/筛选中的(默认按天)

-

find . -size 25k 在当前目录下搜索25k大小的文件——+25或-25也可以

[root@andy ~]# find . -size 25k
[root@andy ~]# ll
总用量 48
-rw-------. 2 root root 1273 11月 26 05:32 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 11月 26 06:05 cangls
-rw-r--r--. 1 root root 26420 11月 25 03:55 install.log
-rw-r--r--. 1 root root 7572 11月 25 03:52 install.log.syslog
drwxr-xr-x. 3 root root 4096 11月 26 05:43 japan
[root@andy ~]# find . -size +25k
./install.log
[root@andy ~]# find . -size -25k
.
./.tcshrc
./anaconda-ks.cfg
./cangls
./install.log.syslog
./.bash_profile
./.bash_logout
./.bash_history
./.bashrc
./.viminfo
./.cshrc
./japan
./japan/anaconda-ks.cfg
./japan/cangls
[root@andy ~]# find . -size -25m
find: 无效的 -size 类型“m”
[root@andy ~]# find . -size -25M
.
./.tcshrc
./anaconda-ks.cfg
./cangls
./install.log.syslog
./.bash_profile
./.bash_logout
./.bash_history
./install.log
./.bashrc
./.viminfo
./.cshrc
./japan
./japan/anaconda-ks.cfg
./japan/cangls
[root@andy ~]#

注意Mb是大写的M,kb是小写的k

-

find . -inum 213123 在当前目录按照i节点搜索213123的文件——常常搭配ls -i使用

-复杂操作

find /etc -size +20k -a -size -50k 这里的-a是与,-o是或
[root@andy ~]# find /etc -size +20k -a -size -50k
/etc/selinux/targeted/modules/active/modules/unprivuser.pp
/etc/selinux/targeted/modules/active/modules/xguest.pp
/etc/selinux/targeted/modules/active/modules/virt.pp
/etc/selinux/targeted/modules/active/modules/postfix.pp
/etc/selinux/targeted/modules/active/modules/unconfineduser.pp
/etc/selinux/targeted/modules/active/modules/nagios.pp
/etc/selinux/targeted/modules/active/modules/cups.pp
/etc/selinux/targeted/modules/active/modules/rhcs.pp
/etc/selinux/targeted/modules/active/modules/apache.pp
/etc/selinux/targeted/modules/active/modules/staff.pp
/etc/selinux/targeted/modules/active/modules/samba.pp
/etc/mime.types
/etc/sysconfig/network-scripts/network-functions-ipv6
/etc/postfix/main.cf
/etc/ld.so.cache
/etc/libreport/events/report_RHTSupportAttach.xml
/etc/libreport/events/report_RHTSupport.xml
/etc/makedev.d/01linux-2.6.x
/etc/sound/events/gnome-2.soundlist
-
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
[root@andy ~]# find /etc -size +20k -a -size -50k -exec ls -lh {} \;
-rw-------. 1 root root 37K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/unprivuser.pp
-rw-------. 1 root root 26K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/xguest.pp
-rw-------. 1 root root 24K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/virt.pp
-rw-------. 1 root root 31K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/postfix.pp
-rw-------. 1 root root 29K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/unconfineduser.pp
-rw-------. 1 root root 21K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/nagios.pp
-rw-------. 1 root root 21K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/cups.pp
-rw-------. 1 root root 26K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/rhcs.pp
-rw-------. 1 root root 27K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/apache.pp
-rw-------. 1 root root 42K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/staff.pp
-rw-------. 1 root root 24K 11月 25 03:46 /etc/selinux/targeted/modules/active/modules/samba.pp
-rw-r--r--. 1 root root 43K 9月 23 2011 /etc/mime.types
-rw-r--r--. 1 root root 30K 7月 22 2014 /etc/sysconfig/network-scripts/network-functions-ipv6
-rw-r--r--. 1 root root 27K 2月 20 2014 /etc/postfix/main.cf
-rw-r--r--. 1 root root 40K 11月 25 03:52 /etc/ld.so.cache
-rw-r--r--. 1 root root 23K 10月 16 2014 /etc/libreport/events/report_RHTSupportAttach.xml
-rw-r--r--. 1 root root 22K 10月 16 2014 /etc/libreport/events/report_RHTSupport.xml
-rw-r--r--. 1 root root 28K 11月 11 2010 /etc/makedev.d/01linux-2.6.x
-rw-r--r--. 1 root root 27K 11月 12 2010 /etc/sound/events/gnome-2.soundlist

这里是用-exec加入第二条命令,执行前面的结果,而且必须加{} /;

------总结

就是find很强大,功能很多,灵活多变;同时带来了,使用复杂,速度不好定

3.4 grep命令

--基本

搜索字符串:grep [选项] 字符串 文件名

[root@andy ~]# grep "size" anaconda-ks.cfg
#part /boot --fstype=ext4 --size=200
#part swap --size=4000
#part /home --fstype=ext4 --size=2000
#part / --fstype=ext4 --grow --size=200

注意,搜索到的不是符合字符串的文件,而是文件中相应的字符串——与find区分

--选项

-v 取反,即不包含字符串的

-i 不区分大小写

--与find

find:找文件+完全匹配+使用通配符匹配

grep:找字符串+包含匹配+使用正则表达式匹配

-------------------------------------------------------------------

二、PHP与MySQL

-----文章发布系统实践(一)-----

理解php操作mysql的方法,熟悉掌握php的mysql函数

1、需求分析

1.1 后台管理系统

管理-列表

发布,修改,删除-程序

1.2 前台展示系统

文章列表,文章内容页

1.3 数据库设计

一个表即可,用于存放文章

(我不想画表格,直接写数据库命令好了,但愿以后的我看得懂)

CERATE TABLE article(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
title CHAR(100) NOT NULL,
author CHAR(50) NOT NULL,
description VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
dateline INT(11) NOT NULL DEFAULT 0
);

1.4 项目规划

项目需要什么文件

2、后台管理系统

2.1 创建配置文件和初始化文件

(0)

相关推荐

  • Linux基础知识99问(一)

    1.什么是Linux? Linux是一个诞生于网络.成长于网络且成熟于网络的奇特的操作系统.1991年,芬兰大学生Linus Torvalds萌发了开发一个自由的UNIX操作系统的想法,当年,Linux就诞生了, 为了不让这个羽翼未丰的操作系统夭折,Linus将自已的作品Linux通过Internet发布.从此一大批知名的.不知名的电脑黑客.编程人员加入到开发过程中来,Linux逐渐成长起来. Linux一开始是要求所有的源码必须公开,并且任何人均不得从Linux交易中获利.然而这种纯粹的自由软

  • linux安装全中文管理面板教程(php+mysql)

    本教程适用电信通和息壤的云主机 1.查看数据盘 在没有分区和格式化数据盘之前,使用 "df –h"命令,是无法看到数据盘的,可以使用"fdisk -l"命令查看 将未使用的磁盘进行格式化,操作数据盘符前,请自行确认磁盘是否有使用过,如有重要数据请谨慎操作,以免导致数据丢失,带来不必要的麻烦.具体格式化命令为: mkfs.ext3 /dev/vdb ,即为正在格式化中.这个时候请耐心等待格式化完毕(时间较久). 将格式化完的磁盘进行挂载,挂载前,先在服务器上创建一个需

  • linux基础之Shell Script入门介绍

    linux基础之Shell Script 1 Shell Scipt使用指令和基本程序设计结构写成的程序,可以完成复杂的处理流程 1.1 程序书写 复制代码 代码如下: #!/bin/bash# Program:#       This program shows "Hello Wrold" in your screen.# History:# 2013/2/3 on_1y First releasePATH=$PATHexport PATHecho -e "Hello Wo

  • Linux基础知识99问(五)

    五. 做好Linux的管理员:21问 70.如何检查Linux硬盘使用情况? 在Linux环境下,你可以使用df命令来查看硬盘的使用情况.下面就是一个df -T -h(-T参数:显示文件系统类型,-h参数用可读性较高的方式来显示信息)命令的输入实例: Filesystem Type Size Used Avail Use% Mountedon /dev/hda1 ext2 7.5G 4.7G 2.5G 65% / /dev/hda2 ext2 653M 6.6M 613M 1% /root /d

  • Linux基础知识99问(四)

    四. Linux下的"神兵利器":15问 55.KDE是什么,有什么特点? KDE项目在1996年10月发起的,其目的是在X-Window上建立一个完整易用的桌面环境.KDE现在除了拥有KFM(类似于IE4.0).KPresenter(类似PowerPoint).KIllustrator(类似CorelDraw或 Illustrator)等重量级软件,还有体贴用户的GUI配置软件可以帮助用户配置Unix/Linux,使其深受使用者欢迎. 但由于KDE是基于由TrollTech公司开发的

  • linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache  在如下页面下载apache的for Linux 的源码包   http://www.apache.org/dist/httpd/;  存至/home/xx目录,xx是自建文件夹,我建了一个wj的文件夹. 命令列表:   cd /home/wj  tar -zxvf httpd-2.0.54.tar.gz mv httpd-2.0.54 apache  cd apache  ./configure --prefix=/usr/local/apache2 --enable-mod

  • linux php mysql数据库备份实现代码

    但是出现了问题: 第一.运行php的是apche的用户,比如是nobody,那么它一般是没有权限访问/usr/local/mysql/data目录的 第二.就算能够访问,那么你如何能够把/usr/local/mysql/data目录下的文件拷贝出来呢?因为mysql在运行的时候是不运行访问的,那么nobody用户有权限停止mysql的服务,不可能! 越想越不对劲,没有办法,看能不能从php操作数据库入手,于是就去看了下phpMyadmin和Discuz!的代码,呵呵,于是偷抄了Discuz!的代

  • Linux下PHP+MYSQL+APACHE配置过程 (摘)第1/2页

    需要软件如下:  apache: http://www.apache.org  mysql: http://www.mysql.com  php: http://www.php.net/downloads.php  gd: http://www.boutell.com/gd/#buildgd  ZendOptimizer http://www.zend.org/products/zend_optimizer  Gettext http://ftp.gnu.org/pub/gnu/gettext/

  • linux下apache、mysql、php安装配置详细笔记

    软件准备: mysql-5.0.56.tar.gzhttp://dev.mysql.com/get/Downloads/ httpd-2.2.12.tar.gzhttp://labs.xiaonei.com/apache-mirror/httpd/ php-5.3.0.tar.gzhttp://cn.php.net/get/php-5.3.0.tar.gz/from/this/mirror 一.安装MYSQL 复制代码 代码如下: groupadd mysql                  

  • Linux基础知识99问(二)

    二. Linux大观:7问 13.RedHat Linux 6.5和Linux 2.4哪个版本高? 最近许多报刊.网站都介绍了Linux的最新版 2.4怎样,怎样?而许多Linux初学者正在使用的是RedHat Linux 6.5版.哪个版本更高? 其实,这两个版本号是不同的!RedHat Linux是将Linux内核与Linux的一些常用配套软件.应用软件捆绑在一起的发行版,6.5是这个发行版的版本号.而Linux 2.4则是指Linux内核的版本. Linux核心是由linus维护的,它的版

随机推荐