linux学习笔记

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   查看压缩包内的内容


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值