赞
踩
linux 命令学习基础知识,学完可以对linux 常用命令进行叫清晰的了解,可以对文本操作,系统网络配置,磁盘分区,系统运行状况分析,简单shell脚本进行编写。
linux文本编辑主要分为3种模式,即一般模式、编辑模式、命令模式。
一般模式:打开一个文件,可以对文件进行增删改查,但是不能对文件进行编辑。
编辑模式:就是可以直观的对文本进行输入,修改。
命令模式:即是对文件进行整体处理,如写入并保存,强制退出,查找等。
下面进行详细描述:
1、一般模式
复制一行 yy 粘贴 p 复制5行 5yy 粘贴p 删除dd 删除5行 5dd 撤销 u
从一行的任意位置开始复制到该行的最后一个字符 先按下y 然后按shift+$ 即可复制所选文字
从一行的任意位置开始复制到该行之前的一个字符 先按下y 然后按shift+^ 即可复制所选文字
复制一个单词,先按下y 再按下w 即可复制当前光标所在的单词 删除一个词 D+W 删除该字符后面所有单词 D+$
往前删除 按住shift+x 一个一个删除单词
替换单个字母,按下r 然后输入要替换的字母。替换整行字母,按下shift+r 即可输入自己需要替换的字母
gg 跳转到文本第一行 shift+g跳转到文本最后一行 8+gg跳转到第8行
set nu 给文本设置行号 set nonu 取消行号
shift+o 在光标所在行前插入字符 o 在当前光标所在行的下一行输入字符
2、编辑模式 i 插入 a 在当前光标前输入 o在当前光标下一行输入
3、命令模式 :
w 写入 :wq!强制保存并写入 :q!强制退出
查找 命令模式下输入 / 进入查找状态 输入想要查找内容然后回车 即可查找,按n即是向下继续查找 按shift+n 是向上查找
替换 :s/需要替换的单词/新的单词 替换当前行的第一个被查找到的单词
:s/需要替换的单词/新的单词/g 替换当前行的所有被查找到的单词
:%s/需要替换的单词/新的单词 替换全文所有行第一个被查找到的单词
:%s/需要替换的单词/新的单词 /g 替换全文
1、linux获取本机ip地址 ifconfig |grep “inet”
man 命令 查看帮助
help 命令
命令 --help
1、文件类命令
pwd 打印当前目录
cd 切换目录 cd ../目录 相对路径 cd - 返回到刚才的目录 cd 回到主目录
ls -a 显示所有的文件 ls -l 以列表方式展示所有文件 ls -al 以列表方式显示所有文件
mkdir a 创建a文件夹 mkdir -p b/c/d 如果父目录没有则创建所有目录
rmdir 删除文件 rmdir -p b/c/d 如果删除完子目录,父目录为空,则父目录也跟着删除
touch 新建空白文件
rm 删除文件 rm -rf 强制删除文件目录
cp 复制文件 cp 原文件 需要被复制的目录
mv 移动文件 重命名文件 mv a文件 b文件 表示将a文件移动并完成覆盖b文件
2、查看文件
cat 查看整个文本
more 以分页的方式来查看文件 b往回看 table键下一页 q 退出
less 以分页的方式来查看文件 空白键往下翻一页 /查看 n往下看 N往上看 shift+G 最后一行
echo 输出一个字符到控制台 -e 可以输出转义字符
> 将指令输出内容覆盖到文件中
>> 将指令输出内容追加到文件末尾 echo “” >> 文件 将内容追加到文件末尾
head -n 数字 文件名 文件最开始的几行
tail -n 数字 文件名 文件最末尾的几行 tail -f 文件名 ctrl +s 暂停 ctrl+q 释放暂停 ctrl+c 退出
tail -10f 文件名 则代表展示文件末尾10行,并持续跟踪文件输入
ln -s 原文件或目录 软链接名 pwd -P 抛开软连接都影响,显示文件的实际路径
history 用来查看之前已经执行过的命令
3、时间日期类
date +%Y 四位年 +%y 两位年 +%m +%d +%H +%M +%S
cal 日历
4、用户管理类命令
useradd 用户名称 useradd -g 组名 用户名称 useradd -g baiao baniao001 代表给用户组baniao新增一个叫baniao001的用户
passwd 用户名称 密码 给用户设置密码
id 用户名称 查看该用户是否存在
cat /etc/passwd 查看当前系统创建了哪些用户
su 用户名称 在控制台切换用户
who am i 查看当前用户 who 查看当前服务器登陆的用户明细
sudo vim /etc/sudoers 如果需要使用该命令,则需要授权的用户追加到root后面
userdel 用户名 删除一个用户 user -r 用户名 将用户以及用户主目录都删除
usermod -g 组名 用户名 给用户加到一个组里面
5、用户组管理命令
groupadd 组名 新建一个组 vim /etc/group 查看当前有哪些组
groupmod -n 新组名 要修改的组名
groupdel 组名 删除这个组
6、文件权限类命令
drwxr-xr-x d文件属性 r可读 w可写 x可执行 1-3位代表属主权限,4-6位代表属组权限 7-9位代表其他用户权限
可写不代表可以被删除,如果要删除需要拥有当前文件所在目录的可执行权限,即x
chmod ugoa +-= rwx 文件名 比如 chmod u+x aa 表示给文件aa的属主用户增加可执行权限
r=4 w=2 x=1 chmod 777 aa 代表给该文件所有用户所有权限
chmod -r 777 目录 给该目录下所有文件都设置为所有权限
chown 改变文件所有者 chown 用户名 文件名 chown -r 用户名 文件目录 递归的给该目录下所有文件属主改为用户名
chgrp 修改文件所属组 chgrp 组名 文件名
7、搜索查找类
find 查找范围 查找内容 find /root -name aa.txt -name 以名称来查找 -user 以用户来查找 -size 以大小来查找
locate 找到数据库中的文件 必须先要更新数据库 updatedb
which 找到命令的地址 which ls
whereis 查找命令的地址
grep -n 关键字 查找范围
| 管道符 wc 查出来的结果展示的是行数 单词数 字节数
8、压缩和解压缩
gzip 文件名 gunzip 解压压缩包
zip 文件名 zip -r 新的压缩包的名字 要压缩的目录
unzip 压缩包 解压缩 unzip -d 解压缩新目录 解压缩文件
tar -zcvf 文件名.tar.gz 需要打包的文件
tar -zxvf 解压缩的包 -C 解压的目录
tree 显示该目录的层级结构
9、磁盘查看和分区类
du 磁盘占用情况 du 文件或目录 du -sh 当前目录总大小
df 查看当前磁盘剩余大小 df -h
free 查看当前内存的情况 free -h
lsblk 查看当前块使用情况
mount umount 挂载 卸载
fdisk分区 fdisk -l 查看分区情况
分区操作步骤
1)第一步 在linux系统上面新增硬盘,即在/dev目录下面新增新的磁盘
2)fdisk /dev/新硬盘名称 对新增硬盘进行分区 m查看操作项目 n新增磁盘选项
3)对分区进行格式化 mkfs -t xfs /dev/新硬盘 执行新硬盘的文件系统对其进行格式化
4)挂载 mount /dev/新硬盘 挂载目录 完成挂载
5)lsblk -f 查看硬盘信息
10、系统进程
ps aux 以用户友好的风格列出既有终端又没有终端的进程。 系统cpu占用率和内存占用率
ps -e 列出所有进程
ps -u 列出某个用户关联的进程
ps -f 列出某种格式的进程
ps -ef 按照某中格式列出所有进程 查看父子进程关系
ps -ef | grep sshd 单独查看某个进程信息
kill -9 进程号(PID) 杀死进程
killall 杀死所有进程
pstree 查看进程树 ps -p 查看pid -u 进程的所属用户
top 实时监控系统进程状态 -p 通过进程pid监视某个进程 -i 不显示闲置的进程 -d 刷新的秒数
netstat -anp |grep 进程号 查看该进程网络信息
netstat -nlp |grep 端口号 查看网络端口号占用情况
11、系统定时任务
crontab -e 编辑定时任务 -l 查询定时任务 -r 删除当前用户所有的定时任务
1、RPM
rpm -qa 查询所安装的软件包
rpm -e 软件包名 卸载软件
rpm -e --nodeps
卸载软件,不检查依赖 rpm -ivh 软件包名 安装软件包
2、YUM 仓库配置
yum -y install 安装
update 更新
check-update 检查是否有可用的更新rpm软件包
remove 删除指定的rpm软件包
list 显示软件包信息
clean 清理yum过期的缓存
deplist 显示yum软件包的所有依赖关系
3、克隆虚拟机
通过安装的虚拟机进行克隆
vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改ip地址 修改完成之后需要systemctl restart networkManager 网络服务重启生效
hostnamectl set-hostname 修改的名称 修改当前主机hostname
执行shell脚本的方式
1、sh 需要执行的脚本
2、给脚本赋予执行权限 通过文件直接执行
3、source 需要执行的脚本
4、. 需要执行的脚本
变量 全局变量 局部变量
系统定义变量 $HOME
自定义变量 由自己定义的变量
unset 变量 删除参数值
特殊变量
参数变量 $1 $2 ${10} 定义参数
$0 输出脚本的名称
$* 输出所有的变量,把变量当成一个整体 在for循环里面如果没有用“”起来的话,可以根据参数个数依次循环,如果用“”引起来的话,那就是一个整体
$@ 输出所有的变量,输出的是变量数组 在for循环里面是无论是否用“”引起来,都是根据参数个数依次循环
$? shell脚本最后一行输出的结果返回值,正常返回的是0
运算符
$((运算式)) $[运算式]
expr 1 + 2 运算表达式 expr 5 \* 2 a=$(expr 5 \* 2 ) a=`expr 5 \* 4`
条件判断
test 条件表达式
[ 表达式 ] 表达式前后要有空格 表达式中= 前后必须要有空格
不等于是 !=
1)两个整数之间的比较
-eq 等于 -ne 不等于 -lt小于 -gt 大于 -le小于等于 -ge大于等于
2)按照权限进行判断
[ -r 文件 ] 判断文件是否具有可读权限
3)按照文件类型进行判断
-e 文件存在 -f 文件存在并且是一个常规的文件 -d 文件存在并且是一个目录
[ -e 文件目录 ] [ -f 文件名 ]
4)多条件判断
&& 并且 || 或者
5)[ -z $变量名 ] 判断该变量是否有值
流程控制
单条件判断
if [ 条件表达式 ]
if [ 条件判断式 ]; then 或者 then
程序 程序
fi fi
如果在条件表达式里面需要多条件表达式,需要在[]里面的两个表达式之间增加 -a 表示and -o 表示或者
多条件判断
if [ 条件表达式 ]
then
程序1
else
程序2
fi
if [ 条件表达式 ]
then
程序1
elif [ 条件表达式 ]
then
程序2
else
程序3
fi
条件表达式中括号和条件表达式之间要有空格 if 后面必须要有空格
case语句
case $变量名 in
“值1”)
如果变量的值等于值1,则执行程序1
;;
"值2"
如果变量的值等于值2,则执行程序2
;;
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
for循环
1、基本语法1
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
2、基本语法
for 变量名 in 值1 值2 值3
do
程序
done
for i in {1..100}; do sum=$[$sum+$i]; done; echo $sum 增强for循环
while循环
while [ 条件表达式 ]
do
程序
done
let 语法 可以更自然的表达人们熟悉的语法。 let sum+=a let a++
read读取控制台输入
read 选项 参数 read -p 指定读取值时的提示符 -t 指定读取值时的等待的时间
read -t 10 -p “请输入” 变量名 表示在控制台等待10秒,让用户输入
函数
1、系统函数 调用的方式是通过$(),将系统函数放进去进行调用
basename basename 文件路径 后缀(suffix) 得到的就是单独的文件名
dirname dirname 文件路径 得到的是文件的路径
2、自定义函数
[function] funname[()]
{
Action;
[return int;]
}
综合应用案例
正则表达式
cat /etc/group |grep 1000:
^a 以a开头的
$ bash$ 以bash为结尾
^a$ 查找空行
.. 通配符 字符之间有两个字符 比如 grep r..t 表示查找的是在r和t之间出现2个字符的行
* 通配符 某一个字符出现任意次 比如 ro*t 表示 查找r和t之间出现任意多次o的字符的行
.* 表示任意一个字符 ^a.*bash$ 表示以a开头和以bash结尾,中间为任意字符的行
[] 表示字符区间
[6,8] 匹配6或者8
[0-9] 匹配一个0-9的数字
[0-9]* 匹配任意长度的数字字符串
[a-z] 匹配一个a-z之间的字符
[a-z]* 匹配任意长度的字母字符串
[a-c,e-f]匹配a-c或者e-f之间的任意字符
\ 转义 比如\$
文本处理工具
cut 选项参数 filename -f 列号 提出第几列 -d 分隔符 -c 按字符进行切割
cut -d ":" -f 1,6,7 文件名 以:分割的第1、6、7列 6-代表后面的列都截取出来 -6 代表将第6列之前的都截取出来
awk -F 指定输入文件分割符 -v 赋值一个用户定义变量
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。