1、Linux操作系统分类
RHEL ( Redhat enterprise Linux) :红帽企业版Linux
CentOS :社区企业版Linux ,属于红帽公司
Fedora :红帽公司发布的桌面版系统套件,基于rhel进行研发
openSUSE:源自德国的一款Linux
Gentoo:可以自己定义
Debain:服务器版Linux
ubuntu :桌面版Linux,基于Debain进行研发
2、Linux安装软件包的几种方式
最早:源码编译 ;
接着出现了:rpm(红帽软件包管理器)
rpm:降低软件的安装难度,通过将安装规则与源代码打包到一起,从而降低我们的安装难度 ;
Yum:通过将大量的常用rpm软件存放在一起,解决软件包之间的依赖关系,进一步来降低软件的安装难度。
3、Linux命令
1)bash\shell 命令构成如下:
命令 参数 对象
ls -l /opt
2)参数分类:
短格式:-字母 -l -s -r ……
长格式:--单词 --all --list --help --sort ……
短格式参数可以合并:-zxfv -an……
长格式参数不能合并,只能分开写
长格式参数和短格式参数也不能合并使用
参数与参数之间,参数与命令之间,参数与对象之间均以空格作为间隔
4、Linux新手必须掌握的命令
第1个命令:man
第2个命令:echo 将信息输出到屏幕
第3个命令:date 查看日期
# date “+%Y-%m-%d %H:%M:%S” #以年月日-时分秒的格式显示时间
第4个命令:reboot
第5个命令:poweroff 关机
第6个命令:wget 下载
第7个命令: ps aux #查看系统进程信息
ps aux 命令的五种进程状态:
R:正在为用户提供服务
S:等待为用户服务
D:不响应系统或在为用户服务
Z:不受系统控制,没有为用户提供进程
T:停止为用户提供服务
第8个命令:top 动态查看进程信息
pidof sshd #查看某个进程的id号
uptime #查看系统负载
第9个命令:last 目前与过去登录系统的用户的相关信息
第10个命令:who 显示目前登录系统的用户信息
第11个命令:history 查看命令的执行记录
!+命令执行序号(该序号去history里边查看) #重复执行该命令
第11个命令:cd
cd ~ : 回到自己的家目录
cd - : 回到家目录
第12个命令:ls
ls -a :查看全部文件(包括隐藏文件)
ls : 查看全部非隐藏文件
ls -al : 查看全部文件的详细信息
第13个命令:cat
cat 文件名 :查看文件
第14个命令:more
more 文件名:查看文件
第15个命令:head
head -n 2 /etc/sysconfig/network-scripts/ifcfg-ens33 #查看网卡配置文件的前两行
第16个命令:tail
tail -n 2 /etc/sysconfig/network-scripts/ifcfg-ens33 #查看网卡配置文件的后两行
tail -f /var/log/messages #实时查看系统日志文件的最新内容
第17个命令:| #管道符
管道符也是用来连接多条命令的,如"命令1丨命令2"。不过和多命令顺序执行不同的是,用管道符连接的命令,命令 1 的正确输出作为命令 2 的操作对象。这里需要注意,命令 1 必须有正确输出,而命令 2 必须可以处理命令 1 的输出结果;而且命令 2 只能处理命令 1 的正确输出,而不能处理错误输出。
[root@localhost ~]# netstat -an | grep "ESTABLISHED"
#查询一下本地所有网络连接,提取包含 ESTABLISHED(已建立连接)的行
#就可以知道我们的服务器上有多少已经成功连接的网络连接
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc-l
#如果想知道具体的网络连接数量,就可以再使用wc命令统计行数
# echo "123456" | passwd --stdin root #修改root密码
[root@shell ~]#
[root@shell ~]# cat sed.txt | wc -l #统计sed.txt有几行内容
4
[root@shell ~]#
第18个命令:wc #统计文件行数
wc -l /etc/sysconfig/network-scripts/ifcfg-ens33 #统计网卡配置文件有几行
第19个命令:stat #显示文件或文件系统的详细信息
stat命令主要用于显示文件或文件系统的详细信息,stat命令的输出信息比ls命令的输出信息要更详细
Linux下的三个时间: 1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间 2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。 3. Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
第20个命令:cut
有时我们经常会遇到这样一些问题:有一页电话号码薄,上面按顺序规则地写着人名、家庭住址、电话、备注等,此时我们只想取出所有人的名字和其对应的电话号码,你有几种方法可以实现呢?
确实这种纵向定位的方式用常规办法难以实现,这时,cut就可以大显身手了
cut 命令可以从一个文本文件或者文本流中提取文本中的列
# cut -d : -f -1 /etc/passwd #显示第一列用户名信息
第21个命令:diff #对比两个文件的差异
diff分析两个文件,并输出两个文件的不同的行。
# diff 1.txt 2.txt
# diff -c 1.txt 2.txt 比较两个文件的不同
第22个命令:touch 创建文本
第23个命令:mkdir 创建文件或目录
# mkdir -p 1/2/3 #递归创建文件或目录
第24个命令:cp #复制文件或目录
cp 源文件名 目标文件名
cp -r 原始目录 目标目录
第25个命令:mv 移动或者重命名
第26个命令:rm 删除文件或目录
rm -f 文件 #强制删除该文件
rm -rf 目录 #强制删除目录
第27个命令:dd 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
dd是一个用于实现文件底层复制的命令
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
dd应用实例:
1.将本地的/dev/hdb整盘备份到/dev/hdd
dd if=/dev/hdb of=/dev/hdd
2.将/dev/hdb全盘数据备份到指定路径的image文件
dd if=/dev/hdb of=/root/image
3.将备份文件恢复到指定盘
dd if=/root/image of=/dev/hdb
详情参见博文:https://www.cnblogs.com/fantasyxo/p/10519662.html
第28个命令:tar #压缩和打包的命令
1)压缩
tar czvf 压缩包名称.tar.gz 打包的目录名称
其中 z 表示gzip
tar cjvf 压缩包名称.tar.bz2 打包的目录名称
其中 j 表示bzip2
[root@shell ~]# tar czvf etc.tar.gz /etc #压缩文件
[root@shell ~]# ls etc.tar.gz
etc.tar.gz
[root@shell ~]#
2)解压
tar xzvf 压缩包名称.tar.gz
[root@shell ~]# tar xzvf etc.tar.gz #解压文件
第29个命令:unzip #对以.zip结尾的压缩文件进行解压
unzip xxx.zip #解压该文件
第30个命令:zip #对某个文件进行压缩
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip
1. 把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata #压缩mydata目录
2. 把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
zip -r abc123.zip abc 123.txt
第31个命令:grep 命令
grep 关键词 文件名称
grep 用来提取某个关键词的行
# grep disabled /etc/selinux/config #搜索关键词disabled
# grep -n disabled /etc/selinux/config #搜索并显示关键词存在的行
# grep -v disabled /etc/selinux/config #搜索所有不包含该关键词的行
第32个命令:> 重定向,覆盖清空原来的内容
输入重定向:<
输出重定向: >
[root@shell ~]# > 1.txt #覆盖原来的文本内容
[root@shell ~]# ls -l /etc/passwd > 1.txt
[root@shell ~]# cat 1.txt
-rw-r--r-- 1 root root 1027 Jul 13 10:55 /etc/passwd
[root@shell ~]#
第33个命令:>> 追加,写入文本最末尾
[root@shell ~]# ls -l /etc/selinux/config >> 1.txt #追加用法
[root@shell ~]# cat 1.txt
-rw-r--r--. 1 root root 544 Jun 29 08:40 /etc/selinux/config
[root@shell ~]#
第34个命令:* 通配符
[root@shell ~]# ls /dev/sd* #模糊匹配
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3
[root@shell ~]#
第35个命令: Linux常用转义字符
反斜杠(\): 使反斜杠后面的一个变量变为单纯的字符串 ;
单引号(' '):转义其中所有的变量为单纯的字符串 ;
双引号(" "):保留其中的变量属性,不进行转义处理 ;
反引号(` `):把其中的命令执行后返回结果。
先定义一个名为PRICE的变量并赋值为5,然后输出以双引号括起来的字符串与变量信息:
[root@root ~]# PRICE=5
[root@root ~]# echo "Price is $PRICE"
Price is 5
接下来,我们希望能够输出“Price is $5”,即价格是5美元的字符串内容,但碰巧美元符号与变量提取符号合并后的$$作用是显示当前程序的进程ID号码,于是命令执行后输出的内容并不是我们所预期的:
[root@root ~]# echo "Price is $$PRICE"
Price is 3767PRICE
要想让第一个“$”乖乖地作为美元符号,那么就需要使用反斜杠(\)来进行转义,将这个命令提取符转义成单纯的文本,去除其特殊功能。
[root@root ~]# echo "Price is \$$PRICE"
Price is $5
而如果只需要某个命令的输出值时,可以像`命令`这样,将命令用反引号括起来,达到预期的效果。例如,将反引号与uname -a命令结合,然后使用echo命令来查看本机的Linux版本和内核信息:
[root@root ~]# echo `uname -a`
Linux root.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2017 x86_64 x86_64 x86_64 GNU/L
第36个命令: alias 别名
[root@shell ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@shell ~]#
第37个命令: du 显示文件或目录所占用的磁盘空间
命令格式:
du [option] 文件/目录
-h 输出文件系统分区使用的情况,例如:10KB,10MB,10GB等
-s 显示文件或整个目录的大小,默认单位是KB
写法的区别:
du -sh xxx #显示总目录的大小,但是不会列出目录中的每一个文件
du -sh xxx/* #列出xxx下每个目录和文件所占的容量
第38个命令:vi/vim Linux编辑器
vi 编辑器的三种模式:
命令模式i a o Esc
输入模式
末行模式
i a :编辑
o :将光标移动到下一行
yy : 复制某一行内容
p : 粘贴内容
dd :删除
u :还原,撤销之前的操作
wq :保存退出
wq! :强制保存退出
q :退出
q! :退出
/ :搜索
: set nu 显示行号
: set nonu 取消显示行号
删除光标处以下两行(包括光标所在的这行):2dd
第39个命令:lsb_release 显示发行版本信息
LSB是Linux Standard Base的缩写, lsb_release命令 用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。
[root@shell ~]#
[root@shell ~]# lsb_release -a #显示全部信息
第39个命令:lsblk 列出块设备信息
lsblk命令 用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。
[root@shell ~]#
[root@shell ~]# lsblk