Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
吉祥物:企鹅
主要发行版本:redhat ubuntu(乌班图),redhat又引申出两个,一个是redhat一个是centos的,而现在广泛被使用的就是centos的
Linux | Windows | |
---|---|---|
收费 | 一般免费 | 收费 |
安全性 | 高 | 容易被攻击,经常打补丁 |
使用习惯 | 需要一定的学习成本 | 外行或者初学者最爱 |
可定制性 | 定制性十分的强 | 一般没有定制性可言 |
应用场景 | 服务器层面 | 桌面操作系统层面 |
Linux的文件系统采用的是一个树状的目录结构,由/作为根目录,然后在此目录下创建新的目录,在我们的Linux中,任何事物都是由文件组成
是binary的缩写,一般是存放着一些常用的命令
s是super User的意思 这里指的是存放着系统管理员使用的系统管理程序
存放的是普通用户的主目录,但是一般我们放东西,都在home下放
一般是系统管理员目录
存放着启动Linux的一些核心的文件(别改)
虚拟映射(别动)
服务启动需要提取的数据(别动)
相关系统文件
临时文件
设备管理器:将硬件映射成文件了,你看看里面有没有cpu和disk相关的目录
自动识别的设备,并把它挂载在这个目录下面,比如你查个u盘
让用户临时挂在别的文件系统的
给主机安装额外软件的目录
另一个给主机安排额外软件的目录
一般放日志文件的,就是一些有着自动增长的一些文件
安全子系统
学Linux最重要的就是学相应的命令
显示当前目录的绝对路径
显示当前所有的文件和目录
选项:
切换到指定的目录
绝对路径方式 以/开头的 从根目录开始找。
相对路径方式 以../开头的 从当前工作目录开始找
cd ~或者cd空格 回到自己的家目录 你如果是root用户就是切到root
cd..就是切换到上一级目录
cd /home 绝对
cd ../xxxx 相对
创建目录
mkdir xxxx 创建一级目录 比如说你在home下mkdir cc是行的,但是你mkdir cc/ccc/cccc 就不行了,因为里面包含着多个不存在的文件夹,他就创不了了。
mkdir -p xxxx 这个你mkdir cc/ccc/cccc 就能执行,因为他是多级目录的创建
删除空目录 注意必须的是空的目录 如果不是空的就会失败
删除一个文件或者目录。注意如果目录里面有东西 就要加参
rm -rf xxx 删除某个文件夹及以下的所有文件
rm -rf * 删除当前目录下所有文件(慎用)
rm -rf /* 恭喜,系统所有文件都被你删了(禁用)
创建空的文件,包括后缀名。这个和我们widows有大的不同。windows一般是指定文件类型创建,但是linux是你创建文件,加后缀名
touch a.txt
拷贝文件到指定的目录
cp a.txt cc
cp -r cc dd
移动或者重命名
mv a.txt d.txt 重命名
mv cc/a.txt dd 一定
只读形式查看文件
cat a.txt
cat -n a.txt
cat -n a.txt |more 分页展示 窗口的大小进行分页显示
是一个基于vi编辑器文本的过滤器,以全屏方式按页显示文本内容
more 要查看的文件
more xxx
操作键 | 功能 |
---|---|
空格 | 向下翻一页 |
回车 | 向下走一行 |
q | 离开 |
ctrl+f | 向下滚动一屏 |
ctrl+b | 返回上一屏 |
= | 输出当前行号 |
类似于more,但是比more更加强大,不是一次将整个文件加载之后才显示,而是根据显示加载需要的内容,对于显示大型的文件有这较高的效率
less xxxx
操作键 | 功能 |
---|---|
空格 | 向下翻一页 |
pagedown | 向下走一行 |
pageup | 离开 |
/字串 | 向下找 |
?字串 | 向上找 |
q | 离 |
ls -l >a.txt //将显示的内容覆盖到a.txt 文件如果不存在就创建这个文件
ls -l >>a.txt //追加到文件内容的末尾
输出内容到控制台
echo $path 输出环境变量到控制台
用于显示文件开头部分 默认开头10行
head a.txt
head -n5 a.txt 开头5行
输出文件尾部10行
tail a.txt
tail -n5 a.txt 结尾5行
tail -f a.txt 跟踪文档更新 ,一般用于查看运行日志
find指令将从指令目录向下遍历各个子目录,将满足条件的文件或者目录显示在终端
find /xx -xx xx
-name 是按照名字查找
-user 是按照用户名找
-size 是按照文件大小找
find /home -name a.txt 在home下按照名字叫a.txt的文件
查看执行过的命令
有序号的
执行第五行命令
!8回车
显示时间
查看日历
grep是过滤 参数-n 是显示匹配行以及行号 -i是忽略大小写
|是将前一个命令的结果传给下一个命令处理
cat a.txt |grep -ni abc 在a.txt中过滤出abc 并显示行号 并且忽略大小写
压缩与解压 针对于.gz文件
压缩与解压 针对于.zip文件
zip -r 压缩目录
unzip -d /aaa bbb.zip 将bbb压缩文件压缩到aaa中
打包文件,打包后文件类型.tar.gz
tar 【选项】 【打包后名字】【 打包内容】
tar -c 建立新的备份文件
tar -v 显示详细信息
tar -f 指定压缩后文件名
tar -z 打包后同时压缩
tar -x 解包.tar文件
一般用法
tar -zcvf a.tat.gz /home 打包
tar -zxvf a.tat.gz 解压
编辑文件
按i进入编辑模式
esc离开编辑模式
:进入命令模式
:wq 保存并退出
:q! 不保存退出
:q 退出
shutdown -h now 即刻关机
shutdown -h 1 1分钟后关机
shutdown -r now 立即重启
halt 关机
reboot 重启
sync 将内存数据同步磁盘
重启关机是应该先sync一下
应该少用root登录 先用普通用户登录在su root 切换身份,因为root可以做好多有关重要系统设置的事,所以一般别登
注销用户
useradd 【xxx】 用户名 添加用户
useradd xxd 添加小兄弟用户 并且 home下会自动生成xxd目录
useradd -d /home/xxxd 添加小兄弟用户 并且 home下会有生成xxxd目录,xxd目录就不会生成了
useradd -g 用户组 用户名 增加用户是直接加上组
usermod -g 用户组 用户名
给用户设置密码
passwd xxd 回车后输入新的密码
userdel xxd 删除xxd
id root 查询root信息 uid是用户id号 gid 组id号 组 组名
切换用户 等级由高到底不用输密码,由低到高要输密码
su root
查看所有的组
groupadd 组名 加组
groupdel 组名 删除组名
一般谁创建了文件,谁就是文件的所有者
ls -al 能查出谁是所有者
1、第一组为“拥有者的权限”,第二组为“同用户组的权限”,第三组为“其他非本用户组的权限”。 2、第二列表示连接占用的节点(i-node) 3、第三列表示这个文件或目录的“拥有者” 4、第四列表示拥有者的用户组 5、第五列为这个文件的大小 6、第六列为这个文件的创建日期或者是最近的修改日期 7、第七列为这个文件的文件名:如果文件名前面有.说明是隐藏文件。如果只输入ls 前面加.的文件不会显示出来。ls -al则会显示出全部文件。
chown 用户名 文件名
chowm xxd a.txt
-rw-r--r-- 1 root root 0 11月 25 11:23 a.txt
0(d,-,l,c,b)
"-"普通文件
“l”是链接文件,相当于windows的快捷方式;
“b”是块设备,硬盘就是一个例子;
“c”是字符设备文件,鼠标,键盘算是;
“d”是目录文件,相当于windows的文件夹。
1-3所有者的权限
4-6 所属组的权限
7-9其他人的权限
rwx-
r是读
w是些
x是执行
-是没有权限
u:所有者 g:所有组 o:其他人 a:所有人(o+g+u)
chmod u=rwx,g=rx,o=x 文件名 赋值权限
chmod o+w 文件名 加权限
chomd a-x 文件名 减权限
r=4 w=2 x=1
chomd 755 文件名
chomd 777 文件名
man ls
help cd
英文能力差别,建议直接百度
显示进程
ps -aux
-a 显示当前终端所有进程信息
-u 以用户的格式显示进程
-x 显示后台运行的参数
ps -ef 以全格式显示当前所有的进程
-e 显示所有的进程 -f全格式
ps -ef |grep xxx 查找具体进程
kill -9 进程号 强制杀死某进程
killall 杀死所有进程 (别玩)
查看网络详情
ping http://www.baidu.com 测试网络是否能连上百度
其实还有一个指定固定ip,这个现在不要用,一般运维搞定的事,我们作为开发,一般不去动网络地址这种东西,会影响到其他的环境。会导致地址冲突,一般都是全局性的去设置
服务本质上就是进程,但是一般是在后台运行的,所以又叫做守护进程,比如mysql sshd等
service 服务名 【start、stop、restart、reload、status】开启 停止 重启 重新加载 状态
centos7之后 用systemctl 不用service
1:查看防火状态
systemctl status firewalld
service iptables status
2:暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
4:重启防火墙
systemctl restart firewalld.service
systemctl enable firewalld
service iptables restart
iptables起源于freeBSD的ipfirewall(内核1.x时代),所有规则都在内核中;2.0x后更名为ipchains,可以定义多条规则并串用;现在叫iptables,使用表组织规则链。iptablses按照用途和使用场合,将5条链各自切分到五张不同的表中。也就是说每张表中可以按需要单独为某些链配置规则。例如,mangle表和filter表中都能为INPUT链配置规则,当数据包流经INPUT位置(进入用户空间),这两个表中INPUT链的规则都会用来做过滤检查。
firewalld:Centos7中默认将防火墙从iptables升级为了firewalld。firewalld相对于iptables主要的优点有:firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。
setup回车查看所有服务 使用table键切换
npm手动安装要安装包的
yum自动安装有资源地址就行
具体软件安装一定看人家给的命令流程,不然会极容易出问题
telnet ip port 查看端口的是不是通
查看端口
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令
netstat -pan | grep 8080 后面能看pid
然后 ps -aux | grep pid 就能看到进程程序名
你要觉得被占用了 你就 kill -9 pid