Linux学习笔记

linux学习笔记
0基础
关机:shutdown -h now
重启:shutdown -r
Pwd 查看工作目录
ls 查看指定目录内容
-l 列表显示
-a 显示所有 包括隐藏文件
-d 只显示目录 不查看内容
Cd 切换目录
. 当前目录
… 上一级目录
Linux目录从/开始 叫做根目录
/bin 大部分的系统命令
/boot 启动相关目录
/dev 设备文件目录
/lib 库文件
/etc 配置文件目录
/media 多媒体目录
/sbin 超级用户使用的命令目录
/user 存放用户按安装的应用程序
/var 系统产生的不可销毁的文件 如日志 缓存

1 Vim终端编辑器
Vim安装 yum install -y vim
工作模式:首先知道自己在哪个模式下
正常模式
插入模式
编辑模式
如 进入file文件后的指令 vim 01.txt
按i 进入插入模式 可以输入字符
按esc退出 再最后填一个冒号 再写wq 就是01文本文件的保存退出
cat 01.txt 显示文件里内容
正常模式: 使用vim打开文件的默 认模式
常用操作:vim fiilename +n: 打开文件 定位到第n行
vim fiilename +: 打开文件 定位到末行
gg 定位到首行
G
ngg 定位到n行
yy 复制光标所在行
P 粘贴
nyy 复制光标开始的n行
dd 删除光标所在行
ndd 删除光标开始的n行
u 撤销操作
Crtl+r 反撤销
Vim filename 打开文件 若不存在则新建
esc:切换到正常模式
Shift+zz:保存退出

插入模式:可以编辑文件内容 在正常模式下输入一下字符
i: 在光标处
I:在行首
a:在光标的下一个字符插入
A:在行尾插入
o:下光标下一行插入空行
O:下光标上一行插入空行
s:删除光标所在字符并插入
S:删除光标所在行

编辑模式:对整个文件进行操作
在正常模式下输入:冒号即可进入编辑模式
:w 保存
:q 退出
:wq 保存退出 等价于shift+zz
:x 保存退出
:q! 强制退出
:set nu 显示行号
:set nonu 隐藏行号
:行号 定位到指定行号
:/内容 查找指定内容 n下翻N上翻
:%s/原内容/新内容 用新内容替换旧内容
:m,ns/原内容/新内容 用新内容替换旧内容,从m行到n行

2文件及文件夹
touch 创建文件
rm 删除
rm -f 强制删除不提示 -f 强制删除 -r 递归删除
rm -f *.txt 删除所有以txt结尾的文件
cp 拷贝文件 若目标目录写上文件名可以顺便把名字改了 -r操作目录
mv 移动文件 若目标目录写上文件名可以顺便把名字改了
如 移动到上一级并且改名 mv file.txt …/file1.txt
mkdir 创建文件夹 可以创建多个 -p创建中间目录 如mkdir -p 12/34/56
rmdir 删除文件夹 空文件夹
Crtl + l清屏 或者clear
3查看文件
cat 从上到下查看内容
tac 从下向上查看内容
head 查看前10行
Tail 查看后10 tail -5 01.txt
More 逐渐查看文件 回车下翻页 空格下凡一屏看到结尾结束 q退出查看
如more 1.txt
less 逐渐查看文件 回车下翻页 空格下凡一屏看到结尾不结束 q退出查看
nl 功能同cat 会多显示行号
wc 统计文件信息 显示 行数 单词数 字节数 文件名
说明: more|less 更多用法结合管道 ls /etc | more

4用户用户组
useradd 创建用户 ls /home/查看有哪些用户
-d 指定家目录
-u 指定用户id uid
-s 指定组id gid
说明 uid gid要使用大于500的数字 小于500的系统用
passwd 设置指定用户密码 若不指定设置当前用户密码
su - :切换用户 不加_只会切换目录和用户身份
若不指定指定用户 默认回到root
userdel: 删除用户 userdel -rf xinfei1 强制删除用户xinfei1相关信息
whoami:查看当前用户

用户组
groupadd: 创建用户组 可以查看用户组信息在 cat /etc/group
groupdel: 删除用户组
gpasswd: 将用户从某一个组中删除或者添加
gpasswd -a test hello 从hello组中删除用户test
gpasswd -d test hello 添加
groupadd hello
useradd test -g hello 创建用户test放在用户组hello中

chgrp: 改变用户文件所属组 例子chgrp hello 02.txt
chown: 改变文件所属用户 如chown test 02.txt
chown test:hello 02.txt 同时改变文件的用户和组
chsh: 修改用户的shell解释器如chsh test -s 老师词典/sbin/nologin 这样无法登陆;
#:root用户
$: 普通用户
说明: /etc/passwd 存放用户信息
/etc/group 存放用户组信息
/etc/shadow 存放用户密码
5文件权限管理
说明:在Linux下,文件的权限有:所有者 所属组 其他的区分
权限:权限有:读r 写w 执行x ls -l查看
修改: 使用chmod修改权限
格式: chmod [身份][修改][权限]文件
身份:
u:用户
g:组
o:其他
a:所有身份
修改:
+:添加
-: 去掉
=: 设置
权限:
r: 读
w: 写
x: 可执行 可操作
例如 chmod u+x 01.txt
6软硬链接文件
说明: ls -l 结果第一列是文件类型
类型:
-:普通文件
d:目录文件
l:软连接
命令:ln [-s] 原文件 目标文件
分类:软连接、硬链接
创建:不加参数-s的就是硬链接 添加-s的就是软连接
7文件查找
tree: 查看目录结构 -L指定层级深度 tree / -L 2
find:查找文件
-name:指定名字
-type:指定类型(b c d p l f)
-size:指定大小 单位K M G +表示大于 -表示小于
如 find / -size +1G
-perm:指定权限
-group:指定组
whereis:查找程序 不要使用find
which:查找命令
alias:给某个命令起别名 alias ls=…
unalias:取消别名
grep:正则匹配查找 grep root /etc/passwd
-i:忽略大小写
-n:显示行号
例子:ls /bin | grep ‘^m’查找/bin 文件下以m开头的文件
8磁盘
磁盘挂载
磁盘的使用流程:磁盘-分区-格式化文件系统-挂载(位置)
mount 分区 挂载点 例子 mount /dev/sdb1 /mnt/
ls /mnt/
Mount:查看所有挂载情况
Umount:取消挂载
磁盘查看
Df:查看磁盘分区使用情况 -h人性化的显示
Du:查看指定目录的而是用情况 -h人性化的显示
管道(管道符号‘|’一个输出当另外一个的输入)
实例:
ls -l /etc | more ls -l /etc的输出作为more的输入
ls -l /etc/ | grep vi 查找/etc/下的包含vi的文件
注意:有些命令不接受管道参数 可以结合xargs使用
find -type d | xargs rm -r -r递归删除 找到目录并且删除
重定向
打开任意程序 系统会自动创建三个文件流 标准输入 标准输出 错误
例如
输出重定向
ls /etc/ > 01.txt 把/etc/下的输出内容重定向输出到01.txt文件中
echo ‘hello’>>1.txt 将hello追加到1.txt中 没有就创建
错误重定向
ls /abc 2>2.txt 将错误输出到2.txt
同时重定向和错误:
ls /abc . &>3.txt
系统服务
网络:
ping:检查网络连通性
ifconfig:查看网卡信息 ifup ifdown 启动 关闭网卡
service network start|stop|restart 网络服务 开启 关闭 重启
端口查看:
netstat -tunpl:查看端口 t TCP u UDP n IP p 端口
内存:
free 查看内存
free -h:人性化显示 具体查看 涉及大小
正在做什么
w:what的简写 查看系统正在作什么
查看所有执行程序
top:是w 的详细显示
查看虚拟内存:
Vmstat
进程管理:
查看进程:
ps aux a:所有 u:显示用户 x:显示没有终端的
杀死进程:
Kill -9 PID 杀死指定进程号的进程
Ps aux | grep ssh 查看进程中含ssh的进程 grep筛选 正则匹配
9 软件的安装 解压压缩
压缩解压命令
zip/unzip: yum install -y zip 安装zip负责安装包操作
zip 12.zip *.txt 将txt结尾的文件压缩为12.zip
unzip 12.zip 将12.zip解压
gzip/gunzip:另外一种格式的压缩解压 只能压缩单个文件
压缩后会把原来文件删除 后缀.gz
gzip 1.txt 将1.txt压缩为 1.txt.gz
gunzip 1.txt.gz 解压
gunzip -d 1.txt.gz 同上
bzip2/bunzip2:用法和gzip/gunzip一样 后缀为bz2
bzip2 1.txt 将1.txt压缩为 1.txt.bz2
tar:打包解包工具 后缀tar
-c 打包
-x 拆包
-t 查看包中东西
-f 指定文件 一般放在最后
-v 显示详细信息
-z 使用gzip/gunzip解压压缩
-j 使用bzip2/bunzip2解压压缩

tar -cvf 12.tar *.txt 将.txt文件打包为12.tar
-cvf 先打包再显示打包过程 指定为12.tar
tar -xvf 12.tar 将12.tar解压包
Tar -zcvf 12.tar.zip 12.tar 用gzip压缩包12.tar
tar -zcvf 12.tar.gz *.txt 一步完成压缩打包
tar -zxvf 12.tar.gz 一步解包解压

说明:-k 可以在操作后保留原文件
tar.gz简写为tgz tar.bz2简写为tbz2/tbz

软件安装方式 这里安装httpd-2.2.34.tar.gz
1源码安装 需要对应的编译工具(例gcc gcc++)
下载对应安装包 解压 进入根目录
配置 configure
编译 make
安装
实例演示:安装Apache
1 下载
2 解压 httpd-2.2.34.tar.gz tar -zxvf httpd-2.2.34.tar.gz
3 进入 cd httpd-2.2.34
4 配置 ./configure --prefix=/usr/local/apache2
5 编译 make
6 安装 make install
2 rpm安装
rpm是RPM Pakage Manager的缩写 是软件包的后缀 也是命令
命令参数:
-i 安装
-e 写卸载
-v 显示详细信息
-h 显示安装进度
-U 升级
-q 查询
实例 安装vim
Rpm -ivh vim-filesystem-7.4.629-5.el6-8.1.x86-64.rpm
使用yum值下载rpm包:yum install -y vim --downloadonly --downloaddir .
3 yum安装
说明:yum是最简单你的安装方式 不用考虑复杂的依赖关系
命令:
Yum clean all 清空缓存信息
Yum makecache 生成缓存
Install 安装软件
Remove 卸载软件
Update 更新软件
Search 搜索软件
List 列表显示
更改yum源:cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.bak
下载指定的yum源配置文件
清空原来的缓存:Yum clean all
重新生成缓存:yum makecache
其他:cmd1||cmd2 执行命令 或
Cmd1&&cmd2 先执行1 再执行2 和
Cmd1;cmd2;cmd3 顺序执行
10 shell编程
1 认识
Shell是介于用户和内核的工具用户操作通过shell解析然后传递给内核
Shell有两种表现形式 交互式 单步执行 脚本 文本执行
类型:
Bash ash csh ksh 等
环境变量$SHELL定义了系统可用的shell
/etc/shells定义了系统可用的shell
2 演示:

#! /bin/bash
Echo “hello world”
添加可执行权限 chmod +x hello.sh
执行:
1 在当前目录./hello.sh 不在当前目录 加上前面的目录
2 使用bash /bin/bash hello.sh
3 书写shell
1 指定解析器 #! /bin/bash
2 注释符号 #
3 严格的使用习惯
4 变量
#! /bin/bash
name=”xiaoming”
echo n a m e e c h o “ name echo “ nameecho{name}xiao”
unset name #销毁变量
5 变量类型
本地变量 只在shell脚本内使用
环境变量 在整个系统中使用 通常全部大写 使用最多的是PATH
修改:
系统 /etc/profile
用户 ~/.bash_profile
导出:
Eexport PATH=$PATH:/root/shell

位置变量
$0 脚本名字
$1-$9 执行脚本时传递的参数
特殊变量
$* 所有的参数
$# 参数的个数
$? 上次的执行结果 0 表示正确 非0 错误
6 文件包含
. 文件
Source 文件
说明:以上两种形式都可以在一脚本中引入另外一个脚本 相当于直接写在当前脚本中
7 特殊命令
seq m n 产生从m到n的整数
expr 将表达式进行运算
expr 2 + 3 结果为5
expr 2 * 3 结果为6 \转义字符
8 字符串
双引号:中间的字符可以解析变量 除特殊字符
单引号:中间字符不能解析 是什么就是什么
反引号:表示当做命令执行
反斜线:转义特殊字符
9 字符串操作
${#变量名}:字符串长度
${变量名:开始:长度}:字符串提取 从第几个开始提取几个
10 数组操作
array=(a b c d) 定义数组
echo a r r a y [ 0 ] 打 印 下 标 为 0 的 元 素 11 各 种 运 算 测 试 工 具 : t e s t 成 功 {array[0]} 打印下标为0的元素 11 各种运算 测试工具:test 成功 array[0]011test?为0 错误不为0 $?显示上次结果的值
数值比较:
-lt:小于
-le:小于等于
-gt:大于
-ge:大于等于
-eq:等于
-nq:不等于
字符串比较:
=:等于
!=:不等于
-n:字符串长度不为0 结果为真
-z:字符串长度为0 结果为真
文件判断:
-f:普通文件
-d:目录文件
-w:文件可写
-x:文件可执行
-s:文件至少一个字符
-c:字符设备文件
-b:块设备文件
逻辑判断:
-a:逻辑与and的简写 另一种形式&&
-o:逻辑或 or ||
!:逻辑非
12 if分支
if [ 2 -lt 3 ];then
echo “2<3”
fi

if [ “abc”=“abc” ];then
echo “same”
else
echo “different”
fi

#read 用于从终端获取输入 并保存在变量中
#-p表示可以输出一个提示字符串
read -p “please input a number:” ch
if [ $ch -ge 5 ];then
echo “>=5”
elif [ $ch -ge 3 ];then
echo “>=3”
else
echo “❤️”
Fi
13 case分支
read -p “please input a char:” ch
case $ch in
[a-z])
echo “aplha”
;;
[0-9])
echo “number”
;;
)
echo “others”
;;
esac
14 for循环
for x in a b c
do
echo $x
Done
遍历指定目录
for x in /

do
echo $x
done
遍历一到十
for x in seq 1 10 #这里是反引号 esc下面的
do
echo x d o n e 累 加 1 − 100 f o r i i n ‘ s e q 1100 ‘ d o l e t s u m + = x done 累加1-100 for i in `seq 1 100` do let sum+= xdone1100foriinseq1100doletsum+=i
done
echo $sum
另外一种写法 打印1-10
for ((i=1;i<=10;i++))
do
echo $i
Done
15 while循环
打印1-10
i=1
while [ $i -le 10 ]
do
echo KaTeX parse error: Expected 'EOF', got '#' at position 13: i ((i++)) #̲或者let i+=1 或者i=[$i+1]
Done
16 until循环
打印1-10
i=1
while [ $i -le 10 ]
do
echo $i
((i++))
done

17 break跳出循环
while : #这里形成死循环
do
read -p “input a char:” ch
case $ch in
[0-9])
echo “number”
break
;;
*)
echo “others”
break
;;
esac
Done
18 continue
作用:结束本次循环 进入下次循环
i=1
while [ $i -le 10 ]
do
if [ [ [ [i%3] -eq 0 ];then
((i++))
continue
fi
echo $i
((i++))
Done
11 函数
demo()
{
echo “hello world”
}
demo
参数
test()
{
echo $1
echo $2
}
test abc 123
返回值
add()
{
return 123
}
add
echo $?
黑洞文件 /dev/null
Cat /dev/null > 1.txt 无论怎么写都是空的 清除垃圾或者记录
12 sed 处理文件流
格式:sed [参数] 指令 文件
参数:
-n:结合命令p使用 用于打印内容
-i:默认不加参数不会修改内容 加上后会
命令:
p:打印 需要结合-n使用
a:增加
d:删除
c:取代
s:替换
实例:
Sed -n ‘1p’1.txt 打印第一行 1,3p 1-3行 $p 最后一行
Sed ‘1a xxx’ 1.txt 在第一行下面添加xxx
Sed ‘5d’ 1.txt 删除第五行
Sed ‘3,5c xxxx’1.txt 用xxx取代3-5整行
Sed ‘5,7s/jn/xxx/g’ 1.txt 将5-7行的jn换成xxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值