大家好,我是一只学弱狗,记录学习的点点滴滴!
优质文章
优质专栏
XShell和XFTP下载地址,官方免费
小技巧
- 如何切换输入法:
Ctrl+空格
- 如何使鼠标脱离界面至Windows界面:
Ctrl+Alt
- 方向上下键查看以前执行过的命令
帮助指令
man 待查看的指令
,如man ls
help 待查看的指令
,如help cd
关机与重启
shutdown -h now
:立即关机shutdown -h 1
:一分钟后关机shutdown -r now
:立即重启halt
:等价于关机(没试过)reboot
:重启系统(亲测可用)sync
:将内存的数据同步到磁盘上(韩老师强力推荐!)
Vim模式切换及快捷键
- wq 保存并退出
- q 退出(前提,不可修改文件)
- q! 强制退出(可以修改文件,但不保存)
- 复制单行:在一般模式下,将光标停留下要复制的行,按 yy
- 复制多行:在一般模式下,将光标停留下要复制多行的最行一行,按*yy,*为要复制多行的总行数
- 粘贴:在一般模式下,将光标移至需要粘贴的位置,按p即可。
- 删除行:在一般模式下,光标停留在要删除行,按dd即可。
- 删除多行: 在一般模式下,按*dd,原理同复制多行。
- 回到首行和尾行:在一般模式下,按gg可将光标停留在首行,按G可将光标停留在尾行。
- 撤销:在一般模式下,按u。
- 显示行号:在命令模式下,输入
set nu
显示行,输入set nonu
取消显示行。 - 光标移动到指定行:在正常模式下,输入行号,然后按
shift+g
- 查找:在命令模式下,输入
/关键字
。
运行级别
- 0:关机
- 1:单用户(找回丢失密码):可以在开机时进入,单用户运行级别不需要密码就可以进入,从而设置密码。
- 2:多用户无网路服务
- 3:多用户有网络服务
- 4:保留
- 5:图形界面
- 6:重启
inittab 0
,切换运行级别到0,即关机,目前对我来说它最大的作用莫过于找回密码了
下面这四个文件地址记好了,在练习的时候忘了自己创建过哪些组,创建过哪些用户,都可以进入查看
- 用户配置文件地址
/etc/passwd
- 用户组配置文件地址
/etc/group
- 口令配置文件地址
/etc/shadow
- 用户级别配置文件
/etc/inittab
文件目录
pwd
查看当前所在位置的绝对路径ls [选项]
显示当前位置的目录和文件情况,如ls -a
显示所有目录,包括隐藏文件(在Linux中,隐藏文件以.开头);ls -l
以列表形式显示目录和文件情况。多个选项可以并列使用,如ls -al
cd ~
或cd
回到当前用户的家目录,cd..
回到当前位置的上一级目录mkdir [选项] 路径
创建一个文件夹,如mkdir /home/tiger
或mkdir apple
,如需创建多级目录,mkdir -p 路径
,如mkdir -p animal/dog
rmdir 路径
删除路径下的空文件夹,不能用来删除文件touch 路径/文件名
指令路径下创建文件,如touch /home/animal/HelloWorld.java
,可以连续创建多个文件touch a.txt b.txt
cp [选项] 源文件夹或文件 目的文件夹或文件
,选项部分-r
可以递归的复制整个文件夹。如cp -r /home/animal/ ccc
,指令\cp -r 源文件夹或文件 目的文件夹或文件
强制覆盖rm [选项] 目录或文件
删除文件或目录(可以不为空),-r
,递归删除整个文件夹,如rm -r animal
,-f
强制删除不提醒 ,如rm -rf animal
mv 源路径 目的路径
当在同一级目录移动时,可以认为时重复名,如mv a.txt b.txt
cat [选项] 文件
以只读的方式查看文件,-n
显示行号,如cat -n /etc/profile
more 文件
基于Vim编辑器的文本过滤器,以全屏幕的方式按页显示文本文件内容。空格键:向下翻一页;enter:向下翻一行;q:离开当前显示页面;ctrl+f:向下滚动一屏幕;ctrl+b:向上滚动一屏幕;=:输出当前行号;:f输出文件名和当前行号less 文件
以懒加载的方式查看文件,对大文件的查看有较高效率。空格键:向下翻一页;方向上键:上翻一行;方向下键:下翻一行;q:离开>
输出重定向,可理解为覆盖写,如ls -l > abc.txt
,可以做文件覆盖,如cat ccc.txt > mydate.txt
>>
追加内容,如ls -al >> abc,txt
echo
输出内容到控制台,如echo "HelloWorld"
,查看系统变量echo $PATH
head 文件
显示文件开头部分内容,默认情况下显示文件的前10行内容,如需查看文件头5行内容,head -n 5 /etc/profile
tail 文件
输出文件尾部的内容,默认情况下显示文件的后10行内容,和head类似,但是它有一个新功能,实时追踪文档的所有更新,如tail -f apple.txt
,但ctrl+c
退出ln -s 原文件或目录 软链接名
类似于为一个目录或文件创建一个快捷方式,如ln -s /home/animal ta
,删除软链接rm ta
history
查看已经执行过的指令,如需执行执行第5条指令,!5
时间日期
date
显示当前时间,格式化时间,date "+%Y年%m月%d日 %H:%M:%S"
,设置时间date -s 2020-12-19 -19:09:35
cal
显示本月月份信息,cal 2020
显示2020年月份信息
搜索查找
find 搜索范围 选项
从指定目录向下递归地遍历各个子目录,将满足条件的文件或者目录显示在终端。-name 文件名:按照指定的文件名查找,如find /home -name apple.txt
;-user 用户名:查找属于指定用户名的所有文件,如find /home -user root
;-size 文件大小,按照指定的文件大小查找文件,如find /home +size 20M
,其中+表示大于,-表示小于,不加任何符号就是等于。locate 文件名
利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位,使用之前,应创建好locate数据库,updatedb
,查找文件locate hello.txt
grep [选项] 查找内容 源文件
如grep profile /etc/profile
,选项-n
可显示匹配行及行号,如grep -n profile /etc/profile
,当需要忽略字母大小写时,可以使用选项-i
,如grep -i H ccc.txt
|
表示将前一个命令的处理结果传递给后面的命令处理,如cat /etc/profile | more
压缩解压缩指令
gzip 文件
压缩文件,如gzip apple.txt
,注意压缩后源文件消失,当压缩多个时,如gzip HelloWorld.java hello.txt
,会压缩成两个压缩文件,并不会合并到一起gunzip 文件
解压文件,如gunzip apple.txt.gz
,解压多个文件时,gunzip hello.txt.gz HelloWorld.java.gz
zip [选项] 压缩文件名 需要压缩的文件
,如zip myHello.zip ccc.txt
,将ccc.txt文件压缩成为myHello.zip,注意,压缩后ccc.txt文件不会消失。如需压缩多个文件,zip my.zip ccc.txt hello.txt
,将ccc.txt文件和hello.txt文件压缩至my.zip。如需压缩整个文件及其所有字文件夹时,选项部分可用-r
,如zip -r fu ddd
unzip -d 解压后的目录 压缩文件
,如unzip -d /home/yasuo 解压文件
tar [选项] 压缩文件名
需要压缩或解压的文件,当需要压缩时,如tar -zcvf Hello.tar.gz HelloWorld.java HelloWorld.txt
,此方法在压缩时,原来文件不会消息且或压缩文件的所有子文件夹,对于选项-c:产生.tar打包文件;-v:显示详细信息;-z:打包同时压缩,-f:指定压缩文件后的文件名,一班放最后。放需要解压时,tar -zxvf 压缩文件名 -C 压缩路径
,命令-x:表示解压文件,注意加-C,否则会失败,如tar -zxvf myhome.tar.gz -C ./
用户和用户组管理
useradd [-d 指定家目录] 用户名
默认是在/home下创建一个新的,若指定家目录,则该目录不应创建,由该指令自动创建userdel [-r] 用户名
,如存在选项-r
,则删除此用户的家目录id 用户名
查看用户信息whoami
查看当前登录的用户passwd 用户名
指定密码su - 用户名
切换用户,通过exit
切换回原来的用户logout
注销当前用户groupadd 组名
创建组groupdel 组名
删除组useradd -g 用户组 用户名
添加用户时指定用户组usermod -g 用户组 用户名
修改用户的用户组
权限管理
- 查看文件的信息
注:除用户的所有者和所在组的用户外,系统中其他的用户都是文件的其他组
注:文件的初始所有者和所在组即创建本文件的所有者和所有者所在的用户组
- 文件类型:-:普通文件、d:目录、b:区块设备文件,如硬盘与软盘、c:字符设备文件,如键盘、鼠标、s:数据接口文件,套接口文件、l:软链接文件
- 重点:rwx作用到文件,r表示可查看,w表示可修改,但是不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限才可删除,x代表可执行。rwx作用到目录,r代表可查看目录内容,w代表可修改,即创建、删除和重命名等,x代表可进入该目录。
chown 用户名 文件名
或chown 用户名:用户组 文件名
,修改文件的所有人,如chown jack HelloWorld.java
或chown root:root HelloWorld.java
,若是文件,-R
使其下所有子文件递归生效,如chown - R jack a
或chown -R root:root a
,R必须大写chgrp 组名 文件名
,修改文件所在组,如chgrp bandit HelloWorld.java
chmod 权限 文件或目录
,方式一:通过+ - =
来变更权限,如chmod u=rwx,g=rx,o=x HelloWorld.java
,chmod o+w a.txt
,chmod a-x a.txt
,其中u代表所有者、g代表所有组、o代表其他人、a代表所有人,=赋值权限、+添加权限、-删除权限。方式二: 通过数字变更权限,r=4、w=2、x=1,如chmod 700 a.txt
定时任务
crontab 选项
,-e
:编辑定时任务,如*/1 * * * * ls -l /etc/ >> /tmp/to.txt
,每小时的每分钟执行ls -l /etc/ >> /tmp/to.txt
;-l
:查询定时任务、-r
:删除当前用户所有的任务。- 占位符
*
的含义。第一个*
:一小时的第几分钟(0-59);第二个*
:一天当中的第几小时(0-23);第三个*
:一个月的第几天(1-31);第四个*
:一年当中第几个月(1-12);第五个*
:一周当中的星期几(0-7); *
代表任何时间,比如第一个*
就代表一小时每分钟都执行一次。,
代表不连续的意思,比如0 8,12,16 * * *
就代表每天的8点0分,12点0分,16点0分都执行一次命令。-
代表连续的时间范围,比如0 5 * * 1-6
,代表在周一到周六的凌晨5点0分执行命令。*/n
,代表每隔多久执行一次。
网络配置
- NAT网络配置指南(我的辛酸经历)
service network restart
重启网络服务
进程管理
-
ps 选项
,-a
:显示当前终端的所有进程信息,-u
:以用户的格式显示进程信息,-x
:显示后台进程运行的参数,如使用ps -aux|grep sshd
查看sshd的进程信息。 -
属性说明
补充:STAT指进程状态,其中S表示睡眠,s表示该进程是会话的先导进程,N表示进程拥有比普通优先级更低的优先级,R表示正在运行,D表示短期等待,Z表示僵死进程,T表示被跟踪或被停止等。 -
ps -ef
,以全格式显示当前所有进程,-e
显示所有进程,-f
全格式,该命令可用来查看父进程,如ps -ef | grep sshd
,查看sshd的父进程
-
kill 进程号
通过进程号杀死进程,若要强制杀死该进程,则用kill -9 进程号
-
killall 进程名
,通过进程名杀死进程 -
pstree [选项]
可以更直观的查看进程信息,-p
:显示进程的PID,-u
:显示进程的所属用户
服务管理
-
service 服务名 [start|stop|restart|reload|status]
,如查看当前防火墙的状态:service iptables status
,在CentOS7.0后,不再使用service
,而是systemctl
-
可以通过
telnet
查看测试某个端口,如telnet 192.168.1.100 22
-
查看系统服务,可以通过
setup
命令,也可以在/etc/init.d
目录下查看(CentOS7.0后版本此命令看不到) -
开始流程:
开机->BIOS->/boot->init进程->运行级别->运行级对应的服务
-
chkconfig
命令可以给每个服务的各个运行级别设置自启动,chkconfig --list | grep sshd
或者chkconfig sshd --list
,查看sshd服务在各个运行级别下的自启动情况,chkconfig --level 5 sshd on/off,设置在运行级别5下sshd服务的自启动状态,重启机器后生效。注意:在CentOS7后已经不使用 -
top
指令动态监控进程信息,在交互模式中可以执行u
:查看指定用户的进程信息,k
:输入终止进程的PID,N
:以PID排序,M
:以内存的使用率排序,P
:以CPU使用率排序,默认此项,q
:退出 -
top -d 秒数
,指定top命令每隔几秒更新,默认是3秒 -
netstat -anp
,查看所有的网络服务
RPM与YUM
rpm -qa
:查询所安装的所有rpm包,rpm -qa | grep firefox
,查看是否安装firefoxrpm -q 软件包名
:查询软件是否安装rpm -qi 软件包名
:查询软件包信息rpm -ql 软件包名
:查询软件包中的文件rpm -qf 文件全路径名
: 查询文件所属的软件包rpm -e RPM包名称
:卸载rpm包,rpm -e --nodeps 软件包名
:强制删除rpm -ivh RPM包全路径名称
:安装rpm包yum list|grep 软件名
:查询yum服务器是否有需要安装的软件yum install 软件包名
:下载安装
CentOS7
firewall-cmd --list-ports
查看已经开放的端口firewall-cmd --zone=public --add-port=8080/tcp --permanent
开放端口systemctl start firewalld
开启防火墙systemctl stop firewalld
关闭防火墙firewall-cmd --state
查看防火墙状态