文章目录
  1. 1. linux简介
    1. 1.1. linux特点
  2. 2. linux目录结构
  3. 3. Linux基本操作命令
    1. 3.1. 基本操作
    2. 3.2. vi编辑器使用
    3. 3.3. 用户,组管理:
    4. 3.4. linux权限
    5. 3.5. linux分区
  4. 4. jdk的安装步骤:
  5. 5. eclipse安装
  6. 6. shell
  7. 7. linux网络配置:
    1. 7.1. 第一种方法:
    2. 7.2. 第二种方法:
    3. 7.3. 第三种方法:
  8. 8. rpm管理:
  9. 9. 任务调度(crotab)
    1. 9.1. 怎样调度多个任务
    2. 9.2. 终止任务调试:
  10. 10. linux系统进程
  11. 11. 监控网络状态信息:
  12. 12. linux启动过程分析

linux简介

linux是一个开源,免费的操作系统,其稳定性,安全性,处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux

个人认为linux流程为:
第一阶段:linux平台上的开发,包括vi,gcc,gdb,make,jdk,tomcat,mysql..和linux基本操作

第二阶段:加厚c语言功底《c专家编程》或是java语言

第三阶段:学习unix环境高级编程《unix环境高级编程》

第四阶段:linux应用系统开发/linux嵌入式开发

linux特点

  1. 免费、开源
  2. 支持多线程、多用户的
  3. 安全性好
  4. 对内存和文件管理优越
    linux最小只需要4m————>嵌入式开发

linux目录结构

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是要目录“/”,然后在此目录下再创建其他的目录

root (存放root用户的相关文件)

home(存放普通用户文件的目录)

bin(存放常用命令的目录)

sbin(放的是要有一定权限才能使用的命令)

mnt(挂载光驱、软驱,默认把光驱,软驱挂载到此目录下)

etc(存放配置相关的文件,系统设置与管理)

var (存放经常变化的数剧)

boot(存放引导相关的一些文件、操作系统启动时所需的文件)

usr (软件默认的安装目录)

dev(接口设备文件目录,如had表示硬盘)

proc(目前系统核心与程序执行的信息)

Linux基本操作命令


基本操作

shutdown -h now 立刻进行关机

shutdown -r now 现在重新启动计算机

reboot 现在重新启动计算机

startx 进入图形界面、

logout 注销用户

ls 显示当前目录的所有文件

ls -l 格式化显示

ls -a 显示隐藏文件

ls -al 显示长列格式并显示隐藏文件

命令:init[0123456]

0: 关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启

常用运行级别是3和5,要修改默认的运行级别文件/etc/inittab的id:5:initdefault这一行的数字

pwd 显示当前在那个路径下

cd 改变目录

mkdir 建立目录

rmdir 删除空目录

touch 建立空文件

cp 复制命令 ——- cp 文件名 目标目录

cp -r dir1 dir2 递归复制命令(复制子目录信息)

mv 移动文件和改文件名

rm 删除文件和目录

rm -rf * 删除所有内容(包括目录和文件)r 递归 f强制

ln 建立符号连接

ln -s 源 目标

ls -s /etc/inittab Inittab [inittab指向实际文件/etc/Inittab]

more 显示文件内容,带分页 空格下一页 ctrl+pageup向上走

less 显示文件内容,带分页

grep 在文件中查询内容 grep -n 要查询的内容 文件名

| 管道命令

在linux和unix系统中“|”就是管道命令,把上一个命令的结果交给“管道”的后面的命令处理
如 ls -l /etc/ | more

man 在linux中,man命令相当于dos下的help 使用方式: man 命令

find 命令,搜索文件及目录 如 find / -name 文件名 从根目录查找

重定向命令

ls -l >a.txt 列表的内容写入文件a.txt中(覆盖写)

ls -al >>aa.txt 列表的内容追加到文件aa.txt的末尾

从文件中输入信息 database_program<database_data

find /home -amin -10 十分钟内存取的文件或目录

find /home -atime -10 十小时内存取的文件或目录

find /home -cmin -10 十分钟内更改过的文件或目录

find /home -ctime +10 十小时前更改过的文件或目录

find /home -size +10k意思是说查询/home目录下大小为10k的方件

more 文件名,可以查看文件内容

cat 文件名 正序浏览

tac 文件名 倒序浏览

head 文件名 也是列出文件内容

tail 文件名 也是列出文件内容

clear 清屏

find 查找文件

whereis 命令 查找命令文件在那里

ln 文件名1 文件名2 把文件1链接到文件2 此时是硬链接,它们的内容同步

ln -s 文件1 文件2 把文件1链接到文件2 此时是软链接,软链接相当于快捷方式,如果删除源文件,硬链接的文件内容依然存在,而软件链接的不存在。

grep 字符串 文件, 在指定文件中查找字符串

date 显示和设置时期时间

stat 显示指定文件的相关信息

who,w 显示在线登陆用户

whoami 显示自己身份

id 显示当前用户的id信息

hostname 显示主机名称

uname 显示操作系统信息

dmesg 显示系统启动信息

du 显示指定的文件(目录)已使用的磁盘空间的总量

df 显示文件系统磁盘空间的使用情况

free 显示当前内存和交换空间的使用情况

fdisk -l 显示磁盘信息

locale 显示当前语言环境

vi编辑器使用

vi 文件名 进入vi编辑器界面

esc 进入命令模式

wq 保存并退出

q! 退出并不保存

w: w是表示写入的意思,也就将目前的文件内容加以保存

q: q表示退出的意思,也是结束vi的执行

q! 强制离开vi,并且不保存文件

set nu 在文件中每行行首处加入行号

set nonu 取消行号

移光标到某行行首 直接输入数字再按esc键

/字符串,在很长的文件中,可以利用“/字符串”的命令来查特定字,如果搜索的字符串不是所要的,可以按“n”键来往下继续查找。

?字符串:可以利用此命令来查找特定字,如果不是可按“n”往上继续查找

用户,组管理:

useradd 用户名 —————添加用户

passwd 用户名—————设置(修改)密码(如果不加用户名,则表示给当前用户设置密码)

userdel 用户名————-删除用户

userdel -r 用户名——-删除用户及用户主目录

在linux中的每个用户必须属于一个组,不能独立于组外,在linux中每个文件有所有者,所在组,其它组的概念

1,所有者,
2,所在组,
3,其它组,
4,改变用户所在的组

一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者。

[ls -ahl] 命令可以看到文件的所有者,所在组

chown 用户名 文件名 来修改文件的所有者

chgrp 组名 文件名 来修改文件所在的组。

groupadd 组名 在linux中添加组

查看linux中所有的组的信息 vi /etc/group(可以修改)或者 cat /etc/group(只查看不能修改)

创建用户,并同时指定将该用户分配到哪个组 useradd -g 组名 用户名

查看linux中所有用户信息 vi /etc/passwd 或者 cat /etc/passwd

linux权限

权限分为三种:r可读,用4表示,w可写 用2表示,x可执行,用1表示

ls -l中显示的内容如下:
-rwxrw-r— 1 root root 1213 feb 2 09:39 abc

前10个字符确定不同用户能对文件做什么
第一个字符代表文件(-),目录(d),链接(l)

其余字符每三个一组(rwx)读(r)写(r)执行(x)

第一组rwx:文件拥有者的权限,读,写和执行

第二组rw-:与文件拥有者同一组的用户的权限是读,写但不能执行

第三组r—:不与文件拥有者同组的其它用户的权限是读不能写不能执行

可用数字表示r=4,w=2,x=1因些rwx=4+2+1=7
1 表示连接的文件数
root 用户
root 组
1213 文件大小(字节)
feb 2 09:39 最后修改日期
abc 文件名

修改文件或目录的访问权限:chmod 777 文件名(777是三组的代表,可以为1,2,4,6,7分别表示三组的权限)

linux分区

mount [-参数] [设备名称] [挂载点] 特别说明:在挂载光驱时,可直接使用 mount /mnt/cdrom

卸载命令:umount [设备名称]

查看磁盘使用情况 df [-参数] 如df -l

查看某个目录在哪个分区 df [目录全路径]

查看linux系统分区具体情况 fdisk -l

jdk的安装步骤:

  1. 把安装文件.iso挂载到linux操作系统上,在虚拟机上做好配置, 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[先进入图形界面]startx命令进入到图形界面(./eclipse)

shell

想看目前使用的是哪种shell: env (该命令可以显示当前操作系统的环境变量)

修改shell :chsh -s 输入新的shell 如:/bin/csh

命令补全功能,输入前几个字母,按两下tab键 ,帮助(man 命令)

概述:在linux下,我们有时可能希望知道或是使用最近执行的命令,history可能会帮上大忙

  1. history 5:此项说明会显示最近使用的5个命令,不加数字则显示全部历史记录
  2. history!5:此项说明执行历史编号为5的命令
  3. history!ls:此项说明执行最后一次以“ls”开头的命令

用户登录后自动执行的shell脚本文件:.bashrc位于主目录下
它之前执行系统的脚本/etc/bashrc主要是基本配置数据
.bash_profile用户环境变量位于主目录下,它之前执行系统的脚本/etc/profile(系统环境变量)主要是配置环境变量
.bashrc目录中可以配置当用户登录的时候某些软件自动启动

export PATH=$PATH:$HOME/bin:/root/test/t1输出环境变量PATH引用原来的值$PATH $HOME表示工作主目录:是路径分隔符 这只是暂时生效,当退出登陆就会失效
显示变量内容:echo $PATH echo $USER echo $SHELL
alias为一些命令取别名:alias ll ='ls -l --color=tty'

linux网络配置:

第一种方法:

  1. 用root身份登陆,运行setup命令进入到text mode setup utiliy对网络进行配置,这里可以进行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软件包管理工具)的缩写。

如何查询linux中安装了那些rpm软件?:rpm -qa

rpm -q 软件名(查询软件)

安装rpm包:rpm -i rpm包全路径名称

rpm -ivh rpm包全路径名称:安装包到当前系统有提示信息(i安装,v提示,h进度条)

删除rpm包:rpm -e jdk 如果其它软件包依赖于您要卸载的软件包,卸载时则产生错误信息

强制删除有 rpm -e --nodeps 软件名

升级rpm包 rpm -u rpm包全路径名

任务调度(crotab)

是指系统在某个时间执行特定的命令或程序。

任务调试分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等

2.个别用户工作:个别用户可能希望执行某些程序
设置任务调度文件:/etc/crotab

设置个人任务调度,执行crotab -e命令接着输入任务到调度文件

希望每天凌晨2点去执行date>>/home/mydate(0(分) 2(时) (天) (月) (星期几) date>>/home/mydate )每分钟就是全部打

怎样调度多个任务

  1. 在crontab -e 文件中直接写,再添加多个任务
  2. 可以把所有的任务,写入到一个可执行文件(shell编程,shell文件以.sh结尾)
    编写shell命令文件,修改文件权限为可执行chmod 744文件名
    在crontab -e 中 时间控制后直接写文件全路径( * 文件路径名)

终止任务调试:

crontab -r:终止任务调度(把任务调度删除)

crontab -l:列出当前有那些任务调度

linux系统进程

  1. 在linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。如www服务器
  3. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况,可以不加任何参数:显示详细的进程信息

ps -a: 意思是说显示当前终端的所有进程信息

ps -u: 以用户的格式显示进程信息

ps -x: 显示后台进程运行的参数

ps -aux[看的全面,信息也全面]

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此任务。终止某个进程:kill 进程号

kill -9 16251:因为有些进程会捕捉某些信号,如果直接不能结束进程可以用“-9”传送信息。
killall会杀掉此进程及其子进程

top与ps命令很相似,它们都用来显示正在执行的进程。top与ps最大的不同之处。在于top在执行一段时间可以更新正在运行的进程。

  1. 监视特定用户:top:输入此命令,按回车键,查看执行的进程.U:然后输入 “u”回车,再输入用户名。即可。
  2. 终止指定的进程。top:输入此命令,按回车键,查看执行的进程。k:然后输入“k”回车,再输入要结束的进程id号。
  3. 指定系统状态更新的时间:top -d 10:指定系统更新进程的时间为10秒

load avergae负载均衡。zombie僵尸进程数。swap虚拟内存

利用date来更改系统的时间:date MMDDHHMMCCYY.SS:意思是指:月月日日时时分分年年.秒秒
cal 3 2002查看2002年3月的日历 cal 2002查看2002年的日历

监控网络状态信息:

显示网络统计信息的命令netstat: 此命令用来显示整个系统目前的网络情况。如目前的连接,数据包传递数据,或是路由表内容。此命令直接输入即可使用。如netstat -anp(按一定顺序来排序,并显示进程号)

显示数据包经过历程命令:traceroute 此命令可以直接输入使用,用来检测数据包在网络上传输的过程。从本机到远程主机的完整路径。帮助管理员解决问题。
route所谓路由是指将数据由来源网络送往目的的网络的操作。在大型网络中,路由是非常复杂的,因为数据包在抵达目的地时,可能经过的节点有很多,路由表是存储在路由器或一些其他链接设置上的窗体。其中记录着了到指定目的地的网络路径,以及这此路径的相关数值。 此命令可以直接输入使用,来查看本机路由的情况。

linux启动过程分析

runlevel命令可以查看当前的运行级别
linux系统启动过程如下:

  1. bios自检
  2. 启动grud/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. 1. linux简介
    1. 1.1. linux特点
  2. 2. linux目录结构
  3. 3. Linux基本操作命令
    1. 3.1. 基本操作
    2. 3.2. vi编辑器使用
    3. 3.3. 用户,组管理:
    4. 3.4. linux权限
    5. 3.5. linux分区
  4. 4. jdk的安装步骤:
  5. 5. eclipse安装
  6. 6. shell
  7. 7. linux网络配置:
    1. 7.1. 第一种方法:
    2. 7.2. 第二种方法:
    3. 7.3. 第三种方法:
  8. 8. rpm管理:
  9. 9. 任务调度(crotab)
    1. 9.1. 怎样调度多个任务
    2. 9.2. 终止任务调试:
  10. 10. linux系统进程
  11. 11. 监控网络状态信息:
  12. 12. linux启动过程分析