linux总结(一)

Linux基础

什么是linux,linux的发行版本

linux是运行主要的UNIX工具

通常服务器:LAMP和LNMP
启动文件都在bin目录里面
一切皆文件,所有文件都挂在根目录这个节点上 /

Linux的⽬录结构:

在这里插入图片描述
/www:服务器网站的相关资源 环境和项目 server/安装好的环境
/boot⽬录:存放的是系统的启动配置⽂件和内核⽂件
/dev⽬录:存放的是Linux的设备⽂件
/etc⽬录:存放的是Linux的配置⽂件
/home⽬录:存放的是Linux普通⽤户的家⽬录
/media⽬录/run⽬录/mnt⽬录:挂载点⽬录
/opt⽬录:存放软件⽂件的⽬录
/proc⽬录:存放的是进程⽂件
/sys⽬录,/srv⽬录:存放⼀些资源⽂件 (系统资源)
/tmp⽬录:存放的是⼀些临时⽂件(⾮常重要)用完就丢
/usr⽬录:Linux软件默认安装的⽬录
/var⽬录:存放log
/bin->/usr/bin :存放的是普通⽤户能执⾏的命令
/lib->/usr/lib:存放的是32位的函数⽂件
/lib64->/usr/lib64:存放的是64位的函数⽂件
/sbin->/usr/sbin:存放的是超级⽤户能执⾏的命令
/lost+found:存放非法关机的文件

linux基本命令

alias别名,方便操作,比如ls -l别名ll
设置永久别名:打开~/.bashrc文件,输入要设置的alias命令,保存,然后运行
su - username 切换用户
su命令切换⽤户如果不加"-",只是shell层⾯的切换,⽤户的环境变量实际上是没有变的
ls:
ls -l显示的内容:
第⼀列表示⽂件的类别,"-"表示普通⽂件,“d”表示⽬录⽂件,“b”表示块设备(存储设备),“l”表示快捷⽅式(软链接)
后面是文件权限,大小,时间,以及名字

-a:以"."开头的⽂件是隐藏⽂件
-d:表示显示⽬录本身的属性,⽽不是⽬录下的内容的属性
-h-l :一起使用,人性化显示文件大小

cat (非常重要):

⽂本⽂件内容的查看
cat head tail more less(5种文件查看命令)

  1. cat ⽂本⽂件path1 ⽂本⽂件path2
  2. head ⽂本⽂件的path ,显示⽂件的前10⾏内容 head -5 等于 head -n 5
  3. tail ⽂本⽂件的path, 显示⽂件的后10⾏,tail -n 5 ⽂本⽂件的path, 显示⽂件的后5⾏内容tail -f一直查看文件后10行
  4. more 当⽂件内容⾮常多的时候,cat命令会⼀次性将所有的内容输出到屏幕上,假如说有1万⾏。
    对于⽂本内容较多的⽂件,more命令可以分⻚显示这些内容,q退出。
  5. less和more差不多,less的好处是可以向前翻⻚,more有的功能less都有,more没有的less也有。

touch文件创建,mkdir目录创建
touch ⽂件的path1 ⽂件的path2 …可以创建多个
touch(摸,触碰) 创建的⽂本⽂件默认都是空的
如果touch后⾯跟的⽂件已经存在,那么就更新这个⽂件的时间戳

mkdir(mk=make,dir=directory)
mkdir /tmp/china/sh/pd/pd-airport -p
如果没有/tmp/china/sh/pd⽬录,-p参数会让所有的⽬录⾃动创建

删除命令
空⽬录⽂件的删除rmdir(rm=remove,dir=directory)
rm -rf(remove移除) 下岗命令,能不⽤就尽量不⽤,这个命令短短的两个字⺟透露出这个命令狰狞的⾯⽬。
-i参数能提示是否删除⼀个⽂件 (root会⾃动提醒,但是普通用户不会)
如果是root删除⽂件,为了防⽌不断的提示是否删除,可以加-f参数,表示force的意思,不会提示
-r参数能赋予rm删除⽬录的能⼒
-r -f⼀起⽤,⽂件⽬录都能在不提示的情况下,直接⼲掉(删除)。

cp(copy)mv(move)
cp 源⽂件1 源⽂件2 … ⽬的⽬录path

cp 源⽂件 ⽬的⽬录/awh
cp如果最后⼀个⽂件是⼀个存在的⽬录,就将cp指定的⽂件拷⻉到awh下(awh是目录)
cp(备份)如果最后⼀个⽂件并不是⼀个存在的⽬录,拷贝到目的目录,并且将名字更改为awh
如果重名会是否覆盖。
cp -r可以拷⻉⽬录
cp -a 可以保留⽂件的原有属性

⽂件的移动mv
⽤法和cp基本⼀致,可以实现改名的操作。

通配符和正则,是⽂件管理的神器。
ls a* 显示a开头的所有文件
?就是通配符的⼀个,"?“表示⼀个⾮空的任意字符
\表示转移字符,能让特殊字符失去原有的功能
[]表示匹配”[]"包含的其中的⼀个字符
[a-z]表示所有的字⺟
[A-Z]表示匹配所有⼤写的字⺟
[1-9]表示匹配所有的数字
[^]

正则表达式(存在的意义是为了匹配⽂件内容) log(⽇志)分析
^ 表示以什么什么开头
$ 表示以什么什么结尾
. 表示匹配任意⼀个⾮空字符
.* 表示匹配任意⾮空字符串
.* 表示有1~n个.
.? 表示匹配任意两个⾮空字符
? 表示可以重复前⾯指定的字符1次或0次

vim文件编辑
vim分为4⼤模式:命令模式(确定光标在哪),编辑模式,,末⾏模式,可视化模式
打开vim模式是,为命令模式:

  1. hjkl分别代表←↓↑→。
  2. 输⼊gg,就能将光标切换到⾏⾸。
  3. 输⼊nG就能切换到第n⾏,G是最底行。
  4. 光标所在位置按x,能删除光标所在位置的字符,X则是相反方向。
  5. u能撤回上⼀次的操作,windows能撤回次数有限,vim命令模式下的u,⼏乎可以⽆限次的撤回。
  6. 输⼊i,I,o,O,a,A都能进⼊编辑模式
  7. 在命令模式下按dd就能删除光标所在⾏,按5dd能删除包含光标所在⾏的下5⾏
  8. 在命令模式下按yy就能复制光标所在⾏,按8yy能复制包含光标所在⾏的下8⾏
  9. 当在命令模式下输⼊p时,会将上次dd或者yy指定的⾏,增加到光标所在⾏的下⾯,P上面

在命令模式下输⼊“/”或者“:”就能进⼊末⾏模式:

  1. 输⼊"/"然后输⼊要查找的字符串,然后回⻋
  2. w保存,q退出,wq保存退出,!强制
  3. :set number回⻋能显示⾏号 :set nonumber回⻋去掉⾏号
  4. 文本替换 :5,10s/123/456/g 第5⾏到第10⾏的123全部替换成456 &表示最后一行

可视化模式:命令模式下按v或者V,或者ctrl+v能进⼊到可视化模式

linux初级命令

输入输出重定向

输出重定向
cat /etc/hosts > /root/file1 就是将">"前⾯命令的结果送到/root/file1⽂件中
cat查询的类容装入了file1文件中
">和>>是正确的重定向,能将正确的结果重定向到⽂件中,区别是:>会将指向的⽂件内容完全覆盖
”>>会将重定向的内容追加到指定的⽂件

在执行结果中 >就是正确的结果覆盖 >>就是正确的追加
2>就是错误的覆盖,2>>就是错误的追加,&>正确错误都覆盖,&>>正确错误都追加

&>> /dev/null

/dev/null是⼀个特殊的⽂件,如果将重定向指向这个⽂件,那么就相当于将执⾏结果送
到⿊洞中。直接没了。有些时候,我们不想让这个命令的输出显示到任何地⽅,就送到⿊洞中。

输入重定向
<和<<
可以将交互式命令变成⾮交互式命令,实现shell脚本自己动

管道和重定向的联合使用

管道|: 管道左边的命令会产⽣输出结果,输出结果经过了管道之后,就会变成输⼊
grep grep 内容 普通⽂本⽂件
-i 不区分⼤⼩写
-v 反向抓取(我抓取的内容是123,加上-v,就是除了123,都抓取)
-A after
-B before
-n 显示⾏号
-E expression 正则表达式(正则有的实效了用它)
在管道的应⽤场景,grep使⽤的频率⾮常⾮常⾮常⾼

cat /home/atxt | grep a 抓取atxt中带a的
cut 分割

Linux快捷键

ctrl + l 清理屏幕
ctrl + a将光标移到最左侧
ctrl + e将光标移到最右侧
↑ 能列出上次使⽤的命令
↓ 和↑相反
ctrl + u将删除光标所在位置到最左侧
ctrl + y还原删除操作
ctrl + w 光标到左侧的删除⼀个word
history命令能查看历史命令

sed
sed ‘1,3a\aaa’ a 在1到3行追加aaa
sed ‘/first/a \add one’ test.txt 表示在包含”first”的行的后面加”add one”
sed ‘/^ha.*day$/c \replace line’ test.txt 将以ha开头,以day结尾的行替换成”replace line”

用户管理

①⽤户的增删改查
②⽤户组的增删改查
③⽤户密码的增删改查
④⽤户组密码的增删改查

useradd增加⽤户的命令, ⽤户组的添加(groupadd)
userdel删除⽤户的命令, 用户组删除(groupdel)
id查看⽤户的命令(/etc/passwd)
usermod修改⽤户的命令 , 用户组修改(groupmod -g 10000 组名)

⽤户信息都是存放在/etc/passwd
⽤户密码信息存放在/etc/shadow
⽤户组信息存放在/etc/group
⽤户组密码信息存放在/etc/gshadow

hm:x:1004:1004::/home/hm:/bin/bash

第三列表示⽤户的UID(user ID),和身份证号差不多,绝对不能重复。
第四列表示⽤户所属组的ID,⽤户的private group ID。
所属组包括:private group, primary group, attached group,任何⽤户都是要属于⼀个⽤户组的。
第五列表示描述信息,邮箱啊,电话
第六列表示⽤户的家⽬录信息
第七列表示⽤户的登录shell
useradd wjx -u 5000 -d /wjx -s /bin/sh
usermod wjx -u 6000 -d /wjx1 -s /bin/bash

用户与用户组的关联

由于任何⽤户都必须依赖于⽤户组才能存在,所以如果创建⽤户没有指定⽤户组(primary group),那么系统会为该⽤户创建⼀个同名的组。这个组叫做该⽤户的private group(私有组)

添加附加组(attached group),⼀个⽤户只可以属于⼀个primarygroup,但是可以同时属于多个attached group,useradd -g 指定的是添加⽤户该⽤户的primary group,-G 指定的是添加该⽤户的attached group
将一个现有的用户添加到附加组: usermod -G hl hm , usermod -aG hl hm
将用户中的组删除: gpasswd -d hl hm (hm是用户,hl是组) ,删除hm 是hl组的成员
用户的密码管理
用户的密码信息存放在/etc/shadow中

hl: 6 6 6vf0dgjgz1lHaWfAx$xweARDSn5H64BHewudB596CSOvecwhwvHYGM7mNp9j5Z5VACm0H…bBCW38Woe/OXKjb/IqM5NLeccd63dVAa0:18862:0:99999:7:::
第三列存放的是上次修改密码的时间
第四列存放的是密码最⼩有效期,如果是0,就可以⽆限次的不考虑间隔的修改密码,如果是1,就表示,修改完密码之后,必须使⽤该密码⼀天才能再次修改
第五列存放的是密码的最⼤有效期,默认是99999,表示密码99999天就会失效,如果该数字是3,就表示,3天后密码会过期,如果你想继续使⽤,必须要在密码到期之前修改。
第六列存放的是密码到期前提前多少天警告的时间信息,如果该数字为7,就表示密码到期之前的7天就会发出警告,告诉你密码即将过期。
第七列表示⽤户密码到期后宽限⽇期如果该数字是2,就表示密码到期后,你还能使⽤该密码2天,如果2天到了,你还没修改或更新密码,密码就失效了。
第⼋列表示账号失效⽇期第⼋列的⽇期就是账号的失效⽇期。如果到了第⼋列的时间,账号直接失效。不可登录。
第九列保留 , 其中所有的日期都是天数,重现在的日期到linux创建的日期

passwd -d tgb可以删除一个用户的密码
passwd -n 3 -x 10 -w 5 -i 2 hl (-n表示密码修改了过了3天才能改,-x表示最大有效期设为10天,-w表示5天发出警告密码将过期, -i表示密码到期后,有2天的宽限时间)
passwd -e hl (直接设置密码过期)即上次修改密码时间的字段变成了0,就表示该⽤户下次登录必须修改密码。在windows server当中,创建完⽤户,默认该值就是0
也可以使用chage修改,chage能更加灵活的修改所有密码信息

chage -d 1300 -m 2 -M 20 -W 10 -I 4 -E 2021-1-1 tgb
grep tgb /etc/shadow
tgb: 6 6 6akpmgINkDix4ueTo$8g0O70/JD303RjQ7M9iYggZStkpDpHV9ES/gaipVu5qgORqHDjT61U2664IgPcfNPYR/8wNMG5W0yPpdo0aQ81:1300:2:20:10:4:18628:

用户的锁定
passwd -l hl,锁定这个用户,除了root其他都不能够登录,hl:!! 6 6 6wRf18G4jstTy0,前面加了两个!
passwd -u hl,解除锁定

passwd --stdin 可以让passwd接收标准的输⼊,只能root使⽤
⽤户组密码信息
echo 123 | passwd --stdin hl, 将hl的密码设为123,一般用于我们写shell脚本的时候

用户组
gpasswd hl 修该用户组密码
对于任何⼀个⽤户来说,创建的⽂件,默认的拥有⼈就是该⽤户,默认的所属组是该⽤户的primary group

newgrp groupname,能让⼀个⽤户临时的切换到另外⼀个组,那么切换成功之后,该⽤户创建的⽂件就都属于切换后的组。

组密码的作⽤是让那些不属于该组的⽤户,可以切换到该组的⼀种⽅式,只要提供正确的组密码,即可切换成功。

touch /etc/nologin 除了root之外的所有⽤户都进制登录。一般用于系统维护。nologin中的内容可以显示
rm -rf /etc/nologin 解除⽤户登录限制

shell编程重要文件stat awk sed cut diff

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值