Linux的Shell是一种面向用户的命令接口 以终端或桌面运行窗口的形式展现 Shell命令可以通过后缀为.sh的shell脚本执行 也可以通过shell界面(也被称为命令行)执行
Shell命令格式
Shell命令可由命令名、选项和参数三部分组成,其基本格式如下所示:
命令名 [选项] [参数]
如:find / -name java find是命令名 -name是选项(unix风格的选项以字符'-'开头) / 和 java是参数
关机与重启命令
poweroff #关机
reboot #重启
halt #挂起
shutdown -h now #立刻关机
shutdown -r now #立刻重启
shutdown -c #取消关机计划
文件和目录管理命令
" . "代表当前目录
" .. "代表父目录
touch [文件名] #创建文件
mkdir [文件夹名] #创建文件夹
rmdir [文件夹名] #删除空目录
rm [文件名] #删除文件或目录
rm -f [文件名] #强制删除文件
rm -r [目录名] #递归删除
rm -rf [目录名] #强制递归删除
cp [选项] [源文件或目录] [目标文件或目录] #复制文件
mv [源文件或目录] [目标文件或目录] #剪切文件
由于Linux没有重命名功能,所以只能用mv进行重命名
查看文件内容命令
cat #显示文件内容
-n #显示的时候有行号
more #分页显示 自动退出 不能向上翻
less #分页显示 手动退出 可以上下翻
head #查看开头
tail #查看结尾
-n #指定显示行数
-f #实时变化
wc #文件内容统计
行数 单词数 字符数 文件名
-l #统计行数
echo #输出指定内容
grep 文件内容查找
grep [选项] [参数]
不支持通配符
^表示以什么字符开头
符号$表示以什么字符结尾 ^$表示空白行
-n 显示行号
-v 显示没有这个字符串的
-i ignore忽略大小写
-w 精确匹配单词
-r 递归查询
diff 文件内容对比 a增加 c更改 d删除
stat 查看文件元数据(文件属性)
locate 简单的文件查找命令 需要数据库更新
find 强大的文件查找命令
find [查找起始路径] [选项] [查找条件] [处理动作]
支持通配符
-name 以名字查找
-iname 名字搜索忽略大小写 -empty 搜索空目录
-type 按照类型查找 -size 按照文件大小搜索
-not 取反
按时间戳搜索:
-atime访问时间
-mtime更改时间
-ctime改动时间 以天为单位
若把选项中的time替换为min,则以分钟为单位
-exec 将查找到的文件名作为文件进行后续操作 需要加{} ; 一次性传送
xargs find辅助命令 分批次传送
链接
ln 为文件或目录建立链接
ln [选项] 源文件 目标文件
别名
alias [别名] 设置别名
alias [别名='标准 Shell 命令行']
alias cpw='cat /etc/passwd'
若不带参数,表示展示系统已存在的别名
unalias [别名] 取消别名
历史命令
history 查看历史命令 后接参数可以执行历史命令
-d 删除历史命令
-c 删除缓存中的历史命令
-w 将缓存中的历史命令保存到文件中
-r 将文件中的历史命令读取到缓存中
帮助
--help 查看命令的简要帮助信息
man 查看帮助手册
用户、组管理
uesradd 添加用户
-u 指定用户的UID -d 指定用户的家目录 这个目录最好不存在 -g 指定基本组
-G 指定附加组 -e 指定账号的失效时间 -M 不建立家目录
-s 指定用户登录的Shell
passwd 设置密码
-l 锁住用户
-u 解锁用户
文件打包与压缩
du 查看目录或文件占用磁盘空间的大小
-h 人性化信息
-u 显示子目录所占空间
-s 汇总的信息
unzip 解压zip文件
tar [选项] 打包或压缩后的文件名 需要打包的源文件或目录
例:tar -cvf etc.tar /etc
-z 表示调用gzip来压缩
-j 表示调用bzip2来压缩
-J 表示使用xz来压缩
-x 解包
tar -zxf 压缩文件解包
软件安装
yum
yum list 列出rpm软件包列表
yum repolist 列出yum源
yum info 查看软件包信息
yum install 安装软件包
yum remove 删除软件包(连依赖一同删除)
yum clean all 清除本地缓存
rpm
利用rpm命令安装软件首先必须进入存放rpm软件包的目录
使用rpm -ivh安装软件包
-i 安装软件包 -v显示安装过程 -h 显示安装进度
-ql 查询软件包所安装的文件
-qc 查询软件包所安装的配置文件
-qf 查询某个文件所属的软件包
源码
解包——tar:解包、释放出源代码文件
配置——./configure:针对当前系统、软件环境、配置好安装参数
编译——make:将源代码文件变为二进制的可执行程序
安装——make install:将编译好的程序文件复制到系统中
进程管理
ps 查看进程信息
——————————————————————————
选项:
a 显示与当前终端有关的所有进程
x 显示与当前终端无关的所有进程
u 以面向用户的格式显示进程信息
——————————————————————————
使用jobs可以查看后台进程的信息
fg [编号] 可以让后台进程转到前台
bg 让后台处于停止的进程继续在后台运行
使用kill [PID] 可以终止进程
若进程无响应,可以使用-9选项来强制终止
killall [程序名] 终止程序的所有进程
系统信息
users 显示当前正在登录的用户
who 显示正在登录的用户的信息
w who的升级版,显示的信息更全面
last 查看登录信息
ps aux | grep pts/0 查看终端运行的进程
uptime 查看CPU的运行信息
free 查看内存信息 -h人性化显示
利用systemctl命令管理服务运行状态
systemd的配置文件主要存放在/usr/lib/systemd/system/和/etc/systemd/system/
语法格式:
systemctl start|stop|status|restart|reload 服务名
start:启动服务
stop:停止服务
status:表示查看服务运行状态
restart:重新启动服务 可以让新的配置生效,但是会中断服务
reload:重新加载服务 可以在不中断的情况下重新加载,但是有些新配置的情况下不会生效
管理服务启动状态
systemctl enable|disable|is-enabled 服务名
enable表示将服务设为开机自动启动
disable表示禁止服务开机自动启动
is-enabled表示查看服务的启动状态
管理系统运行级别
运行级别类似windows的运行模式
只运行按照运行级别所特定搭配的服务
systemctl get-default 查看默认运行级别
runlevel 查看运行级别以及是否更改过
init [运行级别] 更改运行级别
init 0 关机 init 6 重启
systemctl set-default [运行级别名]
防火墙命令
开放端口:firewall-cmd --zone=public --add-port=端口/tcp --permanent
移除开放端口:firewall-cmd --zone=public --remove-port=端口/tcp --permanent
临时关闭防火墙:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
永久关闭防火墙:systemctl disable firewalld.service
设置开机自启:systemctl enable firewalld.service
查看防火墙状态:firewall-cmd --state
查看防火墙开放端口:firewall-cmd --list-ports
查看某一端口是否开放: firewall-cmd --query-port=端口/tcp
指定ip开放端口:firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“指定的ip”
port protocol=“tcp” port=“端口” accept”
防火墙禁ping:firewall-cmd --add-rich-rule=‘rule protocol value=icmp drop’ --permanent