Linux

目录构造

只有一个根目录,所有文件都在里面

命令入门

Linux 命令基础

启用静态网络

vi /etc/sysconfig/network-scripts/ifcfg-eth0

// 这个是地址端,在虚拟网卡端中查看区域
IPADDR=192.168.134.198
// 这个也可以查看到,在虚拟网卡端中
NETMASK=255.255.255.0
// 这个固定IP也在虚拟网卡中
GATEWAY=192.168.134.1
// 这个必须是114的
DNS1=114.114.114.114

命令通用格式

command: 命令本身
-options: 可选的,控制命令的细节
-parameter: 可选的,指向目标
命令都可以混合使用

ls(列出当前目录)

格式:ls [-a -l -h] [linux路径]

  • -a 显示隐藏文件,一般都是以 . 开头的文件名
  • -h 易读形式列出文件大小,如 K M G,不写是B(byte)
  • -l 显示详细信息
  • 当指定目录之后,可以看指定目录的内容
ls
111.txt	compute.txt	pdsh-2.34  模板  文档  桌面

cd(切换工作目录)

格式:cd [linux路径]

  • 如果不给参数,回到家目录
  • 没有选项
cd /root
cd

pwd(打印当前工作目录)

格式:cd

  • 无参数
  • 无选项
pwd

相对路径、绝对路径、特殊路径符

  • 绝对路径:以根目录开始一级一级的
  • 相对目录:以当前目录为起点
  • ./ 表示当前目录
  • ../ 表示上一级
  • ~ 回到home目录

家目录

其他用户的家目录为:/home/当前用户名
root 用户的家目录为:/root

mkdir(创建目录)

格式:mkdir [-p] [linux路径]

  • -p 可以创建多个层级的目录
# 创建一个123的目录
mkdir 123
# 创建一个多层级目录,234包含345包含56
mkdir -p 234/345/56

touch(创建文件)

格式:touch [linux路径]

  • 无选项
  • 无参数
# 创建一个123文本文件
touch 123.txt

cat(查看文本内容)

格式:cat [linux路径]

  • 无选项 无参数
# 查看123文本文件内容
cat 123.txt 

more(翻页查看内容)

格式:more [linux路径]

  • 无选项 无参数
# 翻页查看etc的services文件
more /etc/services

当进入之后,下面有个已查看多少的提示
按空格翻下一页
按 q 退出

cp(拷贝命令)

格式:cp [-r] 参数1 参数2

  • -r 复制文件夹时候用,表示递归
  • 参数1 被复制文件或者文件夹
  • 参数2 复制到哪里
# 复制123.txt 文件到当前目录并改名为234.txt
cp 123.txt 234.txt

mv(移动命令)

格式:mv 参数1 参数2

  • 参数1 被移动文件或者文件夹
  • 参数2 移动到哪里
mv 123.txt 123

rm(删除命令)

格式:rm [-r -f] [参数1 参数2 … 参数n]

  • -r 用于删除文件夹
  • -f 强制删除,不会弹出提示框
    • 普通用户删除内容不会提示的
    • root 管理员用户删除才有提示
  • 参数1 参数2 … 参数n 表示要删除的文件夹或文件路径,空格隔开
  • 模糊匹配
    • 符号* 表示通配符
    • test* 表示任意以test开头的内容
    • *test 表示任意以test结尾的内容
    • *test* 表示任意包含test内容
# 删除目录 强制删除 bigData22和itheima
rm -r -f bigData22/ itheima/

细节:千万不要使用 rm -rf / 或者 rm -rf /*
相当于windows C盘格式化

grep(过滤)

格式:grep [-n] 关键字 文件路径

  • -n 表示在结果中显示匹配的行号
  • 关键字,必填,表示过滤的关键字
  • 文件路径,必填,表示过滤内容的文件
# 过滤 关键字 "itheima",文件路径是 111.txt
grep "itheima" 111.txt

wc(数量统计)

格式:wc [-c -m -l -w] 文件路径

  • -c 统计 bytes 数量
  • -m 统计字符数量
  • -l 统计行数
  • -w 统计单词数量
  • 文件路径:被统计的文件,可以作为内容输入端口
wc 111.txt
# 3  4 45 111.txt
# 打印的结果是 3行,4个单词,45个字符

管道符

左边的输出当作成右边的输入

which(查找命令程序所在位置)

无参数,无选项

which cd

find(查找文件)

格式:find 起始路径 -name “被查找的文件名”

  • -name 按照名字查找,后跟名字
    • 符号* 表示通配符,只支持按照名字查询
    • test* 表示任意以test开头的内容
    • *test 表示任意以test结尾的内容
    • *test* 表示任意包含test内容
  • -size 按照大小查找后跟参数
    • 语法:find linux路径 -size +10k # 大于10 kb 的
    • + - 只能选一个,大于 / 小于 后跟数字
    • kMG 表示kb MB GB
# 在根目录开始查找,找带test的
find / -name "test"

echo(输出指定内容)

echo 输出的内容
无选项

  • 输出的内容:要用双引号包起来
echo "hello word"

反引号

被反引号包含起来的内容,将作为命令去指执行

# 如果pwd 没有用反引号包起来,将作为纯文本执行
echo `pwd`

重定向符

向尾部追加

echo 追加内容 >> 文件

覆盖文件内容

echo 内容 < 文件

tail(查看文件尾部内容)

语法:tail [-f -num] [linux路径]

  • -f 持续跟进尾部更改,当文件更改了,这里就会直接更新
  • -number 查看尾部多少行,不写就是默认10行
# 查看该文件尾部5行
tail -5 /etc/services

快捷键

Ctrl + L 清屏
Ctrl + c 返回

VIM 编辑器

三个模式:命令模式、输入模式、底线命令模式
vim 兼容了vi的所有功能

vim 文件路径 注:如果文件不存在,那么会创建一个文件

命令模式

打开文件之后就是命令模式

进入其他模式

  • 按 i 在当前光标位置进入输入模式
  • 在任何情况下按 esc 返回命令模式
  • 按 :进入底线模式

不同方式进入输入模式

  • 按 a 在当前光标位置之后进入输入模式
  • 按 I 在当前行的开头进入输入模式
  • 按 A 在当前行的末尾进入输入模式
  • 按 o 在当前光标创建下一行进入输入模式
  • 按 O 在当前光标创建上一行进入输入模式

光标移动和搜索

  • 按 上下左右(k j h l)都是光标的上下左右移动
  • 按 0 移动光标到当前行的开头
  • 按 $ 移动光标到当前行的末尾
  • 按 pageUp 向上翻页
  • 按 pageDn 向下翻页
  • 按 / 进入搜索模式 例如:/666,这个时候按 n继续向下搜索 按N往上搜索

快速编辑

  • 按 两下 dd 删除光标所在行
  • 按 ndd 向下删除多少行,n表示数字
  • 按 yy 复制当前行
  • 按 nyy 复制当行和下面的 n 行,n表示数字
  • 按 p 粘贴复制的内容
  • 按 u 撤销修改
  • 按 Ctrl + r 反向撤销
  • 按两下yy 再按 p 复制一行
  • 按 gg 跳到首行
  • 按 G 跳到行尾
  • 按 dG 从当前行开始下面全部删除
  • 按 dgg 从当前行开始上面全部删除
  • 按 d$ 从当前光标开始,删除到本行结尾
  • 按 d0 当前开头到当前光标位置全部删除

底线模式

  • wq 保存并退出
  • w 保存
  • q 退出
  • q! 强制退出
  • set nu 显示行号
  • set paste 设置粘贴模式。粘贴进来的时候会保持一致性

用户和权限

普通用户权限:在其HOME目录是不受限的,出了HOME目录多数受限

sudo(切换用户)

语法:su [-] 用户名

  • - 表示在切换的时候是否加载环境变量,建议带上
  • 参数是用户名,要切换的用户,省略表示切换到root
  • 切换之后可以通过 exit 或 Ctrl + D 退回上一个用户
su - root

注:普通用户切换 root 需要输入密码
root 切换普通用户不需要

配置 sudo 认证

当执行 sudo 命令之前,即可为这一条命令临时赋值 root 授权
但是并不是所有用户都有权利使用sudo ,需要为用户配置 sudo 认证

配置好,在执行命令之前,加上sudo 可以临时获得root 授权执行命令

打开配置文件
命令 visudo
也可以 vim /etc/sudoers
在末尾添加

用户名 ALL=(ALL)  NOPASSWD: ALL

比如:sudo mkdir /123

用户、用户组

linux 可以支持多用户、多用户组、用户加入多个用户组
linux 权限管控的单元是用户级别和用户组级别
用户可以加入用户组
必须是ROOT用户
权限控制可以针对用户也可以针对用户组

groupadd(创建用户组)

固定格式:groupadd 组名

groupadd test

groupdel(删除用户组)

固定格式:groupdel 组名

groupdel test

useradd(创建用户)

格式:useradd [-g -d] 用户名

  • -g 指定用户的组,不指定将会创建与用户同名的组并自动加入,如果已存在同名组必须指定
  • -d 指定用户 HOME 路径,不指定HOME目录默认在:/home/用户名
useradd 用户名

userdel(删除用户)

格式:userdel [-r] 用户名

  • -r 删除用户的HOME目录,不使用的话不会删除
userdel -r test1

id (查看用户组)

如果不制定那么查询的是当前用户的

格式:id 用户名

id 1111

usermod(修改用户组)

固定格式:usermod -aG 用户组 用户名

# 将test4用户加入itcast组里面
usermod -aG itcast test4

getent(查看当前系统有哪些用户)

# 查看有哪些用户
getent passwd

test: x :1002:1002::/home/test:/bin/bash
打印的结果呢,就是
用户名 : 密码 : 用户ID : 组ID : 描述信息(无用) : home目录 : 用户使用的终端

# 查询有哪些组
getent group

test:x :1002:
打印结果就是
组名称:组认证:组ID

权限认知

当我们看详细信息的时候
在这里插入图片描述
序号1:表示文件和文件夹的权限控制信息
序号2:表示文件、文件夹所属用户
序号3:表示文件、文件夹所属用户组

drwxr-xr-x. 2 root root 6 1月 4 21:17 公共
这组信息分为四个模块
在这里插入图片描述

  • 以上 r=读 w=写 x表示执行权限 -表示没有此权限
  • 第一个模块只有一位,-表示文件,d表示文件夹,l表示软连接
  • 第二个表示所属用户权限,共三位
  • 第三个表示其他用户权限,共三位

比如:drwxr-xr-x
所属用户拥有,rwx 读写执行三个权限
所属用户组拥有,rx 拥有读和执行权限,没有写权限
其他用户也是没有写权限

chmod(修改权限控制命令)

注意:只有文件、文件夹的所属用户或root用户可以修改
格式:chmod [-r] 权限 文件或文件夹

  • -R 对文件夹内的全部内容应用同样的权限修改
  • 权限:u 表示所属用户 g 所属群组 o 其他;例如:u=rwx
# 修改权限 u=r,g=w,o=x 文件夹www
chmod u=r,g=w,o=x www/

权限的数字表示法:可以分为三个数字表示。r=4,w=2,x=1

0 表示无任何权限 即 -
1 表示执行权限 即 x
2 表示写权限 即 w
3 表示写和执行权限 即 wx
4 表示读权限 即 r
5 表示读和执行权限 即 rx
6 表示读和写权限 即rw
7 表示读写执行权限 即 rwx

chmod 751 /www

chown (修改文件或者文件夹所属用户或用户组)

注意:普通用户无法修改所属为其他或组、只适合root用户可以修改
格式:chown [-R] [用户] [:] [用户组] 文件或者文件夹

  • chown root hello.txt 因为没有:号,表示修改用户
  • chown :root hello.txt 因为有:号,后面是root表示修改用户组为root
  • chown root:itheima hello.txt 用户修改为root,用户组修改为itheima
  • chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

设置用户名密码

passwd 用户名

查询登录用户

w / who

切换目录

如果不指定用户名则默认修改root用户的密码。
注意:普通用户只能修改自己的密码。

查看前n行

# 前n行
head -n 文件名

过滤内容,查找行

方法一: grep '内容' 文件名
方法二: sed -n '中国/p' 文件名
方法三: awk '中国{print}' 文件名

过滤内容查看行

方法一: cat /root/article.txt | grep '中国'
方法二: cat /root/article.txt | sed -n '/中国/p'
方法三: cat /root/article.txt | awk '/中国/ {print }'

软件操作

解压缩

tar -xzf linux路径压缩包

安装

make && make install

高级命令

grep 过滤

grep [参数] '匹配关键字' fileName
     -c:count 匹配个数
     -e:多个连续命令,即正则表达式方式
     -E:extend 正则表达式
     -i:ignore 忽略大小写
     -n:number 显示匹配到文本的行号
     -r:recursive 递归匹配,操作文件夹的时候可以用到
     -v:反转,即命中的不显示,没有命中显示出来

sed 在线编辑

sed [参数] [动作]
	参数
    -n :使用安静模式。在一般 sed 的用法中,所有来自stdin的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed特殊处理的那一行或者动作.才会被列出来。
    -e :直接在命令列模式上进行 sed 的动作编辑。
    -f :直接将 sed 的动作写在一个文件内,-f file 则可以运行 file内的 sed 动作。
    -r:sed 动作支持的是延伸型正则表达式的语法。
    -i :直接修改读取的文件内容,而不是输出到终端。
	动作
    '起行,终止行[动作行为]' 动作行为直接拼接
    案例:'2,4d'
    a:新增,a的后面可以接字符串,而这些字符串会在新的一行出现目前的下一行.
    c:取代,c的后面可以接字符串,这些字符串可以取代n1,n2之间的行
    d:删除,d后面通常不接任何字符串
    i:插入,i的后面可以接字符串,而这些字符串会在新的一行出现目前的上一行.
    p:将某个选择的数据印出。通常p会与参数 sed -n 一起运行
    s:取代,可以直接进行取代的工作。通常这个s的动作可以搭配正则表达式。例如:1,20s/old/new/g

awk 分析

awk '{pattern + action}' {filenames}
# 内置变量
ARGC    :命令行参数个数
ARGV    :命令行参数排列
ENVIRON :支持队列中系统环境变量的使用
FILENAME:awk浏览的文件名
FNR     :浏览文件的记录数
FS      :设置输入域分隔符,等价于命令行 -F选项,默认分隔符是\tab
NF      :浏览记录的域的个数
NR      :已读的记录数
OFS     :输出域分隔符
ORS     :输出记录分隔符
RS      :控制记录分隔符
$0      :整条记录
$1      :表示当前行的第一个域
ll | grep -e '.txt' |awk 'BEGIN {sum = 0} {sum += $5} END {print sum}'

sed 清除空格

sed -i  s/[[:space:]]//g 文件名

seq 打印数字

格式:
seq 尾数

seq 4
# 结果
# 1
# 2
# 3
# 4

seq 首数 尾数

seq 5 10
# 结果
# 5
# 6
# 7
# 8
# 9
# 10

seq 首数 增量 尾数

seq 5 2 10
# 结果
# 5
# 7
# 9
指定间隔符 -s

打印2到10,间隔符 : , 自增2

seq -s : 2 2 10
# 2:4:6:8:10
以 转义符作为间隔符

用 echo 打印出 \t

seq -s "`echo -e '\t'`" 2 2 10
# 2	 4	6	8	10
自动补齐默认空格 -f
  • %3g 表示不足三位自动空格补齐
  • %03g 表示不足三位,用0补齐
[root@localhost ~]# seq -f "%3g" 50 10 100
# 50
# 60
# 70
# 80
# 90
#100
根据最大数自动用0补齐 -w

不可以和 -f 一起使用

[root@localhost ~]# seq -w 50 50 100
#050
#100

cut 显示行的指定部分

  • -d “间隔符” 以什么为间隔
  • -fn 显示第 n 列
  • -fn,m 显示n和m行
  • - -complement 取反
[root@localhost ~]# cut -d ' ' -f1 compute.txt 
姓名
张三
李四

sort 排序

  • -kmn 以m列数值排序,后面还可以加
    • r : 表示反方向排序
  • -t 以什么作为分隔符
cat 111.txt |sort -t : -k2n
aaa:10:1.1
ccc:30:3.3
ddd:40:2.2
eee:50:5.5
bbb:60:4.4

uniq 去重

注意:只能去掉相邻的重复值,如果需要去除全部,需要排序

  • -i 忽略大小写
  • -c 统计每行重复次数
  • -d 仅显示重复的列,1次的将不展示
sort 111.txt | uniq 
# aa
# bb
# cc
# dd
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值