基于centos下的Linux学习

本文全面介绍了Linux系统中的各种实用命令,包括文件操作、系统管理、网络配置、软件安装、任务调度、性能监控等核心功能。从基本的文件创建、查看到复杂的系统启动流程解析,再到LAMP环境搭建和防火墙规则设定,是一份详尽的Linux命令指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用命令

touch filename.suffix                               ---创建文件

more filename                                         ---看文件,一次一屏

less                                                          ---看文件 /查找 n向下查找 N向上查找

tali -5 filename                                         ---直接显示后5行

head -3 filename                                      ---直接显示前3行

find /  -name filename                              ---按文件名查找,从根目录开始

         -user user                                        ---按用户查找

        -size size                                          ---按大小查找

(例子:find / -name filename -exec cat {} \; 查找到文件后执行输出内容命令)

which/whereis file                                      ---一般用来查命令

locate file                                                  ---查找普通文件,默认一天更新一次,新建立的文件,

                                                                     需要先输入updatedb命令,再查找

ls >路径                                                     --- >输出重定向

ls >>路径                                                   --- >>追加

例子 ls 1>路径                                           ---1是正常输出重定向

            2>/dev/null                                     ---2是错误重定向

df                                                                ---查看已挂载的硬盘

fdisk                                                            ---查看所有硬盘,也可进行分区

mkft -t ext4 diskname                                 ---格式化硬盘

mount 挂载的地方 要挂载的硬盘               ---挂载硬盘

                                                                       (所有硬盘都会出现在/dev下,有的没有挂载)

unmount 挂载的硬盘                                  ---用于卸载挂载点

 

设置自动挂载硬盘


编辑/etc/fstab,在最后一行加上
挂载的硬盘 挂载点 类型 defaults 0 0

 

设置网络


vi /etc/selinux/config 文件里的selinux关闭
vi /etc/sysconfig/network-scripts/ifcfg-eth0(centos7中是ifcfg-ens33)

(要设置成动态获取IP的话) 
ONBOOT=yes  
BOOTPROTO=static (要设置成静态IP的话)
NETMASK=255.255.255.0 
IPADDR=X.X.X.X 
GATEWAY=X.X.X.X 
DNS1=8.8.8.8

service network restart    --- 重启网卡

nmtui                               ---界面化设置ip地址命令

host 域名                         ---查看域名主机的ip地址

nslookup 域名                  ---查看域名对应的IP

netstat -a                         ---查看网络的一些信息

netstat -tnlp |grep 服务名 ---查看服务的信息

 

文件权限


-用户 用户组 其他(user group other)
-rwxrw-r--
r 读权限 4
w 写权限 2
x 执行权限 1

修改用户权限(=是直接修改权限,+是增加权限,-是去除权限)

chmod 777 ProgramName

            <==> 

chmod a+rwx ProgramName

            <==> 

chmod ugo=rwx ProgramName

隐藏权限

suid chmod 4777 文件 ---4代表suid,suid文件的所有者

sgid chmod 2755 目录 ---2代表sgid,sgid目录的所有组

sbit chmod 1777 目录  ---1代表sbit,sbit目录下的文件只能被所有者操作

给用户加root权限

/etc/sudoers下添加用户

实例:
将所有文件夹权限改为755,文件改为644

chmod -R 644 路径
find 路径 -type d -exec chmod 0755 {} \;

 

 

快捷方式(软链接)


在任何地方都可以直接使用文件全名即可使用

ln -s filepath /usr/bin/filename

 

 

打包文件


zip

zip 打包后的文件名 要打包的文件      ---打包文件

zip -r 打包后的文件名 要打包的文件   ---打包文件夹(不加-r只打包文件夹,不打包里面的内容)

unzip 要解包的zip包                            ---解压zip包

bzip2/gzip

gzip、bzip2一次只能压缩一个文件

bzip2 要打包的文件                            ---bzip2打包文件

bzip2 -d 以bz2为后缀的文件               ---bzip2解包

gzip 要打包的文件                               ---gzip打包文件

gzip -d 以gz为后缀的文件                    ---gzip解包

tar

-j bzip2

-z gzip

-f 设置文件名

-c 新建打包文件

-x 解包

-v 显示执行过程

-t 查看保重内容

tar -zcvf 打包后文件 打包源    ---打包文件

tar -zxvf 打包文件                    ---解包文件

 

VI&VIM使用方法


:命令模式
esc键返回一般模式
i 进入编辑模式(i在当前位置插入,I在行首插入,a在下一字符插入,A在行尾插入,o在下一行插入,O在上一行插入)
w 储存
q 退出
dd 剪切
p 向下粘贴
P 向上粘贴
yy 复制
ndd 或 nyy 剪切n行或复制n行

命令模式下

:set nu                                         ---显示行号

:sh                                               ---可以把vim放入后台执行,推到shell中执行命令,按下exit后返回vim

:set tabstop=2                             ---自动缩进

:/word                                          ---查找字符

:n                                                 ---查找下一个

:n1,n2s/search/replace/g            ---从第n1行到第n2行搜索search替换为replace,在/g后面加个c会询问,较为安全

:u                                                 ---撤销执行的操作

:r filename                                   ---导入一个文件内容

:sp                                               ---开启一个新窗口,切换窗口,ctrl+w,松开w后,按上下键

 

账号相关及密码修改


用户相关信息,查看/etc/passwd文件,1000以后是用户自己创建的用户
用户的密码,查看/etc/shadow文件下,经过加密
管理用户组,查看/etc/group文件
组密码,查看/etc/gshadow文件里

groupadd 组名                                                                 ---添加组 

useradd -g 组名 用户名                                                   ---添加新用户到固定组内

useradd -G 组名 用户名                                                  ---添加新用户到附加组

useradd -M 用户名                                                           ---创建用户时不创建家目录

useradd -s /sbin/nologin 用户名                                       ---创建一个不能登录的用户

chgrp 所属组 文件                                                            ---更改文件所有组

chown 所有者:所有组 文件                                             ---更改文件所有者所有组

usermod -G 附加组 用户                                                  ---添加用户的附加组

usermod -L 用户                                                               ---锁定用户

usermod -u 用户                                                               ---解锁用户

userdel 用户                                                                     ---删除用户 加上-r意思连家目录一起删除

find / -nouser -exec rm -ri {} /;                                          ---查找没有用户所有者的目录

chage -r/I/M/m 用户                                                         ---修改用户的权限日期

 

ACL


dumpe2fs -h /dev/sdb1 | grep acl                ---用于查看是否支持acl,不支持的话,在defaults后面

                                                                         加个,acl,一般默认就有acl

setfacl -m u:用户名:rwx 目录                       ---设置用户可以在目录下使用acl

setfacl -m g:组名:rwx 目录                          ---设置组可以在目录下使用acl

setfacl -m m:rwx 目录                                 ---设置mask权限

getfacl 目录                                                 ---得到目录的acl

 

安装软件


wget 链接 下载软件
make clean 清理make配置
修改依赖库配置/etc/ld.so.conf
ldconfig 动态加载到内存

过程

  1. 执行./configure检测GCC编译器,依赖函数库或软件是否已经安装
  2. 当configure检测通过后,生成makefile文件
  3. make根据makefile生成可执行文件(二进制文件)
  4. make install 路径

文件目录

/var/lib 存放数据库软件
/etc 存放配置文件软件
/lib /usr/lib 需要的函数库
/usr/local 可执行文件(一般软件都安装在这)

rpm安装软件

rpm -ivh 软件名 ---安装软件

rpm -e 软件名 ---删除软件

rpm -qa ---查找数据库

rpm -qa |grep -i '软件名' ---查找数据库中的软件

/var/lib/rpm

yum安装软件

yum 服务器放了众多软件

yum install 软件名 ---安装软件

yum erase 软件名 ---删除软件

/var/cache/yum 下载服务器的软件信息

 

任务


pkill -kill -t tty名                              ---踢走一个用户或进程

w                                                    ---查看现在的用户的负载

last                                                 ---查看现在所有用户登录的信息

lastlog                                             ---查看用户的登录信息

write 用户名 tty名                           ---向用户发信息(发完信息要按ctrl+d才能发送出去)

wall 发送的消息                             ---广播消息

计划任务

ps -l                                                     ---查看自己的进程

ps aux                                                  ---查看所有服务进程

ps aux | grep 进程名                            ---查看查询的进程

pstree                                                   ---以树状图查看当前所有进程

kill PID                                                  ---关闭进程

kill -9 PID                                             ---直接删除进程

pkill -9 CMD(名字)                          ---删除进程根据名字

killall -9 -i CMD(名字)                          ---删除进程根据名字有确认框

at 时间 接着输计划执行命令,输完ctrl+D

at -c 任务号                                        ---查看计划任务

at -l                                                     ---查看所有计划任务

at -d 任务号                                        ---删除计划任务

/etc/at.deny 拒绝执行计划任务,里面是用户名

定时任务

crontab -e                                       ---编辑定时任务(最短为1分钟)

crontab -l                                        ---显示任务

crontab -r                                        ---删除任务

vi /etc/crontab                                 使用crontab示例

watch 命令                                      ---每2秒执行一次命令

后台运行任务

让一个任务或者程序在后台执行可以使用&
jobs                                   ---查看当前有多少在后台运行的命令
bg                                      ---将一个在后台暂停的命令,变成继续执行
fg                                      ---将后台中的命令调至前台继续运行
ctrl+z                                 ---可以将一个正在前台执行的命令放到后台,并且暂停

 

top 性能分析工具


PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
Ctrl+L 擦除并且重写屏幕。
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
c 切换显示命令名称和完整命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

 

系统启动流程(centos 6)


1、开源BIOS
2、启动设备(硬盘最其实位置)读取一个小程序MBR boot loader
3、linux内核 Kernel
4、init pid1
5、/etc/rc.sysinit
6、根据/etc/inittab找到启动级别
0-系统停机状态
1-单用户状态
2-多用户状态(没有NFS)
3-多用户状态(有NFS)
4-系统未使用,留给用户
5-图形界面
6-系统正常关闭并重新启动

命令: init 3
或 systemctl set-default multi-user.target/graphical.target
systemctl get-default

7、去相应启动级别的目录/etc/rc5.d当中启动,每一个字线为S的服务
8、执行/etc/rc.d/rc.local
9、用户登录界面

chkconfig --list | grep 程序名
chkconfig --level 345 程序名 on
ntsysv 界面化自动启动服务

 

 

SSH(ssh或22端口关闭,用户不能远程登录)


ssh 用户名@ip地址
ssh 用户名@ip地址 命令
scp 文件 用户名@ip地址:/路径

 

VNC图形远程连接


需要先安装vnc 

客户端需要realvnc传递
server端需要配置/etc/sysconfig/vncservers,在里面加上VNCSERVERS="2:用户名",然后切到用户名的用户账号下,用vncpasswd 用户名 设置用户的vnc密码,开启vnc服务

 

SAMBA共享


先关闭防火墙
配置/etc/samba/smb.conf
创建匿名帐户就在security = usr后面添加map to guest = Bad User
在windows下输入\samba服务器地址即可,提示输入用户名和密码,随便输

设置smb用户

smbpasswd -a 用户名  ---设置smb用户密码 

想要在共享文件夹下可以写入文件,需要在配置文件下添加命令

writable = yes

添加有效用户

valid users = 用户名,用户名

添加有效用户组 

valid users = @组名

设置文件/文件夹权限

create mask = 0644
directory mask = 0755

 

 

防火墙


service iptables stop或
systemctl stop firewalld.service(centos7)  ---关闭防火墙
-L 查看所有规则
-A 追加
-F 清除所有规则
-I 插入
-s 指定来源
-P 默认规则
-D 删除规则
--line-number  显示序号
--dport 目标端口
--sport 源端口
-p 协议  例子:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
ping是使用icmp协议,22是ssh服务的端口,80是http服务的端口
-i 数据包进入的网卡
-o 数据包输出的网卡

accept 接受数据进来
drop 丢弃数据包
reject 阻止数据包

定义规则

规则从上往下匹配,匹配成功就不往下匹配了
iptables -A INPUT -j DROP 屏蔽所有数据包
在文件中写规则
IPT="/sbin/iptables"
$IPT -F
$IPT -P INPUT DROP
...
service iptables restart
保存文件为iptables.sh
加上权限chmod u+x iptables.sh
运行./iptables

三次握手会使用到三个包 new包、RELATED包、ESTABLISHED连接
可以设置防火墙
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

 

 

LAMP环境安装


 Linux

Apache

yum -y install httpd httpd-devel

Mysql

yum -y install mysql mysql-server mysql-devel

PHP

yum -y install php php-mysql php-gd php-mbstring pho-devel

 

伪静态


 rewrite
.代表任意
+代表一个或多个
*代表0个或多个
^代表开始
$代表结束
\转义符

 

FTP


文件传输协议

ftp端口 20,21
20端口 传数据
21端口 命令 

主动模式与被动模式

主动模式

      1、客户端随机开一个>1024端口与服务器FTP服务21端口进行连接

      2、客户端监听端口(>1024与服务器端ftp服务连接的端口) 

      3、服务器20>客户端(>1024端口)发送数据

被动模式

      1、客户端开2个端口(n>1024 n+1)

      2、第一个端口与服务器端21通信

      3、客户端主动通过的第二个端口向服务器端请求数据,服务器端随机开一个大于1024的端口,来相应客户端的连接 

 VSFTP

1、GPL协议的服务器软件
2、非常安全,基于ssh
3、非常快,单台服务器支持15000>的用户连接

安装vsftp

yum -y install vsftpd
window下需要安装客户端filezilla才能登录ftp
设置最大连接数(修改/etc/vsftpd/vsftpd.conf)
max_per_ip = 1
设置最大的下载次数
local_max_rate=20000

 

NTP


找一个服务器,同步硬件时间和软件时间
硬件时间与软件时间

date   ---显示软件时间
date -s 时间    ---设置软件时间
hwclock -r   ---显示硬件时间
hwclock -s   ---将硬件时间同步到软件时间
hwclock -w   ---将软件时间同步到硬件时间
ntpdate server 服务器地址 ---根据服务器的时间进行软件时间同步

注:如果开启ntpd服务,就不能使用ntpdate命令了,只能二选一

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值