Linux命令
Linux命令手册
linux查看帮助命令
1.man 想查看的命令
2.想查看的命令 --help
3.info 想查看的命令
Linux开关机命令
shutdown -r #立刻重启
reboot #立即重启
shutdown -r10 #十分钟之后重启
shutdown -h now #立刻关机
halt #立刻关闭系统,需手工切断电源
poweroff #立刻关闭系统,且关闭电源
shutdown -h 10 #十分钟之后关机
Linux常用快捷键
1.CTRL + c #取消当前操作
2.CTRL + l #清空屏幕内容
3.CTRL + d #退出当前用户
4.CTRL + a #光标移到行首
5.CTRL + e #光标移到行尾
6.CTRL + u #删除光标到行首的内容
ls常用命令
list 列出文件夹的内容
ls 语法
ls 可选参数 可选的文件夹对象
-a all的意思,显示出所有的文件内容,以及隐藏的文件
-l 详细的输出文件夹中内容
-h 以可阅读的形式,输出文件的大小
--full-time 以完整的时间格式输出
-t 根据最后修改的时间排序文件
-F 在不同文件结尾,输出不同的特殊符号 以/结尾的就是文件夹 以*结尾的就是可执行的文件 以@结尾的就是软连接(快捷方式) 普通文件类型 结尾什么都没有
-d 显示文件夹本身信息,不输出其中的内容
-r reverse 逆转排序
-S 大写的S,针对文件大小进行排序,默认是从大到小
-i 显示出文件的inode信息(文件的身份证号,存储了文件的元信息,文件的大小,位置,权限等等)
touch命令
绝对路径:从根目录开始查找的路径就是绝对路径 相对路径:只要不是从根目录开始查找的全部都是相对路径
touch命令
touch有两个作用 1.创建普通文件,在linux下文件的后缀格式仅仅是一个名字而已,通过touch创建的都是普通文件 2.修改文件的时间
不存在的文件将会被创建为空文件,除非使用-c 或者是-h选项
touch{连续数字或字母} 创建多个文件序列 touch{1..100} touch{a..z}
touch -c #不创建任何文件
touch -t 要修改的时间(#使用200310281206格式) 文件 #修改文件的时间
touch 文件名 #把此文件的时间修改为当前时间
touch -r 指定文件 当前文件 #使用指定文件的时间属性代替当前文件时间
tar gzip zip命令
tar 命令
格式: tar 参数 要压缩后的文件名 要压缩的内容
-A : 新增文件到以存在的备份文件
-B : 设置区块大小
-c : 建立新的备份文件
-C <目录> : 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项 格式: tar -zxvf 原来存在的压缩包 -C 要把解压文件放到的目录
-d : 记录文件的差别
-X : 从备份文件中还原文件
-t : 列出备份文件的内容
-z : 通过gzip指令处理备份文件
-Z : 通过compress指令处理备份文件
-f <备份文件> : 指定备份文件
-v : 显示指令执行过程
-r : 添加文件到已经压缩的文件
-u : 添加改变了和现有的文件到已经存在的压缩文件
-j : 支持bzip2解压文件
-l : 文件系统边界设置
-k : 保留原有文件不覆盖
-m : 保留文件不被覆盖
在某一个压缩包中单独不要解压的一个文件:
tar -zxvf 要解压的压缩包名字 --exclude 要排除的文件
压缩快捷方式的源文件: tar -zchf 想要压缩成的名字 软连接(快捷方式)名字
gzip命令
gzip 压缩命令,gzip无法压缩文件夹,必须先tar对文件夹打包后才可以gzip压缩
gzip -l 压缩文件 #看压缩文件里面的内容
zip命令
压缩语法: zip 压缩文件名 要压缩的内容 解压缩语法 : unzip 压缩文件
-A : 自动解压文件
-c : 给压缩文件加注释
-d : 删除文件
-F : 修复损坏文件
-k : 兼容DOS
-m : 压缩完毕后删除源文件
-q : 运行时不显示信息处理信息
-r : 处理指定目录和指定目录下的使用子目录
-v : 显示信息的处理信息
-x "文件列表" :压缩时排除文件列表中指定的文件
-y : 保留符号链接
-b <目录> : 指定压缩到的目录
-i <格式> : 匹配格式进行压缩
-L :显示版权信息
-t<日期> : 指定压缩文件的日期
-<压缩率> :指定压缩率
cp命令
cp 复制文件命令
1.复制普通文件 cp 想要复制的文件名字 复制之后的文件名
2.复制普通文件,且改名,放入另外一个文件夹中 复制放入其他文件夹中,保留源文件的名字:cp 想要复制的文件名 ./想要放入的文件位置/ 复制文件放入其他文件夹中,并且改名:cp 想要复制的文件名 ./想要放入文件的位置/想要替换的名字
3.一次性复制多个文件 , 放入另一个文件夹中 cp 文件1 文件2 ./想要放入文件的位置/
4.复制文件夹 使用 -r 参数 -r :递归式复制目录,即复制目录下的所有层级的子目录及文件 cp -r 想要复制的文件夹名 复制之后的文件夹名
5.复制且保持文件属性不变 ,-p参数用法 -p :复制的时候保持属性的不变 cp -p 想要复制的文件夹名 复制之后的文件夹名
6.拷贝软连接时候,保持连接属性不变使用 -d 参数 -d :复制快捷方式的时候,保持复制出来的新快捷方式同样指向之前的文件 cp -d 旧软连接名字 新软连接名字
7.-i 参数的用法 , 覆盖文件前进行提示,备注:默认系统做了alias别名功能,让我们输入cp的时候,其实是已经输入了cp -i参数 cp -i 文件1 文件2 #如果文件2已经存在,则会覆盖,-i会让用户进行输入y确认覆盖
cut命令
cut命令,在文件中每一行按要求提取片段
-b 以字节未单位的分割
-n 取消分割多字节符,与-b一起用
-c 以字符为单位
-d 自定义分割符,默认以tab为分割符 cut -d ":" -f -3 文件名 #意思就是以 : 冒号为分割符,查找第三个冒号前面的内容.
-f 与-d参数一起使用,指定显示哪个区域
N 第 N 个字节,字符, 或字段,从 1 计数开始截取 N- 从第 N 个字节,字符,或者是字段直至行尾开始截取 N-M 从第 N 到第 M (包括M) 个字节,字符 或字段开始截取 -M 从第 1 到第 M (包括M )个字节,总府,或字段开始截取
find和xargs命令
stat 命令用于显示文件的状态信息,stat命令的输出信息比ls 命令的输出信息更要详细.
1.stat 文件名
这样查出来的信息可以获得三个时间戳 : 1.访问时间(access) : 用户最近一次访问时间(文件名修改了,还未被读取过,则不变) 2.修改时间(change) : 文件最后一次修改时间 (数据变动) 3.更改时间(modify) : 文件数据元(例如权限等) 最后一次修改时间
find命令用来在指定目录下查找文件.任何位于参数之前的字符串都视为欲查找的目录名,如果使用该命令时不设置任何参数,则find命令将在当前目录下查找子目录与文件.并且将查找到的子目录和文件全部进行显示.
find 查找目录和文件,语法:
find 路径 -命令参数 [输出形式]
参数: 1.-maxdepth <目录层级>:设置最大目录层级
2.-mindepth <目录层级>:设置最小目录层级 3.-atime 按照文件访问access的时间查找,单位是天 4.-ctime 按照文件改变change状态来查找文件,单位是天 5.-mtime 根据文件修改modify时间查找文件[最常用] 6.name 按照文件名字查找,支持 * ? []通配符 7.-size 按照文件的大小查找 8.-type 查找某一些类型的文件 : f 文件类型 , d 文件夹类型 9.-delete 删除找出的文件 10.-path 配合-prune参数排除指定目录 11.-prune 使find命令不在指定的目录寻找 12.-exec或-ok 对匹配的文件执行相对应sell命令 13.-print 将匹配的结果标准输出 14. ! 取反 15. -a -o 取交集 , 并集,作用类似 && 和 \
xargs命令,又称管道命令,构造参数等等.
是给命令传参数的一个过滤器,也是组合多个命令的一个工具,它把数据流分割为一些足够小的块,以方便过滤器和命令进行处理
-d #为输入指定一个定制的分隔符,默认分隔符是空格
-i #用 {} 代替传递的数据
-I string #用string来代替传递的数据-n[数字] 设置每次传递几行数据
-n #选项限制单个命令行的参数个数
-t #显示执行详情
-p #交互模式
-P n #允许的最大线程数量数为n
-s[大小] #设置传递参数的最大字节数(小于131072字节)
-x 大于 -s #设置的最大长度结束 xargs命令执行
-0 #--null项用null分隔,而不是空白,禁用引号和反斜杠处理
grep命令
grep命令是Linux中的三剑客,主要作用是对文件进行过滤 筛选 grep 命令 语法:
grep 参数 匹配模式 文件名
-v #排除匹配结果
-n #显示匹配行与行号
-i #不区分大小写
-c #只统计匹配的行数
-E #使用egrep命令,也就是支持使用扩展正则表达式元字符
--color=auto #为grep过滤结果添加颜色
-w #只匹配过滤的单词
-o #仅显示匹配到字符串本身
-q #静默模式,即不输出任何信息
mkdir命令
make directory 创建文件夹 语法 创建一个文件夹: mkdir 文件夹的名字 创建多个文件夹: mkdir {文件夹1,文件夹2,文件夹3,文件夹4} 创建100个文件夹,利用lbash脚本:mkdir 文件夹名字{1..100} 递归创建文件夹: mkdir -p ./头文件夹/子1文件夹/子2文件夹/子3文件夹 #用绝对路径创建,创建时要回到头文件夹的位置
rm命令
mv 命令就是move的缩写 ,作用是移动或是重命名文件
1.移动文件到另一个文件夹 mv ./需要移动的文件名 ./需要移到的文件夹名
2.移动多个文件,放到另一个文件夹中 mv 文件名* ./需要移动到的文件夹名/ #当前目录所有以文件名开头的文件,文件夹,都移动到需要移动到的文件夹中
3.重命名的用法 mv 旧的文件名 新的文件名 4.强制性覆盖 -f mv -f 旧文件名 新文件名 #覆盖不会提示
rm命令就是remove的含义,删除一个或者是多个文件,这是Linux系统重要命令
-f 强制删除文件,文件夹不能删除.忽略不存在的文件,不提示确认
-i 在删除前需要确认,系统默认已经有了
-I 在删除超过三个文件或者是递归删除前要求确认
-d 删除空目录
-r 递归删除目录及其内容
-v 详细显示当前系统进行的步骤
sort命令
sort命令将输入的文件内容按照规则排序,然后输出结果
1.-n 根据字符串的数值排序 对第一个字符进行排序,默认从小到大 sort -n 文件名 #想要反转排序在-n参数中加入rs
-
对排序结果去重
sort -u 文件名
3.指定分割符号,指定区域进行排序.
sort -n -t "." -k 4 文件名 #从小到大按照 . 符号进行排序
sed命令
sed命令也是Linux中的三剑客,主要是对文件的增删改查
语法: sed [参数] [sed内置命令字符] [文件]
参数选项 作用
-n 取消默认sed的输出,常与sed内置命令p一起用
-i 直接将修改结果写入文件,不用-i,sed修改的是内存数据
-e 多次编辑,不需要管道符
-r 支持正则扩展
sed的内置命令字符用于对文件进行不同的操作功能,如对文件增删改查
sed的内置命令字符 作用
a append,对文本追加,在指定后面添加一行/多行文本
d Delete,删除匹配行
i insert,表示插入文本,在指定行前添加一行/多行文本
p Print,打印匹配行的内容,通常p与-n一起使用
s/正则/替换内容/g 匹配正则内容,然后替换内容(支持正则),结尾g代表全局匹配
uniq,wc,tr 命令
uniq命令
注:echo命令是标准输出命令,类似python中的print
uniq命令可以输出或者忽略文件中的重复行,常与sort排序结合使用
1.去除连续的重复行
uniq 文件名
2.结合sort使用,去重更准确,要统计每一行重复的次数,在uniq后面加上 - c 即可
sort -n 文件名 | uniq
3.只找出文件中重复行,且统计次数
sort -n 文件名 | uniq -d -c
4.找出只出现过一次的行
sort -n 文件名 | uniq -c -u
wc命令
wc命令用于统计文件的行数,单词,字节数
-c #打印字节数
-m #打印字符数 当你输出hkz这个词的字符数的时候,会显示4个而不是3个,这是因为在hkz后面 还有一个$符号是隐藏的,可以用cat -E 参数来看看
-l #打印行数
-L #打印最长行的长度
-w #打印单词数
tr命令
tr命令从标准输入中替换,缩减或删除字符,将结果写入到标准输入
1.替换标准输入中的大小写
echo "my name is hkz" | tr 'a-z' 'A-Z'
2.使用 -d 删除参数
例:echo "my name is hkz" | tr -d 'a-z' #删除a到z的单词,''里面的东西可以改变
3.把文件当作标准输入,进行字符替换
tr 'a' 'A' < 文件名 #把文件中的小写a都替换成大写A
4.把多个连续的字符删除 -s
echo "iiiii am hhhhhhkkkkkkzzzzzz" | tr -s 'ihkz'
vim编辑
vim使用流程
vim默认机器是不安装的,需要手动安装这个工具命令
yum install vim -y #通过yum软件管理工具,安装命令vim,且默认是yes,命令之前需联网
当vim打开不存在的文件的时候,默认会创建文件
#语法是 1.vim 文件名 #打开文件
2.输入 字母 i,进入编辑模式,代表insert 输入字母 o ,在光标的下一行开始编辑 输入字母a ,在光标的行尾开始编辑
3.写完代码之后,按下esc,退出编辑模式
4.此时输入冒号,进入底线命令模式,然后输入 :wq! 强制写入文件内容且退出vim, write quit !强制性的
5.输入的冒号记得要是英文冒号
vim快捷键
上下左右:
h 向左 j 向下 k 向上 l 向右
光标移动:
w 移动到下一个单词 b 移动到上一个单词 数字 0 移动到行首 字符 $ 移动到行尾 按下 g 移动到文章的开头 按下 G 移动到文章的结尾 按下 H 移动到屏幕的开头 按下 L 移动到屏幕的结尾 按下 M 移动到屏幕的中间
命令模式下的查找:
向下查找 /你要找的内容
向上查找 ?你要找的内容 ,按下n寻找下一个单词
命令模式下的复制,粘贴,删除:
输入 yy 复制光标所在行 输入 4yy 复制4行内容 输入 p 打印粘贴内容 输入 dd 删除光标所在行 输入 D 删除光标当前位置到行尾的内容 输入 x 删除光标当前字符,向后删除 输入 X 删除光标当前字符,向前删除 输入 u 撤销上一步的动作
快捷操作 :
删除光标所在位置,到行尾的内容,且进入编辑模式,输入大写C 输入 o 在当前光标的下一行开始编辑 输入 O 在光标的上一行开始编辑 输入 A 快速进入行尾,且进入编辑模式 输入 zz 快速保存退出
批量快捷操作
快捷删除: 1.输入ctrl + v 进入可视块模式 2.用上下左右命令,选择你选操作的块 3.选中块后,输入 d 删除内容
快捷插入多行 1.选中块后,输入大写的 I ,进行写代码 2.按下esc两次,会自动生成多行代码
vim交换文件的解决办法
vim在编辑时如果异常关闭并未保存,此时系统会生成一个你刚刚编辑的文件名加.swp文件,这个文件就是你刚刚编辑的内容,按下 R 键可以恢复,你想删除的话就按 D 键 ,退出 Q 键 ,中止 A 键 , 直接编辑 E 键
修改权限
更改文件权限命令
chmod u+x 文件名 #给文件的user属主添加可执行权限
chmod 0 文件名 #取消文件所有的权限
文件权限的数字与字母转化
r read 4
w wirte 2
x exec 1
"-" 0
user 最大权限 rwx 4+2+1=7
r-w 4+0+1=5 -w- 0+2+0=2
更改文件的属主和属组
chown 命令,修改文件的属性
语法:
chown 新属主的名字 文件/文件夹
chown :属组 文件 #修改文件用户组
chown 属主:数组 文件 #同时修改文件的属主和属组
-R 递归修改文件的属组和属主
chown -R 属主:属组
更改文件的扩展属性,比chmod更改的更为底层
参数:
a #只能向文件中添加数据,不得删除
-R #递归更改文件目录属性
-V #显示命令执行过程
显示出文件的特殊权限
lsattr 文件名
模式:
" + " #增加参数
" - " #移除参数
= #更新为指定参数
A #不让系统修改文件最后访问的时间
a #只能追加文件数据,不得删除
i #文件不能被删除,改名,修改内容
创建用户
1.创建用户hong,且uid为1500
useradd -u 1500 hong #用户信息写入/etc/passwd
2.查看用户名
id 想要查看的用户名字
3.新建用户jerry,无法登录,且设置用户目录是/var/jerry
useradd -s /sbin/nologin -d /var/jerry
参数:
-c<备注> #加上备注文字,备注文字会保存在passwd的备注栏中
-d<登入目录> #指定用户登入时的启始目录
-D # 变更预设值
-e<有效期限> #指定用户有效期限
-f<缓冲天数> #指定在密码过期后多少天即关闭该账号
-g<群组> #指定用户所属的群组
-G<群组> #指定用户所属的附加群组
-m #自动建立用户的登入信息
-M #不要自动建立用户的登入信息
-n #取消建立以用户名称为名的群组
-r #建立系统账号
-s<shell> #指定用户登入后所使用的shell
-u<uid> #指定用户id
常用通配符
常用通配符
" * " 匹配任意,0或多个字符,字符串
? 匹配任意一个字符,有且只有一个字符
[abcd] 匹配abcd中任意一个字符,abcd也可以是不连续的任意字符
[a-z] 匹配a-z之间任意一个字符,要求连续字符,也可以连续数字,匹配[1-9]
[!abcd] 不匹配括号中的任意一个字符,也可以书写[!a-z]
[^abcd] 也是不匹配括号中的任意一个字符
特殊通配符
[[:upper:]] 匹配所有大写字母
[[:lower:]] 匹配所有小写字母
[[:alpha:]] 匹配所有字母
[[:alnum:]] 匹配所有的字母和数字
[[:space:]] 匹配所有标点符号
重定向符号
重定向符号
重定向的意思就是将数据传到其他地方
符号:
> #输出覆盖重定向 >> #输出追加重定向 < 或 << #标准输入重定向
1.读取文件的内容,且写入到另一个文件中,覆盖写入文件内容
cat 写入文件 > 被写入文件
2.追加写入文件内容
cat 写入文件 >> 被追加写入文件
3.重定向写入符
cat < 想要读取的文件 #把文件中的数据,发送给cat命令去读取
4.将文本内容拆分成多行
xargs -n 3 < 文件 # 3 是想要一行输出3个字符,可以变化的
5.重定向追加写入符 <<
可以结合cat命令使用
cat >> 想要被追加的文件 << EFO ,然后按回车,输入你想要加入的内容,最后再一次输入EFO关键字表示结束
EFO 是关键字,在开头表示开始的意思,在结束的时候也要写 EFO
正则表达式BRE集合
基本正则表达式BRE集合 :
^ 尖角号,用于模式的最左侧,如 "^oldboy" ,匹配以oldboy单词开头的行
$ 美元符,用于模式的最后册,如"oldboy$" ,匹配以oldboy单词结尾的行
^$ 组合符,表示空行
. 匹配任意一个且只有一个字符,不能匹配空行
\ 转义字符,让特殊含义的字符出现原形,还原本意,例如 . 代表小数点
" * " 匹配前一个字符(连续出现)0次或者1次以上,重复0次代表空,即匹配所有的内容
.* 组合符,匹配所有内容
^.* 组合符,匹配任意多个字符开头的内容
.*$ 组合符,匹配以任意多个字符结尾的内容
[abc] 匹配[]集合内的任意一个字符,a或b或c,可以写成[a-c]
[^abc] 匹配除了^后面的任意字符, ^表示对[abc]的取反
扩展正则表达式ERE集合:
扩展正则必须用grep -E 才能生效
字符 作用
" + "匹配前一个字符一次或多次
[:/]+ 匹配括号内的":"或者"/"字符一次或多次
? 匹配前一个字符0次或1次
| 表示或者,同时过滤多个字符串
() 分组过滤,被括起来的内容表示一个整体
a{n,m} 匹配前一个字符最少n次,最多m次
a{n,} 匹配前一个字符最少n次
a{n} 匹配前一个字符正好n次
a{,m} 匹配前一个字符最多m次
awk命令
awk命令也是Linux中的三剑客,适合编辑,处理匹配到文本的内容
awk更是一门编程语言,支持条件判断,数组,循环等功能,最常用的是print printf
语法:
awk 参数 '条件动作' 待处理文件
awk内置变量
内置变量 解释
$n 指定分隔符之后,当前记录的第n个字符
$0 完整的输入记录 $1表示取出第一列,$2表示取出第二列,以此类推
FS 字段分隔符,默认是空格 例: awk -F ':' '{print $1}' 1.txt , 以 : 冒号作为分隔符,取出以冒号作为分割点的第一列
NF 分隔后,当前行一共有多少字段(字段数量的意思)
NR 当前记录数,行数 例: awk 'NR==2 {print $0}' 1.txt , 表示打印出文本内容的第二行
RS 输入记录分隔符,指定输入时的换行符
ORS 输出记录分隔符,输出时使用指定符号代替换行符
FNR 各文件分别计数的行号
FILENAME 当前文件名
ARGC 命令行参数的个数
ARGV 数组,保存的是命令行所给定的个参数
对pwd文件格式化输出: awk -F":" 'BEGIN{printf "%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\n ","用户名","密码","UID","GID","用户注释","用户家目录","用户使用的解释器"} {printf "%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %s\n", $1,$2,$3,$4,$5,$6,$7}' pwd.txt
...
参数
-F 指定分割字段符
-V 定义或修改一个awk内部的变量
-f 从脚本文件中读取awk命令
Linux静态ip设置
切换root用户,使用vim命令
vim /etc/sysconfig/network-scripts/ifcfg-ens33
进入目录之后把BOOTPROTO="static" #改为static
配置IP地址: IPADDR="X.X.X.X" #设置自己想要的IP
配置子网掩码: NETMASK="255.255.255.0" #一般是这个
配置网关 : GATEWAY="X.X.X.X" #查看自己的网关为多少
配置DNS1="8.8.8.8" #此处为谷歌的DNS
配置完成之后保存退出: :wq
重启网卡: systemctl restat network
完工!