linux流程
第一阶段:包括vi,gcc,gdb,make,jdk,tomcat,mysql,和linux基本操作
第二阶段:加厚c语言功底《C专家编程》或java语言
第三阶段:学习unix环境高级编程《Unix环境高级编程》
第四阶段:linux应用系统开发、linux嵌入式开发
基础部分
linux基础知识
常用命令80个
linux分区/vi/权限...
实用部分
Samba安装与配置
linux网络环境配置
crontab使用
jdk/apache/mysql/ssh/rpm安装与配置
linux下java网络编程
shell初步介绍
书籍推荐
鸟哥的linux私房菜---》linux编程从入门到精通----》linux内核完成剖析
vi的使用
常用命令:::
startx 开启图像界面
shutdown -h now 立刻自动关机
shutdown -r now 现在重新启动计算机
reboot 现在重新启动计算机
/
root 存放root用户的相关文件
home 存放普通用户的相关文件
mnt 默认挂载光驱和软驱的目录
bin 存放常用命令的目录
sbin 要具有一定权限才可以使用的命令
boot 存放引导相关的文件
etc 存放配置相关的文件
var 存放经常变化的文件
usr 存放文件默认安装的目录
set nu 在文件每行行处加上行号
set nonu 取消行号
输入数字 若直接输入数字再按esc键,就可将光标移至该行行首
/字符串 在很长的文件中,可以利用"/字符串"的命令来查找特定字,例如"/tcp",如果搜索的字符串不是所要的,可以按“n”来往下继续查看
?字符串 可以利用"?字符串"的命令查找特定字,例如:“:/tcp” 如果搜索的字符串不算是所要的,可以按“n”来往下继续查看
pwd 显示当前路径
添加用户
useradd zsw
设密码(需要指定用户)
passwd zsw
密码为root123456
userdel 用户名 (删除用户)
userdel xiaoming (删除用户xiaoming)
userdel -r xiaoming (删除用户以及用户主目录)
linux 常用命令
命令init
运行级别
0 关机
1 单用户
2 多用户状态没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图像界面
6 系统重启
常用运行级别是3和5,要修改默认的运行级别可改文件
/etc/inittab的id:5:initdefault:这一行中的数字
pwd 显示当前目录
cd 改变目录
ls 列出文件和目录
ls -a 显示隐藏文件
ls -l 显示长列表格式
mkdir 建立目录
rmdir 删除空目录
touch 建立空文件
cp 复制命令
cp -r dir1 dir2 递归复制命令(复制子目录信息)
mv 移动文件和该文件名
rm 删除文件和目录
rm -rf * 删除所有内容(包括目录和文件) r 递归 f 强制
ln 建立符号连接
ln -s 源目标
ln -s /etc/inittab inittab inittab指向实际文件/etc/inittab
more 显示文件内容,带分页
less 显示文件内容带分页
grep 在文本中查询内容
| 管道命令
在linux和unix系统中 | 就是管道命令
怎么理解
把上一个命令的结果交给 | 的后面的命令处理
在文本中查询
grep "shunping" aaa.java
man 命令 相当于help
find / -name aa.java 从根目录开始查找aa.java
搜索指定 find /root/ -name aa.java
搜索一段时间内被存取/变更的文件或目录
find /home -amin -10 十分钟内存取的文件或目录
find /home -atime -10 十小时内存取的文件或目录
find /home -cmin -10 十分钟内更改过的文件或目录
find /home -ctime +10 十小时前更改过的文件或目录
文件大小搜索
find /home -size +10k 意思是查找/home目录下大小为10k的文件
runlevel 命令 可以查看当前的运行级别
linux系统启动过程如下:
a BIOS自检
b 启动GRUB/LILO
c 运行LINUX内核并检测硬件
d 运行系统的第一个进程init
e init 读取系统引导配置文件/etc/inittab中的信息进行初始化
f /etc/rc.d/rc.sysinit系统初始化脚本
g /etc/rc.d/rcX.d/[KS]* - 根据运行级别X配置服务
终止以“K”开头的服务
启动以"S"开头的服务
h /etc/rc.d/rc.local 执行本地特殊配置
i 其他特殊服务
以zip和unzip处理.zip文件
1、zip命令的基本使用方法
zip file.zip *:zip后接压缩后的文件名,在它的后面要输入要压缩的文件即可
zip aa.zip 文件名
zip aa.zip 文件名1 文件名2
2、压缩后,自动删除原文件
zip -m file.zip to.txt: 意思是说把to.txt文件压缩成file.zip文件,to.txt会自动删除。
3、将子目录一起压缩:
zip -r file.zip *:将当前目录下的子目录一起压缩
4、忽略子目录的内容:
zip -j file.zip *
5、将已压缩的或没有必要压缩的文件去掉
zip -n .mpg:.jpg:.gif: 第一种文件中阿金要用“:”分开
6、压缩某一日之后的文件
zip -t 102002 file.zip:意思是指将当前目录下在2002年10月20日之后文件压缩
7、不压缩链接文件的原文件
zip -y file.zip *
8、压缩率问题。 -1___-9:-9的压缩率最高
zip -9 file.zip *
9、将不需要压缩的文件排除在外
zip file.zip * -x file2.txt:在压缩时,将当前目录内的file2.txt文件排除在外。
以unzip命令进行.zip文件的解压缩
1、直接解压缩文件
unzip file.zip
2、排除不需要解压缩的文件
unzip file.zip -x file2:意思是说除了file2文件外,其他的文件都解压缩
3、查看压缩包的内容
unzip -Z file.zip:查看file.zip压缩包的内容。也可以使用“-l”、"-V"来查看压缩包的内容
重定向命令
ls -l > a.txt 列表的内容写入文件a.txt中(覆盖写)
ls -al >>a.txt 列表的内容追加到文件aa.txt的末尾
从文件中输入信息 database_program<database_data
ls -ahl 命令可以看到文件的所有组
【chgrp 组名 文件名 】 来修改文件所在的组
usermod -g 组名 用户名 来改变某个用户所在的组
usermod -d 目录名 用户名 改变该用户登陆的初始目录
jdk的安装步骤:
1、把mypackage.iso挂载到linux操作系统上
在vm做好配置
mount /mnt/cdrom
2、把安装文件拷贝到 /home
cp 文件 /home
3、cd /home 切换目录到home
4、安装
./?????.bin
5、看看一个文件 /etc/profile 环境配置文件
6、配置刚才自己安装的jdk
JAVA_HOME=/home/jdk1.8.0_11
PATH=$PATH:/home/jdk1.8.0_11/bin
CLASSPATH=.:/home/jdk1.8.0_11/jre/lib/rt.jar
export JAVA_HOME PATH CLASSPATH
source /etc/profile 使其生效
eclipse 安装
1、把安装文件拷贝到 /home
cp 文件 /home
2、安装
tar -zxvf ???.tar.gz
3、启动eclipse [进入图形界面]
cd eclipse
myeclipse 安装
同eclipse
如何在linux中添加组
groupadd policeman
查看linux中所有组的信息
vi /etc/group 可看可改
cat /etc/group 只查看不可修改
创建用户并同时指定将该用户分配到哪个组
useradd -g 组名 用户名
查看linux中所有用户信息
vi /etc/passwd
cat /etc/passwd
1查看当前默认启动界面命令
systemctl get-default
2修改默认启动界面为图形界面
systemctl set-default graphical.target
3修改默认启动界面为命令界面
systemctl set-default multi-user.target
重启 shutdown -h now
tracert www.baidu.com
权限分为三种:r可读 用4表示
w可写 用2表示
x可执行 用1表示
- rw-r--r--
文件类型 文件所有者对该文件的权限 文件所在组对该文件的权限 其他组的用户对该文件的权限
如何修改文件的访问权限问题。
chmod 777 zsw 只有zsw或者root权限能执行
777
对所有者 对所在组 对其他
who am i
./eclipse & 加了地址符之后,该程序能在后台运行,不占用控制台
卸载光驱
umount /mnt/cdrom
mount /mnt/cdrom
查看磁盘使用情况
df -[-参数]
比如df -l
df [目录全路径]
查看linux系统分区具体是使用情况
fdisk -l
df -h
find -size +1000000k
linux安装时候,分区是关键
/boot 分区 100m
swap 交换分区 一般是你物理内存的2倍
/ 根分区 尽可能大
shell常用的几种:
shell名称 开发者 命令名称
Bourne S.R.Bourne /bin/sh
C Bill Joy /bin/csh
Kom David /bin/ksh
1.查看目前使用的是哪种shell
env 【该命令可以显示当前操作系统的环境变量】
history 5: 此项说明会显示最近使用的5个命令
!5 :此项说明执行历史编号为5的命令
!ls :此项说明执行最后一次以“ls”开头的命令
tcp/ip协议: tcp,ip,udp,arp,rarp等协议
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命令我们刚才作的设置才生效。
这种方法最底层的修改方法
在linux中,所有的设备都是文件
rpm -qa :查询所安装的所有rpm软件包
rpm -qa | more
rpm -qa | grep x
rpm -q 软件包名:查询软件包是否安装
rpm -q xinetd
rpm -q foo
rpm -q xinetd file bash
rpm -qi 软件包名:查询软件包信息
rpm -ql file
rpm -ql jdk
rpm -qf 文件全路径名,查询文件所属的软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
rpm -qp 包文件名 查询包的信息对这个软件包的介绍
rpm -qp jdk-1_5_0-linux-i586.rpm
rpm -qpi jdk-1_5_0-linux-i586.rpm
rpm -qpl jdk-1_5_0-linux-i586.rpm
安装rpm包
rpm -i rpm包全路径名称:安装包到当前系统
i=install
rpm -ivh rpm包全路径名称:安装包到当前系统提示信息
参数说明:
i = install 安装
v = verbose 提示
h = hash 进度条
rpm -e rpm包的名称
rpm -e jdk
如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息
如:
$rpm -e foo
removing these package would break dependencies:foo is needed by bar-1.0-1
若让rpm忽略这个错误继续卸载(这可不是一个好主意,因为依赖于该软件包的程序可能无法运行)
请使用--nodeps命令行选项。
升级rpm包
rpm -U rpm包全路径名
rpm -U cvs-1.11.2-10.i386.rpm
samba的安装步骤
a.看看是否已经安装了samba
rpm -q samba
b.如有,则删除
rpm -e samba
c.把自己的安装文件,挂载到linux下
mount /mnt/cdrom/
d.把samba开头的文件,拷贝到/home,准备安装
cd /mnt/cdrom/samba* /home
e.开始安装
rpm -ivh samba-common....
rpm -ivh samba-client....
rpm -ivh samba-....
f.创建一个用户
useradd youyou
passwd youyou
g.给youyou设置samba密码
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
smbpasswd youyou
h.启动samba服务
service smb start 启动
service smb stop 停止
service smb restart 重新启动
在windows中下的“搜索程序与文件"中加 //linux的ip地址
hosts deny:设置禁止连接的主机地址
hosts deny = 192.168.2. :意思是说不允许来自192.168.2主机访问此samba服务器的资源
readonly:用于设置共享的资源是否为只读。
read only = yes :允许只读
read only = no : 不仅仅只读,也就是说可以写入
任务调度的使用crontab
设置任务调度文件:/etc/crontab
1.设置任务。
crontab -e
2.每隔一定时间去执行 date > /home/mydata1
希望每天凌晨2:00去执行 date >> /home/mydate2
如: 5 * * * * ls -l /etc/ > /tmp/to.txt
意思说每小时的第五分钟执行 ls -l /etc/ > /tmp/to.txt 命令
3.怎么去调度多个任务?
1)在crontab -e 中直接写
2)可以把所有的任务。写入到一个可执行文件(shell编程)
终止任务调度
crontab -r :终止任务调度
crontab -l :列出当前那些任务调度
进程。
进程就是正在执行的程序
线程
(1)轻量级的进程
(2)进程有独立的地址空间,线程没有
(3)线程不能独立存在,它是由进程创建,(fork)thread
(4)相对讲,线程耗费的cpu,和内存小于进程。
mysql数据库的安装
(1)cp mysql-* /home/
(2)解压缩 tar -zxvf 文件名.tar.gz
改名 mv *** mysql
(3)继续安装
groupadd mysql (创建mysql组)
useradd -g mysql mysql (创建mysql用户,并放入mysql组)
进入到mysql的文件夹。
scripts/mysql_install_db --user=mysql
chown -R root . (修改文件的所有者)
chown -R mysql data (修改data文件夹的所有者)
chgrp -R mysql . (改变用户组)
启动mysql
bin/mysqld_safe --user=mysql & [以后台方式启动]
检查一下,ok,正常启动
如何进入mysql
cd bin
./mysql -u root -p 回车
如果希望在任何一个目录下都可以进入mysql
则需要在/root/.bash_profile中添加路径。
(4)如何使用命令行来备份和恢复mysql数据库
备份:mysqldump -u root -p密码 数据库名> /home/data.bak
进入mysql的bin目录:./mysqldump -u root -p spdb1 > /home/myspdb1
恢复:mysql -u root -p密码 数据库名 < data.bak
在恢复数据库的时候,你需要建立一个空数据库,