Linux学习笔记

reboot  重启
shutdown -h now 立刻关机

Linux的文件目录
Linux的文件系统是采用树状目录结构,在此结构上的
最上层的目录为"/"

目录;
root  存放root用户的相关文件
home  存放普通用户的相关文件
bin   存放普通命令,常用命令
sbin  存放需要一定权限才可以使用的命令
mnt   挂在光驱和软驱的目录
boot  存放引导相关的文件
etc   存放配置相关的文件
var   存放经常变化的文件
/dev  系统中的所有设备文件
/tmp  系统中的临时目录
/usr  系统应用程序和相关文件
/var  系统中经常变化的文件如日志文件和用户邮件

pwd 显示当前在哪个目录下

Linux用户管理
useradd 用户名     添加用户
useradd -g group 用户名 指定创建用户的所在组
usermod -g group 用户名 修改用户所在组
passwd 用户名      设置用户密码
userdel 用户名  删除用户 
userdel -r 用户名  删除用户以及用户主目录

init [1.2.3.4.5]
Linux运行级别
0:关机
1,单用户
2,多用户状态 没有网络服务
3,多用户状态 有网络服务
4,系统为使用保留给用户
5,图形界面
6,系统重启
常用的为3,和5 要修改默认的运行级别可以修改文件
/etc/inittab的id:5:initdefault这一行的数字


ls -a 显示隐藏文件
mkdir 建立目录
rmdir 删除空目录
touch 建立空文件
cp 拷贝
cp -r 目录 目录 拷贝目录
more 分页查看文件
ls | more
在linux和unix系统中|就是管道命令 ?
什么是管道命令:把上一个命令的结果交给|的后面的命令处理

ln -s /root/hello.java toabc3 建立hello.java的链接(快捷方式)



grep “kenan” hello.java 在文件中搜索执行制定字符串
grep -n "kenan" hello.java

find 搜索文件和目录
find / -name hello.java 从根目录开始查找有没有hello.java的文件
find / -amin -10 10分钟存取的文件或目录
find / -atime -10 10小时存取的文件或目录
find / -cmin -10  10分钟修改的文件或目录
find / -ctime +10 10小时前更改过的目录或文件
find / -size +10k 查看大于10k的问就爱你

groupadd 组名  -- 添加用户组

权限:  r可读   4
        w可写   2
        x可执行 1
       
vmare下Linux上jdk的安装步骤:
jdk的安装步骤:
1,下载jdk在linux上的版本.bin版本
2,将上面下载的文件制作成iso文件挂载到linux操作系统上
    mount /dev/cdrom /mnt/cdrom  (取消挂载  umount /mnt/cdrom)
3,把文件拷贝到/home下
4,cd /home
5,安装 ./???.bin
6.卸载旧版的jdk
    用root用户登陆到系统,打开一个终端输进
    # rpm -qa|grep gcj
    显示内容其中包含下面两行信息
    # java-1.4.2-gcj-compat-1.4.2.0-40jpp.112
    # libgcj-4.1.1-52.el5

    卸载
    # rpm -e java-1.4.2-gcj-compat-1.4.2.0-40jpp.112
    # rpm -e libgcj-4.1.1-52.el5

    假如有依靠关系,不让卸载,就用 rpm -e –-nodeps 卸载就行了
    # rpm -e –-nodeps ?java-1.4.2-gcj-compat-1.4.2.0-40jpp.112
    # rpm -e –noddeps libgcj-4.1.1-52.el
    ?最后再执行rpm -qa|grep gcj
    发现没东西,代表卸载成功
7,修改/etc/profile(配置文件)配置Javahome,path和classpath

安装eclipse
1,把安装文件拷贝到home
    cp sdf /home
2,tar -zxvf xxx.tar.gz
3,启动eclipse,首先进入图形界面 startx
4,仅用selinux
    解决方法:关闭selinux即可解决。
    # vi /etc/sysconfig/selinux
    修改:SELINUX=enforcing 为:SELINUX=disable 禁用SeLinux, 再重启运行就可以了
5, ./eclipse & 后台运行eclipse

tomcat的安装和eclipse一样解压即可

Linux分区:
1,硬盘的分区分为:基本分区和扩展分区
2,基本分区和扩展分区之和小于等于4
3,基本分区可以马上被使用,不能再分区
4,扩展分区不能被使用,不需要进行再分区
5,由扩展分区再分下去就是逻辑分区
6,逻辑分区没有数量上的限制
7,在linux中一个分区就是一个目录

对于IDE硬盘,驱动器标示符为“hdx~”
1,“hd”表示分区所在设备的类型,这里指IDE硬盘
2,“x”为盘号(a 为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘)
3,“~”代表分区,1-4代表主分区和扩展分区,从5开始就是逻辑分区
    hda3 表示第一个IDE硬盘上的第三个主分区或扩展分区
4,对于SCSI硬盘则标识为sd

磁盘命令
fdisk -l 查看linux系统分区具体情况
df -l    查看磁盘使用情况(df -h  按照GB单位显示)
df 目录  查看目录在哪个分区下

Linux安装的时候分区原则:
    1,/boot 分区 100MB
    2,swap 交换分区  一般是物理内存的两倍,不要大于256MB
    3,/ 根分区 尽可能大
    软件包选择:
    1,桌面环境 X窗口系统 GNOME桌面环境(服务器不选择)
    2,编辑器
    3,办公
    4,图形

   
shell学习
我们在linux的终端输入的命令都是shell命令
有shell解析,然后由Linux内核执行,相当于
windows下的批处理程序

shell种类(常用):
1,Bourne  /bin/sh
2,C       /bin/csh
3,K       /bin/ksh
显示所有的shell
ls -l /bin/*sh

大陆使用多的是sh 也就是bash
1,查看当前系统使用的是哪种shell
    env   --:查看系统的环境变量 SHELL=/bin/bash
2,更改shell
    chsh -s 新的shell
3,history 查看历史命令
    history 5 显示最近使用的5个命令
    !5 执行编号为5的历史命令
    !ls  执行最后一次以 ls  开头的命令
   

ip/tcp
追踪路由 tracert ip
测试域名是否畅通 ping 域名/ip
在windows下查看ip地址的命令是ipconfig
在linux下查看ip地址的命令是ifconfig

以127开头的都是本机

Linux网络环境配置
第一种方法
1,以root登陆
2,运行setup命令,设置ip地址
3,重启网络
    /etc/rc.d/init.d/network restart
第二种方法
1,ifconfig eth0 x.x.x.x 对网卡进行配置
2,ifconfig eth0 network x.x.x.x 对子网掩码设置
这样配置的网络会立即生效,但是是临时的
第三种方法
1,修改/etc/sysconfig/network-scripts/ifcfg-eth0
配置文件
2,需要重启网络
    这种方法是最底层的修改方法

在linux中所有的设备都是文件
   
    rpm 软件管理
1, rpm -qa 查看安装的所有rpm包
2,安装rpm包
    rpm -i rpm包全路径 i=install
    rpm -ivh rpm包全路径名称 安装带有提示进入条
    v=verbose提示    h=hash进度条
3,卸载
    rpm -e rpm包名称
    rpm -e --nodeps  忽略依赖卸载

   
samba服务器安装
1,什么是samba服务器,可以在windows上访问linux上的资源
2,检查系统中是否安装了samba
    rpm -qa | grep smaba
3,先安装samba-common
        samba-client
        samba
4,设置samba密码文件
    cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
    smbpasswd root
    xxx
    xxx
5,启动samba服务器
service smb start
            stop
            restart
   
设置任务调度命令 crontab
1,在服务器中的应用
        服务器的定时数据库备份
2,设置任务
    crontab -e
3,完成这样的一个任务
    每隔两分钟执行 date >> /home/mydate1
    步骤:
        1,crontab -e
        2,2 * * * * date >> /home/mydate1
            第一个参数是分钟 第二个是小时
            第三个是天       第四个是月
            第五个是星期(每周的第几天执行)    一共是五个参数  *代表所有的时间点
4,怎样去调度多个任务?
    1,在crontab -e 中直接写
    2,可以把所有的任务,写入一个可执行文件(shell编程)
        * * * * * /root/task.sh
5,  crontab -r  终止任务调度
    crontab -l  列出当前有那些任务调度
   
进程的介绍和管理
进程:就是正在执行的程序
线程:
    1,进程有独立的运行空间,线程没有
    2,线程不能独立存在,有线程创建
在linux中,每个进程都可能有两种方式存在,前台和后台
所谓前台就是用户目前的屏幕可以进行操作的
ps命令是用来查看系统中,有那些正在执行
1,ps -a  显示当前终端的所有的进程信息
2,ps -u   以用户的格式显示进程信息
3,ps -x   显示后台进程运行的参数
终止进程
kill 1723  终止进程号位1723的进程
kill -9 1234 因为某些进程会捕捉某些信号,如果不能
结束进程可以用 -9 传送信息

top 可以动态监控进程
top -d 10  指定10秒更新一次信息

date命令查看系统时间
date MMDDHHMMCCYY.SS
    月月日日时时分分年年年年.秒秒
cal 查看日历
cal 3 2002 查看2002年3月的日历
cal 2008 查看 2008年的日历

netstat显示网络统计信息
netstat -nat
netstat -natp  查看连接所在的process进程号
    目前的连接
traceroute 监控网络状态
route 查看本机路由的情况

mysql的备份和恢复
备份 mysqldump -u root -p 密码 数据库名 > data.bak
恢复 mysql -u root -p 密码 数据库名 < data.bak
mysql服务的启动和停止和重启
service mysql start
service mysql stop
service mysql restart

Linux的远程操作工具secure shell(和 linux下的sshd服务通讯,默认监听22号端口)

etc   --> profile(配置系统环境变量)
home  -->  kenan -->  .bash_profile(用户的环境变量,对于单个用户有效)

配置.bashrc文件可以指定某些程序在用户登录的时候执行
在/etc和每个用户下都存在这个文件
   
shell
临时设置环境变量
export PATH=$path:$HOME/bin:/root/test/t1

shell使用
通配符
    * 代表多个字符
    ?代表一个字符
    touch abc3.tif
    ls -l abc[1-4].tif
alias 定义一个别名
alias llh 'ls -l /home'

Linux启动过程分析
    1,BIOS自检
    2,启动GRUB/LILO
    3,运行Linux内核并检测硬件
    4,运行系统的第一个进程init
    5,init读取硬盘引导配置文件/etc/inittab中的信息进行初始化
    6,/etc/rc.d/rc.sysinit 系统初始化脚本
    7,/etc/rc.d/rcX.d/[KS]* 根据运行级别X配置服务
            终止以 K  开头的服务
            启动以 S 开头的服务
    8,/etc/rc.d/rc.local 执行本地特殊配置
    9,其他特殊服务
   
压缩和解压缩
1,使用zip和unzip 进行压缩和解压缩
    压缩
        zip aa.zip 文件名
        zip aa.zip 文件名1,文件名2
        zip -r zz.zip 目录