一:linux介绍
1:linux思想源于unix进行开发
2:linux属于开源免费软件,公开内核源代码。而unix属于闭源收费软件。
3:linux可以自由安装,支持绝大部分平台。而unix通常和硬件配套。
4:使用上linux相对简单,unix较为复杂
5:linux也有商业化的版本,比如RedHat,SuSe,红旗等。
二:组成部分
内核:系统的心脏部分,主要含有运行和管理硬件的相关核心程序。
shell:用户与核心程序进行交互觉得接口,将用户数据的指令送入内核执行,作为一个命令解释器存在。不仅如此,还作为一门编程语言。
文件系统:文件系统即文件存储在设备上的组织方法,linux的文件系统有ext4和ext3等,并支持其他的文件系统
应用程序:用户安装的用于完善或者扩展系统功能的一套程序。
三:linux的目录结构
bin------存放二进制可执行文件(ls,cat,mkdir等)
boot------存放用于系统引导时使用的各种文件
dev------存放设备文件
etc------存放系统配置文件
home------存放所有用户文件的根目录
lib------存放跟文件系统中的程序所需要的共享库及内核模块
proc------虚拟文件系统,存放当前内存的映射
user------存放系统应用程序,比较重要的目录/user/local管理员软件安装目录
var------存放运行时需要改变数据的文件
mnt------挂载目录
sbin------存储管理级别的二进制执行文件
root------超级用户主目录
opt------委外安装的可选应用程序包安装位置
四:linux的常用功能
linux系统远程登录命令
ssh IP地址 ------登录到对应主机的同一用户
ssh root@ip地址------登录到对应主机的指定用户
CRT用法;
强制退出当前进程:Ctrl+c
保持当前屏幕状态:Ctrl+s(Ctrl+q)
强制退出当前登录:Ctrl+d
五:linux基本功能
1:文件查看
常用命令
pwd------列出当前目录路径
ls或dir------列出当前目录下的文件
ll(ls -l的缩写)------列出当前目录下的wenjian(带文件信息)
ls -a------列出当前目录下的所有文件(包含隐藏文件)
stat 文件名------查看文件信息
ls --help------查看ls用法
文件的颜色含义
蓝色:目录
绿色:可执行文件
红色:压缩文件
浅蓝色:链接文件
灰色:其他文件
2:创建,重命名文件\文件夹
常见用法:
touch filename------创建空文件
mkdir <directory>------创建目录
mkdir -p <directory>------目标目录存在也不报错
mkdir -p xxx/xxx------递归创建目录,在创建目录时可以递归创建目录且目标目录存在也不报错
mv <oldname><newname>------重命名文件夹
3:切换目录
常见用法
cd .------当前目录
cd ..------去上一级目录
cd /------去根目录
cd ~------去当前用户主目录
cd xxx/xxx------直接跳转到某个目录
su - -------用户切换
4:删除文件\文件夹
常见用法
rm------删除文件
rm -r------删除目录,需要确认
rm -f------强制删除文件
rm -rf------递归删除目录及其文件
注意:使用rm命令时要格外小心。因为一旦删除了一个文件,就无法恢复它。
5:复制\粘贴\剪切
常见用法
cp <src> <target>------复制&粘贴wenjian
cp -p <src> <target>------复制&粘贴文件或目录
mv <src> <target>------移动(剪切)文件或目录
cp命令常用选项
-r------复制目录
-f------强行复制文件或目录,不论目标文件或目录是否已经存在。
-i------覆盖既有文件之前询问用户
-l------对源文件建立硬链接,而非复制文件
-s------对源文件建立符号链接(软链接)。而非复制文件。
6:远程复制
scp命令用于在网络中不同主机之间复制文件。scp是有Secunrity的文件copy,基于ssh登录。如果没有配置key登录,需要输入主机密码。
常见用法
从本地复制到远程
从远程复制到本地
scp root@/172.19.2.75:/home/root/*.txt
/home/test
从远程到远程
提示:显示进度在scp后添加-v;复制目录在scp后添加-r
7:链接
软链接功能类似于windows的快捷方式,主要用于节省磁盘空间。linux有两种连接:硬链接,符号链接。
硬链接:
硬链接相当于对原始文件的一个复制,不能对目录使用硬链接。命令如下:
ln test.txt tlink
软链接:
如果想对目录使用软链接,需要添加-s,相当于快捷方式,不能删除原文件。命令如下:
ln -s test.txt vlink
8:文件属性
黑带七段
第一段:
权限
第一个字符代表文件(-),目录(d),链接(I)
其余字符每三个一组(rwx),读(r),写(w),执行(x)
第一组:文件所有者的权限
第二组:于文件所有同一组的用户的权限
第三组:不与文件所有者同组的其他用户的权限
也可以用数字表示为:r=4,w=2,x=1;如:权限6可以表示为r+w=6
第二段:
链接的文件数
第三段:
所属用户
第四段:
所属组
第五段:
文件大小(字节)
第六段:
最后修改时间、
第七段:
文件\文件夹名称
9:修改权限和组
常见用法:
chmod------分配权限,所有者可以使用(u所有者,g所属组,o其他用户,a所有用户)
chmod u+x xxx.txt------给所有者加执行权限
chmod g-x xxx.txt------将所属组去掉执行权限
chmod a=x xxx.txt------给所有用户给予执行权限
chmod 775 xxx.txt------添加rwxrwxr-x权限
chmod -R 775 xxx.txt------递归添加rwxrwxr-x权限
chown - 分配所有者及所属组,root权限可以使用
chown superman:crxy xxx.txt------分配文件给superman用户
chown -R superman:crxy xxx.txt------递归分配文件给superman用户
chgrp -分配所属组,root权限可以使用
chgrp superman xxx------指定用户组
chgrp -R superman xxx------递归指定用户组
10:组管理
常见用法:
id:查看显示当前登录账户的uid和gid及所属分组及用户名。
groups ------查看所属组
groups username------查看当前用户所属哪个组
usermod------修改用户属性,root权限可以使用
usermod -g group1 loginname------强行设置某个用户所在组
usermod -G group2 loginname------
给用户group2
usermod -I newuser olduser------修改用户名(不能在线)
usermod -L loginname------锁定用户
usermod -U loginname------解除用户锁定
11:内容查看
正序和反序输出cat\tac
cat------显示文本内容,类似windows中的type(顺序输出)
tac------显示文本内容(cat的倒序输出)
cat file1 file2 >file3------文件合并
cat -b------显示行号输出
cat -A或者cat -vET------v使用^和M符号显示除了Tab外的;E在每行结束出显示$;T将跳格字符显示为^|
分屏显示more
用一次显示一屏,没有显示完时最后一行显示进度。回车显示下一行,按b显示上一页,空格显示下一页,q退出。
12:压缩,解压
常见用法:
tar -cvf------尽打包不压缩
tar -zcvf------打包及压缩(gzip方式)
tar -zxvf------解压(gzip包)
tar -jcvf------打包及压缩(bizp2方式)
tar -jxvf------解压(bzip2方式)
tar -tvf------查看压缩内容(需要根据不同的压缩算法查看)
参数:
-c------创建一个压缩文件的参数指令(create的意思)
-x------解开一个压缩文件的参数指令
-t------查看tarfile里面的文件
-z------是否同时具有gzip的属性?亦是否需要用gzip压缩?
-j------是否同时具有bzip2的属性?是否需要用bzip压缩
-v------压缩的过程中显示文件
-f------使用档名,在f之后直接跟档名!
注意:特别注意,在参数下达中,c/x/t仅能存在一个!不可同时存在!
13:文件大小查看
可以是使用du命令统计文件和目录占用磁盘空间的情况。
命令选项:
a------显示全部目录和其次目录下的每个档案所占的磁盘空间
c------最后再加上总计(默认值)
s------只显示各档案大小的总合
h------按照人们习惯方式显示
常用操作:
du -a------统计全部目录及其子目录下的每个档案所占的磁盘空间
du -h------统计全部目录及其子目录所占的磁盘空间
du -ch <dir>------统计对应目录及子目录所占空间并添加total
du -sh <dir>------直接统计大小
14:vi编辑器
vi&vim
安装完成的linux系统通常都带有vi编辑器,但是不一定带有vim。vim作为vi的升级版。
vim总共有三种模式:命令模式,插入模式,末行模式。
命令行模式
主要功能有删除,替换,撤销。
dd------删除所在行
r------替换一个字符
u------撤销修改
x------删除指定字符
yyp------复制
ddp------剪切
切换到插入模式
i------在光标左侧输入正文
I------在光标所在行首输入正文
a------在光标右侧输入正文
A------在光标所在行的行尾输入正文
o------在光标所在行的下一行增加新行,光标位于新行的行首
O------在光标所在行的上一行增加新行,光标位于新行的行首
末行模式
保存,查找。
wq------保存文件,退出vi编辑器
w------保存文件、
q------退出vi编辑器
q!------不保存文件,退出vi编辑器
ZZ------保存文件,退出vi编辑器
15:管道
使用grep能够不启动编辑器就可以运行查找匹配,通过不同设置,输出方式灵活,输出后不影响原文本文件的内容。并且可以将文本中符合条件的文本显示出来或者作为另外一个操作的标准输入。
常见用法:
grep hadoop test.txt------输出test.txt文件中含有hadoop的行(区分大小写,包含空格必须加引号 )
grep -i Hadoop test.txt------输出test.txt文件中包含hadoop的行(忽略大小写)
grep正则表达式元字符集
^------锚定行的开始,如:'^grep'匹配所有以grep开头的行。
$------锚定行的结束,如:'grep $'匹配所有以grep结尾的行
.------匹配一个非换行的字符
*------匹配零个或者多个先前的字符
[]------匹配一个指定范围内的字符
[^]------匹配一个不在指定范围内的字符
\(..\)------标记匹配字符
\------锚定单词的开始
\<------锚定单词的开头
>\------锚定单词的结束
x\{m\}------重复字符x,m次
x\{m,\}------重复字符x,至少m次
x\{m,n\}------重复字符x,至少m次,不多于n次
\w------匹配文字和数字字符,也就是[A-Za-z0-9]
\b------单词锁定符
16:统计
wc主要用来计算文件的字数,字节数,行数。
wc -l------计算文件的行数
wc -c------计算文件的字符数
wc -w------计算单词数
wc------行数,单词数,字符数一起显示(显示顺序为行,单词,字符)
17:查找
find命令有很多选项或表达式,每一个选项前面跟随一个横杠-。
用法:
find [起始目录][搜索条件][操作]
find命令常用选项:
-name 按照文件名查找文件。
-user 按照文件属主来查找文件。
-type 查找某一类型的文件
诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-exec 命令名{} \ (注意:“}”和“\”之间有空格)
例:find . -name xxx.txt -exec rm {} \;
locate命令
locate 查找指定模式的文件和目录。可以使用正则表达式。
locate查找原理------通过预设的数据库进行搜索,不是在硬盘中逐一搜寻。(数据库一般一天更新一次,夜间进行)。数据库地址为/var/lib/mlocate
执行最新查找时找不到解决办法,可以事先执行updatedb命令。
注意:刚安装完成的操作操作系统执行locate可能会报以下错误
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
解决办法:执行updatedb命令 which命令
which命令
which查找------$PATH中设置命令及安装文件目录所在位置
18:输出及显示
echo
将内容输出到设备,后面可以跟不同变量。echo还可以配合重定向(>> 追加,>覆盖)输出有内容的文本文件。
常见用法:
echo -e "hello\t\t world!"------解析转义字符
echo -E "hello\t\t world!"------不解析转义字符
echo $JAVA_HOME------输出环境变量
export
可以设置或者显示环境变量。
常见用法:
export -p------列出当前的环境变量值
export 变量------临时设置环境变量
19:主机名
hostname命令------用于显示和设置主机名
hostname -i ------显示ip
显示主机名
hostname
临时修改
hostname xxx
永久修改
修改vim /etc/sysconfig/network
HOSTNAME=主机名
20:Hosts文件
什么是DNS?
DNS(Domain Name System ,域名系统),因特网上作为域名和ip地址相互映射的一个分布式数据库,能够使用户方便的访问互联网,而不用去记住能够被机器直接读取的ip数据。
什么是域名解析?
通过主机名,最终得到该主机名对应的ip地址的过程叫做域名解析(或主机名解析)。
Linux下的hosts文件
一般情况下hosts的内容关于主机名(hostname)的定义,每一行为一个主机,每行由三部分组成,每个部分由空格隔开。其中#号开头的行做说明,不能被系统解释。
第一部分:ip地址; 第二部分:域名; 第三部分:主机别名,
修改主机名:访问 /etc/hosts 文件
21:软件安装和卸载
压缩包安装方式
直接解压,配置相应的环境变量即可。
rpm可执行文件
rpm是Red Hat 公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易的实现软件的安装。
常见用法:
rpm -ivh <rpm包名>------安装软件
rpm -e <rpm包名>------卸载安装
rpm -qa | grep xxx------查询软件是否安装(包括相关依赖)
rpm -Uvh <rpm包名>------升级一个rpm
-i, --install------安装包
-v, --verbose------列出更多详细信息,安装进度
-h, --hash------安装时列出hash标记 (与 -v连用)
-e, --erase------卸载安装包
-U, --upgrade=<packagefile>+
升级包
--replacepkge------无论软件包是否已被安装,都强行安装软件包
--test------安装测试,并不实际安装
--nodeps------忽略软件包的依赖关系强行安装
--force------忽略软件包及文件的冲突
Query options (with -q or --query):
-a, --all------查询/校验所有的安装包
-p, --package------查询/校验一个安装文件
-l, --list------列出安装文件
-d, --docfiles------列出所有文档文件
-f, --file------查询/校验安装包中所包含的文件
安装JDK并配置环境变量
rpm包方式
a:执行rpm -ivh jdk.xxx.rpm
b:
配置环境变量:vi /etc/profile
c:
添加如下语句: export JAVA_HOME=xxx/xxx
d:
使得配置生效 source /etc/profile
压缩包方式
a:
解压JDK安装包
b:
配置环境变量:vi /etc/profile
c:
添加如下语句: export JAVA_HOME=xxx/xxx
d:
使得配置生效 source /etc/profile
yum
yum集成了链接网罗 ,软件安装,删除,更新等功能,比rpm好用很多,rpm要求将rpm包下载后才能安装,需要自己辛苦的到网上找,yum在配置好repo后,机器只要联网,就能智能化。使用yum安软件,好处在于可以安装相应的依赖包。
安装
yum install <pkg>------不跟<pkg>则更新全部
升级
yum update <pkg>------不跟<pkg>则更新全部
查找和显示
yum info <pkg>------显示包信息
yum list <pkg>------不跟<pkg>则显示已安装或可安装包
删除程序
yum remove <pkg>
清除缓存
yum clean all------清除所有缓存(包含文件、旧软件)
22:历史
history保留了最近执行的命令记录,默认可以保留1000。历史清单从0开始编号到最大值。
常见用法:
history N------显示最近N条命令
history -c------清除所有的历史记录
history -w xxx.txt------保存历史记录到文本xxx.txt
23:帮助
-help
是一个工具自带选项,可以用来显示一些工具的信息。偏重于对工具选项作用的简单说明。
man
可以显示系统手册页中的内容,这些内容大多数都是对命令的解释信息。这些信息是操作系统文档里面的。如果没有文档,是不会显示这些帮助信息的。偏重于对工具的用法,一般比help出来的要详细。
info
工具包括一些关于Linux Shell工具,GUN项目开发程序说明文档。偏重于对于工具的详细说明。
24:系统状态
使用Linux系统,通常有两个方面的要求:
一是当前系统正在运行什么服务。
二是当前系统哪些链接或服务可用
常用两个命令:
ps------是查看处于活动状态的服务进程。
netstat------还可以显示ps命令不能显示的TCP,UDP以及Unix Socket的信息。
常见用法:
ps -aux|grep xxx------一般跟进程名
netstat -apn | grep 8080------一般跟端口号
查看和结束进程
常见用法:
ps -e------查看所有进程信息(瞬时的)
ps -u root -N------查看所有不是root运行的进程
ps ax------显示所有进程状态状态
ps -ef |grep xxx------显示含有xxx的进程
ps命令选项
ps a------显示现行终端机下的所有程序,包括其他用户的程序。
ps -A------显示所有程序。
ps c------列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e------此参数的效果和指定"A"参数相同。
ps e------列出程序时,显示每个程序所使用的环境变量。
ps f------用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H------显示树状结构,表示程序间的相互关系。
ps -N------显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s------采用程序信号的格式显示程序状况。
ps u------以用户为主的格式来显示程序状况。
ps x------显示所有程序,不以终端机来区分。
netstat 常用命令选项
-s------显示网络工作信息统计表。(网络较慢时)
-e------显示网络其他相关信息。(网络有异常时)
-r------本选项可以显示关于路由表的信息。
-a------显示所有连线中的Socket。
-n------直接使用IP地址,而不通过域名服务器。(查询已建立的连接)
-p------显示正在使用Socket的程序识别码和程序名称。
-t------显示TCP传输协议的连线状况。
-u------显示UDP传输协议的连线状况。
结束进程:
kill pid------杀死进程
kill -9 pid------强制杀死进程
25:防火墙
常用命令选项:
临时
service iptables status------查看防火墙状态
service iptables stop------临时关闭防火墙
service iptables start------打开防火墙
永久
chkconfig iptables off------永久关闭防火墙
chkconfig iptables on------永久打开防火墙
chkconfig --list iptables------查看防火墙状态
防火墙规则
iptables -nL------查看防火墙规则
修改/etc/sysconfig/iptables 文件
26:top
和ps命令一样,作用基本相同,但是唯一的区别就是top命令能够动态的显示进程信息。
top命令的主要作用在于动态显示系统消耗资源最多的进程,包括进程ID,内存占用率,CPU占用率等。
使用q进行退出
命令选项:
-b------批处理
-c------显示命令行,而不仅仅显示命令名称
-i------忽略失效过程
-s------保密模式
-S------累积模式
-u<用户名>------指定用户名
-p<进程号>------指定进程
-H------循环显示的次数
27:其他功能
sudo
改功能作用主要在于普通用户可以使用超级权限,配置方法如下:
#vi sudo 或者 #vi /etc/sudoers
增加:crxy ALL=(ALL) NOPASSWD:ALL
显示硬盘使用情况
使用df命令查看硬盘使用情况
常见用法:df -h
使用fdisk查看磁盘情况(主要用于查看为格式化的盘)
常见用法:fdisk -l
其他命令
who------显示在线登录用户
uname -a或者 cat /proc/version------查看操作系统版本
free------查看内存和交换空间的情况
clear------清屏
28:关机重启
shutdown------关机或重启
halt------关闭系统
rebot------重启
exit------退出