shutdown –h now 立刻关机
shutdown –r now 现在重新启动计算机
reboot 现在重新启动计算机
logout 退出
vi编译器的使用
1,vi hello.java
2,输入i ----进入插入模式
3,输入esc键------进入命令模式
4,输入:-----wq表示退出保存,q!表示退出不保存
5,编译hello.java文件------javachello.java
6,运行编译后的文件-------java hello
在linux下开发c程序cpp程序
1,vi hello.cpp
2, 编译cpp程序--------gcchello.cpp 会生成a.out文件,当编译两个cpp文件的时候会覆盖。
自定义编译后的名字,gcc –o mycode hello.cpp 生成的可执行文件名字叫mycode
3,运行 -----./a.out
目录结构
root--------存放root用户的相关文件
home------存放普通用户的相关文件
bin---------存放常用命令的目录
sbin--------要具有一定的权限才可以使用的命令
mnt--------默认挂载光驱和软驱的目录
boot------存放引导相关的文件
etc--------存放配置相关的文件
var-------存放经常变化的文件
显示当前在哪个目录下 print working directory
pwd
添加用户
useradd xiaoming
设密码
passwd 用户名 必须要指定要设密码的用户,要不然会默认设置当前用户的密码
新建用户后会在home目录下多一个xiaoming的目录
删除用户
userdel xiaoming 用户删除了但是xiaoming的文件夹还在
userdel -r xiaoming 删除用户及用户主目录
命令 init [0123456]
运行级别
0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务 一般设置成3号运行状态
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3,5,要修改默认的运行级别可改文件/etc/inittab的id:5:initefault:这一行中的数字。
当把级别修改为6的时候,系统一开机就自动重启。无限循环。
解决方法:在进入grub界面的时候,输入e,再选中第二行,输入e,进入修改界面,最后输入一个1---代表1号运行级别。 因为单用户级别不需要读inittab文件。也可以跳过输入密码的阶段,进入系统后可以修改密码和运行级别。
常用命令
pwd 显示当前工作目录
cd 改变目录
ls 列出文件和目录
ls –a 显示隐藏文件
ls –l 显示长列表格式
mkdir 建立目录
rmdir 删除空目录
touch 建立空文件
cp 复制命令
cp -r dir1 dir2 递归复制命令(复制子目录信息)
mv 移动文件和改文件名
rm 删除文件和目录
rm –rf * 删除所有内容包括目录和文件(r是递归,f强制)
ln 建立符号连接
ln –s 源 目标
ls –s /etc/inittab inittab inittab指向实际文件/etc/inittab
more 显示文件内容,带分页(按空格查看下一页,pageup+ctrl查看上一页)
less 显示文件内容,带分页
grep 在文本中查询内容 grep “string” aaa.txt 要查找的内容 内容所在的文件
| 表示管道
在linux和unix系统中|就是管道命令,如何理解---把上一个命令的结果交给|的后面的命令处理。
man命令相当于dos下得help
find 命令可以按文件名搜索,可以抖索一段时间内变更的文件或目录,也可以搜索制定大小的文件
find / –name filename /指的是在根目录下搜索,最好指定目录,要不然会搜索很长时间
重定向命令
ls –l > a.txt列表的内容写入文件a.txt中(覆盖写)
ls –l >>a.txt 列表的内容追加到a.txt的末尾
从文件中输入信息 database_program<database_data
文件所有者,所在组和其他组
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者,所在组,其他组的概念。
所有者 ---一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者。
使用ls -ahl 命令可以查看到文件的所有者
也可以使用 chown用户名 文件名 来修改文件的所有者。
文件所在组-----当某个用户创建了一个文件后,这个文件的所在组就是在用户所在的组。
可以使用ls –ahl 命令查看文件的所有组
也可以通过 chgrp 组名 文件名 来修改文件所在组。
其他组----除了文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
改名用户所在组----在添加用户时,可以指定改用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在组
usermod -g 组名 用户名
也可以修改用户登录的初始目录
usermod –d 目录名用户名 改变该用户登录的初始目录
如何在linux中添加组需要root用户
groupadd policeman
查看linux中所有的组
vi /etc/group 或 cat /etc/group
创建用户并指定改用户分配到哪个组。
useradd –g 组名 用户名
查看linux 中所有用户信息
vi /etc/passwd 或 cat /etc/passwd
ls –l
-rw-r--r-- 1 shj zu 11 dec 9 09:32 mytest.java
权限分为三种 r 可读也可以用4表示 w可写也可以用2表示 x可执行也可以用1表示
-rw-r--r-- 表示各类用户对文件的操作权限
- rw- r-- r-- 分成四段
- 文件类型如果是-代表普通类型,d代表文件夹,l代表连接
rw- 文件的所有者对该文件具有的权限
r-- 文件所在组对该文件的权限
r-- 其他组的用户对该文件的权限
1 如果是文件就是1,如果是文件夹就是文件夹中的文件数
shj 文件所有者
zu 文件所属组
11 文件大小
dec 9 09:32 最后修改时间
mytest.java 文件名
查看当前的用户
who am I
如何修改文件的访问权限。
chmod 777 file 修改file文件的各个组权限全为可读可写可执行
jdk的安装步骤
1, 把mypackage.iso挂在到linux操作系统上
在vm上做好配置
mount /mnt/cdrom
2, 把安装文件拷贝到 /home
cp 文件 /home
3,cd /home 切换目录到home
4,安装 ./???.bin
5,一个文件 /etc/profile 环境配置文件---配置文件修改后重新登录生效
6,配置刚刚安装的jdk。
eclipse 安装
1,把安装文件拷贝到home目录 cp 文件 /home
2,安装 tar –zxvf ???.tar.gz
3,启动eclipse ./eclipse 前提进入图形界面,在终端中输入 startx 命令
eclipse 只能开发javase 要开发java ee 还需要安装myeclipse
1,把安装文件拷贝到home目录 cp 文件 /home
2,安装 ./???.bin
3,图形界面安装
tomcat的安装---其他的服务器(jboss,weblogic,websphere,resin)
1,把安装文件拷贝到home目录 cp 文件 /home
2,解压缩
3,配置myeclipse,的jre,jdk,tomcat
./eclipse & 以后台方式运行,这样程序就不会占用控制台。控制台会显示进程号。
安装mysql ---
linux 分区
linux 分区主要分为 基本分区和扩展分区 两个数目之和不能大于四个。
基本分区可以马上被使用但不能再分区。
扩展分区必须再进行分区才能使用,二次分区后也就是逻辑分区,没有数量限制。
对于linux用户来说无论有几个分区,分给哪一目录使用,他归根结底就只有一个根目录,一个独立且唯一的文件结构。linux中每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫载入的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使他的存储空间在一个目录下获得。
(硬盘分两种 sata硬盘和ide硬盘,sata是目前主流,传输速度也快,便于硬盘工作。但价格较之ide要贵出一点,不多,就贵一点
SCSI硬盘和普通IDE硬盘相比有很多优点:接口速度快,并且由于主要用于服务器,因此硬盘本身的性能也比较高,硬盘转速快,缓存容量大,CPU占用率低,扩展性远优于IDE硬盘,并且支持热插拔。)
对于IDE硬盘,驱动器表示符为“hdx~”,其中“hd”表名分区所在设备的类型,这里是指IDE硬盘。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助盘,d为辅助从属盘),“~”代表分区,前四个分区用1到4表示,他们是主分区或扩展分区,从5开始是逻辑分区。
对于scsi硬盘则标示为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
linux几个分区命令
挂载命令
mount -参数 设备名称 挂载点
说明:在挂载光驱时,可直接使用, mount /mnt/cdrom
卸载命令
umount 设备名称
查看磁盘适应情况
df -参数 比如 df –l
查看某个目录是在哪个分区
df 目录权路径
查看linux系统分区具体情况
fdisk -l
linux 的安装
1,磁盘安装 2,虚拟机安装
linux安装时,分区是关键
/boot分区 100M
swap分区一般是物理内存的两倍,但不要大于256.
/ 根分区 尽可能大。
shell概述
shell类似于dos中的批处理命令。
shell学习相关书籍《linux命令,编辑器,和shell编程》
shell常用种类
/bin/sh
/bin/csh
/bin/ksh
查看目前使用的是那种shell
env 该命令可以显示当前操作系统的环境变量
env |more 分页查看
shell的修改
chsh –s 新的shell 如:/bin/sh
shell命令补全功能
直接输入“mk”,再按两下“tab”键 ,出现头字母为“mk”的所有命令
cat p,再按两下“tab”键,出现头字母为“p”的所有文件。
查阅历史记录命令
1,history 5:显示最近使用的5个命令
2,!5:此项说明执行历史编号为5的命令。
3,!ls:此项说明执行最后一次以“ls”开头的命令
tcp/ip协议
它不是一个独立的协议,而是一组协议。(tcp,ip,udp,arp,rarp等协议)。简称为tcp/ip协议。
追踪路由
tracert www.baidu.com 经过路由的ip地址
在windows下,查看ip情况的命令
ipconfig
在linux下查看ip情况的命令是
ifconfig
linux网络环境配置
第一种方法:
1,用root身份登录,运行setup命令进入到text mode setup utility对网络进行配置,这里可以进行ip,子网掩码,默认网关,dns的设置。
2,这时网卡的配置没有生效,运行/etc/rc.d/init.d/network restart命令我们刚才做的设置才生效
第二种方式
1,ifconfig eth0 x.x.x.x 对网卡进行设置。
2,ifconfig eth0 network x.x.x.x 对子网掩码进行设置
对广播地址和dns使用默认的。
注意:这样配置网络会立即生效,重启后失效。
第三种方法
1,修改/etc/sysconfig/network-scripts/ifcfg-eth0,这个文件里各个属性可以修改,包括ip,子网掩码,广播地址,默认网关。
2,这时网卡的设置没有生效,运行/etc/rc.d/init.d/network restart 命令我们刚才作的设置才生效。
这种方法是最底层的修改方法。
rpm管理
一种用于互联网下载包的打包及安装工具,它包含在某些linux分发版中。它生成具有.RPM扩展名的文件。RPM是redhat package manager (redhat软件包管理工具)的缩写。
RPM包的名称格式
apache-1.3.23-11.i386.rpm
apache 软件名称
1.3.23-11 软件运行版本号,主版本和次版本
i386 是软件所运行的硬件平台
rpm 文件扩展名 代表rpm包
RPM常用命令
rpm –qa:查询所安装的所有rpm软件包
rpm –qa |more
rpm –qa | grep x
rpm –q 软件包名:查询软件包是否安装
rpm –q xinetd
rpm –q foo
rpm –q xinetd filebash
rpm –qi 软件包名:查询软件包信息
rpm –qi file
rpm –ql 软件包名:查询软件包中的文件
rpm –ql file
rpm –ql jdk
rpm –qf 文件全路径名:查询文件所属的软件包
rpm –qf /etc/password
rpm –qf /root/install.log
rpm –qp 包文件名 查询包的信息对这个软件包的介绍
rpm –qpjdk-1_5_0-linux-i586.rpm
安装rpm包
rpm –i RPM包全路径名称:安装到当前系统
i=install
rpm –ivh rpm包全路径名称:安装到当前系统有提示信息
v=verbose 提示
h=hash 进度条
samba服务器
SAMBA服务软件能够使windows与linux之间实现资源共享。 NFS能使linux主机之间实现资源访问。
smb通信协议采用的是C/S结构,所以smb软件可分为客户端和服务器两部分。就是客户端访问服务器端的共享资源,谁要共享资源就把服务器装载那个系统上(windows或linux)
samba软件的安装
1,看看是否已经安装了samba
rpm -q samba
2,卸载samba
rpm –e foo
如果有依赖关系会出错无法删除,可以加入-nodeps选项来忽略这个错误。一般不要用
3,把安装文件挂在到linux下
4,把samba开头的文件,拷贝到/home,准备安装。
5,开始安装
6,创建一个用户
useradd username
passwd password
7,给用户设置samba密码
先在linux中建立一个普通用户,将/etc/passwd中的用户都加到smbpasswd中
cat /etc/passwd |mksmbpasswd.sh >/etc/samba/smbpasswd
设置用户的samba密码
smbpasswd password
8,启动samba服务
service smb start 启动
service smb stop 停止
service smb restart 重启
当在linux中启动samba服务后,可以直接在windows中使用网上邻居访问共享的文件
9配置网络是windows和linux在一个网段,ip互联
ifconfig 查看网络信息
ifconfig eth0 down 禁止使用eth0
ifconfig eth0 up 打开eth0
10关闭linux中的防火墙(用setup命令道text mode设置)
为了让网络配置生效 运行下面命令
/etc/rc.d/init.d/network restar
/etc/rc.d/init.d/xinetd restar
11在windows中输入\\ip地址 就可以访问linux中的共享文件了,共享的目录是用户的默认登录目录。
共享资源的基本设置 /etc/samba/smb.conf
1,comment:针对共享资源所做的说明文字。默认值为空字符窜。
comment=dir for todayhero:共享这个目录为todayhero这个用户。
2,path:若共享的资源是目录,是指定该目录的位置。
path=/tmp:共享tmp这个目录
3,guest ok:是否允许用户不适用账号和密码访问此资源。
guest ok=yes:允许 no 不允许
4,hosts allow:设置连接主机的地址:
hosts allow =192.168.0. server.abc.com :意思是说允许来自192.168.0.或server.abc.com
5,hosts deny:设置禁止连接的主机
hosts deny =192.168.2. :不允许来自192.168.2.的主机访问此samba服务器的资源。
6,read only:用于设置共享的资源是否为只读。
read only =yes:允许只读 no 可读可写。
7,wriable:设置是否允许写入
writable =yes:允许写入 no 不允许写入
8,browseable:设置用户是否可看到此共享资源。
browseable=yes:允许用户看到此资源, no 不允许
9,available:设置是否启用资源共享
available =yes :启用资源共享 no 不启用
windows查看系统监听 netstat -an
任务调度:系统在某个时间执行的特定的命令或程序。 crontab
分类:
1,系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。
2,个别用户工作:个别用户可能希望执行某些程序。
设置任务调度文件:
1,设置任务
crontab -e
2,每个一定时间去执行
比如每天凌晨2:00去执行命令 date >>/home/mydata1
可以在crontab –e中加入
0 2 * * * date >> /home/mydate2
3,如何去调度多个任务?
1,在crontab –e中直接写多个任务程序。写的太多太乱了。
2,可以把所有的任务,写入到一个可执行文件(shell编程)。
vi mytask.sh
date >> /home/mydate
cp /home/mydate /root
chmod 744 mytask.sh ---设置文件可执行
这样在crontab -e中写入 * * * */root/mytask.sh
当程序出错的时候,系统会报错。
you have new mail in /var/spool/mail/root
查看错误可以 cat /var/spool/mail/root
终止任务调度 :
crontab –r :终止任务调度。
crontab –l :列出当前有哪些任务调度。
进程的概念和管理
每个执行的程序都称为一个进程。每一个进程都分配一个ID号。
线程
1,轻量级的进程。
2,进程有独立的地址空间,线程没有。
3,线程不能独立存在,它是由进程创建,(fork) thread
4,相对讲,线程耗费的cpu和内存小于进程。
显示系统执行的进程
ps –aux
a---显示当前终端的所有进程信息。
u----以用户的格式显示进程信息
x----显示后台进程运行的参数
终止进程 kill/killall
kill 16251 终止进程号16251的进程
kill -9 16251 强制杀死进程
动态监控进程 top
top和ps命令很相似,但是它可以在更新正在运行的进程信息
1,监视特定用户
top:输入此命令,然后回车,查看执行的进程。
u:然后输入u ,回车,再输入用户名。
2,终止指定的进程。
top :输入此命令,按回车,查看执行的进程。
k:然后输入k ,回车,在输入要结束的进程id。
3,指定系统状态更新的时间:
top –d 10:指定系统跟新进程的时间为10秒
设置系统时间
1,date命令:显示系统时间
2,利用date命令来更改系统时间
date MMDDHHMMCCYY.SS : 意思是指:月月日日时时分分年年年年.秒秒
3,查看月历
cal 3 2002 : 查看2002年3月的月历
4,查看年历
cal 2008 : 查看2008年的年历
监控网络状态信息
显示网络统计信息的命令netstat–an
an 按端口号来排序
netstat –anp
p 显示进程号
显示数据包历程的命令 traceroute 对应windwos的tracert
显示路由表
route
mysql数据库
安装:
1,把安装文件拷贝到/home
cp mysql-* /home *代表任意字符,把所有以mysql- 开头的文件都拷贝到home下
rm mysql-* 删除所有以mysql-*开头的文件,有的时候系统会询问是否删除。
rm -f mysql-* 强制删除所有以mysql-*开头的文件
2,把安装文件解压缩
tar –zxvf 文件名.tar.gz
mv mysql…………很长的文件名 mysql -----修改文件夹名称的命令
3,
groupadd mysql (创建mysql组)
useradd –g mysql mysql (常见mysql用户,并放入到mysql组)
cripts/mysql_install_db --user=mysql (初始化数据库,进入到mysql文件夹才能使用命令。)
chown –R root . (修改文件的所有者)(“.”代表当前目录,”..”代表上一级目录)
chown -R mysql data (修改data文件夹的所有者)
chgrp -R mysql . (改变用户组)
启动mysql
bin/mysqld_safe --user=mysql& (& 后台执行)
检查一下,ok,正常启动
mysql监听端口号 3306 使用netstat –an|more
如何进入mysql
cd /mysql/bin
./mysql –u root –p 回车
如果想在任何一个目录下都可以进入mysql,则需要在/root/.bash_profile 中添加路径
4,使用命令来备份和恢复mysql 数据库
备份:mysqldump –uroot –p 密码数据库名 > /home/data.bak
恢复:mysql –u root–p 密码 数据库名 < /home/data.bak
在恢复数据库的时候需要新建一个新的空的数据库
mysql 数据库的使用
1,进入mysql
2,建立数据库和表
create database spdb1;
drop database spdb1; 删除数据库
show databases; 显示有哪些数据库
use spdb1; 使用某个数据库
show tables; 显示数据库中有多少个表
//select * from db;
建表
create table users(userId varchar(8),userName varchar(8));
insert into users values (‘0001’,’shj’);
select * from users;
desc users; 显示表结构
编写一个java文件来,显示数据库中的文件。
import java.sql.*;
public class ShowUser{
//main function
public staitc voidmain(String [] args){
try{
Class.forName(“com.mysql.jdbc.driver”);
Connection ct=DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/spdb1?user=root&password=”);
Statementsm=ct.createStatement();
ResultSetrs=sm.executeQuery(“select * from users”);
while(rs.next()){
system.out.println(“username=”+rs.getString(1));
}catch(Exception e){
e.printStackTrace();
}
}
}
注意mysql的驱动要存放的位置。
要放在jdk下,主目录下/jre/lib/ext 下才有用。
神奇的ssh
ssh(secure shell)是一款远程操作linux,和进行文件上传和下载的软件。
1,安装
2,使用ssh客户端登陆到linux(前提是linux启动了sshd服务,确认windows和linux网络是通的)
当前目录 pwd
相对路径 cd .. 回到上一级目录
绝对路径 cd /home/mysql 从根目录开始找
配置.bashrc文件可以指定某些程序在用户登录的时候就自启动。
当你希望临时加入一个路径时,
export PATH =$PATH:/ROOT
临时在当前目录加入/root,可以在当前目录执行root目录下的程序。
echo $path 打印环境变量的路径
echo $shell 打印当前的shell
echo $user 打印当前用户的用户名
通配符
* 代表多个字母或数字
? 代表一个字母或数字
\ 转义字符
‘’不处理任何变量和命令
“”处理变量但不处理命令
反引号把引号中的单词作为一个命令,如果是变量则求值然后作为一个命令处理。
alias的用法
ls –l /home
alias llh=’ls –l /home’ 给这个命令起一个别名
linux 启动过程
1,BIOS自检
2,启动GRUP/LILO
3,运行LINUX内核并检测硬件
4,运行系统的第一个进程init
5,init读取系统引导配置文件/etc/inittab中的信息进行初始化
6,/etc/rc.d/rc.sysinit系统初始化脚本
7,/etc/rc.d/rcXd/[KS]*-根据运行级别X配置服务
终止“K”开头的服务
启动以“S”开头的服务
8,/etc/rc.d/rc.local 执行本地特殊配置。
9,其他特殊服务。
压缩和解压缩问题
以zip和unzip处理.zip文件
压缩文件
zipaa.zip 文件名
zipaa.zip 文件名1 文件名2
zip–r aa.zip 文件夹路径
-m 压缩后自动删除原文件
-r 将子目录一起压缩
-j 忽略子目录的内容
-n 将已压缩的活没有必要压缩的文件去掉。
-t 压缩某一日之后的文件
-y 不压缩连接文件的原文件
-9 压缩率问题,-9压缩率最高从1~9
-x 将不需要压缩的文件排除在外。
解压缩
直接解压缩文件
unzip file.zip
-x 排除不需要解压缩的文件
-z 查看压缩包内的内容