Linxu核心命令与文件管理
cd 命令
cd 语法
cd 可选的参数 文件夹
几个特殊的目录
. 当前的工作目录
.. 上一级的工作目录
- 上一次的工作目录
ls
list 列出文件夹中的内容
ls 语法
ls 可选参数 可选的文件夹对象
-a all的意思,显示出所有的文件内容,以及隐藏的
-l 详细的输出文件夹中内容
-h 以人类可阅读的形式,输出文件大小
--full-time 以完整的时间格式输出
-t 根据最后修改的时间排序文件
-F 在不同的文件结尾,输出不同的特殊符号
以/结尾的就是文件夹
以*结尾的就是可执行的文件
以@结尾的就是软连接,快捷方式
普通文件类型,结尾什么都没有
-d 显示文件夹本身信息,不输出其中的内容
-r reverse 逆转排序
-s 大写的s,针对文件大小进行排序,默认是从大到小
-i 显示出文件的inode信息(文件的身份证号,存储了文件的大小,位置,权限等等)
pwd 命令
print work directory 打印工作目录的意思
会输出当前所处的一个绝对路径
su
su命令用户切换
语法
su - 用户名
logout
退出当前系统用户
mkdir
make directory 创建文件夹
语法
mkdir 文件夹名
-p 递归创建文件夹
mkdir -p /a/b/c/d
多量创建 mkdir { a,b.c.d}
批量创建 mkdir a{ 11 .. 100 }
touch 命令
用法:touch [ 选项] .. .. 文件.. .
将每个文件的访问时间和修改时间改为当前时间
touch有两个作用
1 .创建普通文件,在linux下文件的后缀格式仅仅是一个名字而已
2 .修改文件的时间
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项
touch { 连续数字或字母} 创建多个文件序列
touch { 1 .. 10 }
touch { a.. z}
-c, --no-create 不创建任何文件
-t STAMP 使用[ [ CC] YY] MMDDhhmm[ .ss] 格式的时间替代当前时间
-r, --referencce= 文件 使用指定文件的时间属性替代当前文件时间
touch -t 修改文件的时间
cp命令
用法:cp[ 选项] .. .[ -T] 源文件 目标文件
或:cp[ 选项] .. .源文件.. .目录
或: cp[ 选项] .. .-t 目录 源文件.. .
将源文件复制至目标文件,或将多个源文件复制至目标目录
-r 递归式复制目录,即复制目录下的所有层级的子目录及文件 -p 复制的时候 保持属性不变
-d 复制的时候保持软连接(快捷方式)
-a 等于-pdr
-p
-i 覆盖前询问提示
1 .复制普通文件
cp命令 你想复制那个文件 复制之后的文件名
2 .复制普通文件,且改名,放入到另一个文件夹中
cp a.txt ./a/
3 .一次性复制多个文件,放入另一个文件夹中
cp a.txt b.txt ./mjj/
4 .复制整个文件夹,必须加上-r参数
cp -r mjj mjj2
mv 命令
mv 命令就是move的缩写,作用是移动或是重命名文件
用法:mv[ 选项] .. .[ -T] 源文件 目标文件
或:mv[ 选项] .. .源文件.. .目录
或:mV[ 选项] .. .-t 目录 源文件.. .
将源文件重命名为目标文件,或将源文件移动至指定目录
-f --force 覆盖钱不询问
-i --interactive 覆盖前询问
1 .移动文件到另一个文件夹
mv ./mjj.jj ./oldboy
2 .移动多个文件,放到另一个文件夹中
mv luffy* ./oldboy/
3 .重命名的用法
mv 旧的文件名 新的文件名
mv mjj.txt mjj.txxxt
4 .-i参数的用法,覆盖前询问
mv 在直接输入的时候,系统做了别名 ,如歌修改后的文件名存在,则会询问,是否要覆盖改文件
5 .强制性覆盖 -f
rm 命令
rm 命令就是remove的含义,删除一个或者多个文件,这个是Linux系统重要命令
-f --force 强制删除。忽略不存在的文件,不提示确认
-i
-r
-d, --dir 删除空目录
-r, -R, --recursive 递归删除目录及内容
-v, --verbose 详细显示进行的步骤
Linux 开关机命令
shutdown重启
语法:
shutdown -r 参数 -r --reboot
shutdown -r 10
shutdown -r 0
reboot
关机
语法
shutdown -h --halt 停止的含义
shutdown -h 10
shutdown -h 0
shutidown -h now
halt,poweroff,reboot
Linux命令行常用快捷键
ctrl + c
ctrl + l
ctrl + d
ctrl + a
ctrl + e
ctrl + U
VIM快捷键
vim提供的上下左右
h 向左
j 向下
k 向上
l 向右
移动光标的快捷键
w 移动到下一个单词
b 移动到上一个单词
数字0 移动到行首
字符$ 移动到行尾
按下g 移动到文章的开头
按下G 移动到文章的结尾
按下H 移动到屏幕的开头
按下L 移动到屏幕的结尾
按下M 移动大屏幕的中间
命令模式的查找
向下查找 /你要找的内容
/love 我要查找love相关的信息,按下n跳转到下一个单词
向上查找 ?你要找的内容
命令模式下的复制,粘贴,删除
输入 yy 复制光标所在行
输入 4yy 复制4行内容
输入p 打印粘贴的内容
输入dd 删除光标当前行
输入D 删除光标当前位置到行尾的内容
输入x 删除光标当前字符,向后删除
输入 x 删除光标当前字符,向前删除
输入 u 撤销上一步的动作
快捷操作
删除光标所在位置,到行尾的内容且进入编辑模式,输入大写c
输入0 在当前光标的下一行开始编辑
输入o 在光标的上一行开始编辑
输入A 快速进入行尾,且进入编辑模式
输入ZZ 快速保存退出
批量快捷操作
步骤
快捷删除
1 .输入CRT + v 进入可视块模式
2 .用上下左右命令,选择你选操作的块
3 .选中块后,输入d 删除块内容
快捷插入多行
4 . 选中块后,输入大写的I,进入写代码
5 .按下esc两次,会自动生成多行代码
重定向符号
1 .读取文件内容,且写入到另一个文件重,覆盖写入文件内容
cat douyin.txt > kuaishou.txt
2 .追加写入文件内容
cat douyin.txt >> kuaishou.txt
3 .重定向写入符
cat < douyin.txt
将文本内容拆分成多行
xargs命令
xargs -n 4 < shuzi.txt
cat命令
用法:cat [ 选项] [ 文件] .. ..
将[ 文件] 或标准输入组合输出到标准输出
清空文件内容,慎用
> 文件名
-A, 等价于 -vET
-b, 对非空输出行编号
-e
1 .对非空行显示行号
cat -b gushi.txt
2 .对所有行号显示行号
3 .在每行结尾加上$符
4 .减少空行数量,多个空行,减为1个
5cat -s gushi.txt
5 .合并多个文件
cat douyin.txt gushi.txt > ./抖音.txt
6 .非交互式的写入文件内容信息
cat >> lufei.txt << EOF
>
>
> EOF
7 . cat清空文件的用法
1 .直接清空文件,留下一个空行
echo > gushi.txt
2 .直接清空文件内容,不留空行
> gush.txt
3 .利用cat读取一个黑洞文件,然后清空其他文本
管道符
1 .对字符串进行二次过滤
cat gushi.txt | grep "nihao" 查看gushi.txt 且对内容
grep命令
过滤字符串信息的命令
more命令less
分屏查看文本内容的命令
语法
more 文件名
按下enter回车是下一行
空格是向下滚动一个屏大小
= 显示当前行号
按下q 是退出more
head 命令和tail 命令
head 命令用于查看文件开头的n行
语法
head -5 文件名
head 文件名
tail 默认从后向前开10行,也可以指定行数
tail 文件名
tail -2 文件名
-f 实时刷新文件内容变化
tail -f gushi.txt
-F 不断的打开文件
cut命令
cut-在文件的每一行中提取片断
在每个文件FILE的各行中,把提取的片断显示在标准输出。
cut [ 参数] [ 数值区间] 文件
-b 以字节为单位分割
-n 取消分割多个字节字符,与-b一起用
-c 以字符为单位
-d 自定义分隔符,默认以tab为分隔符
-f 与-d一起使用,指定显示那个区域
N 第N个字符,字符或字段直至行尾
N-M 从第N到第M(并包括第M)个字节,字符或字段
-M 从第1周到第M(并包括第M)个字节,字符或字段
1 .截取每一行的第4个字符
cut -c 4 a.txt
2 .截取4到6个字符
cut -c 4 -6 a.txt
3 .截取第5和7的字符
cut -c 5,7 a.txt
4 .截取一个范围的字符,如第四个到结尾
cut -c 4 - a.txt
5 .截取一个范围的字符,如开头到第六个字符
cut -c -6 a.txt
6 .指定分隔符号,进行截取
cut -d ":" -f 区域范围 a.txt
找出第三个区域的内容
cut -d ":" -f 3 a.txt
找出开头到第三个区域的内容
cut -d ":" -f 3 a.txt | head -5
sort 命令
1 .对文本第一个字符进行排序,默认从小到大
sort -n file.txt
2 .对排序结果反转,从大道小排序
sort -nr file.txt
3 .对排序结果去重
sort -u file.txt
4 .指定分割符号,指定区域进行排序
sort -n -t "." -k 4 IP.txt
uniq命令
uniq命令可以输出或者忽略文件重的重复行,常与sort排序结婚使用
1 .去除连续的重复行
uniq luffy.txt
2 .结合sort使用,去重更精准
sort -n luffy.txt | uniq
3 .统计每一行重复字数
sort -n luffy.txt | uniq -c
4 .只找出文件重重复行,且统计次数
sort -n luffy.txt | uniq -d -c
5 .找出只出现过一次的行
sort -n luffy.txt | uniq -c -u
wc 命令
wc 命令用于统计we年的行数、单词、字节数
-c 打印字节数
-m 打印字符数
-L 打印最长行的长度
-w 打印单词数
1 .统计文件的行数
wc -l a.txt
2 .统计单词的数量
echo "a.txt" a b c d e | wc -w
3 .统计字符数量
echo "a" | wc -m
字符串结尾有一个$符 在统计字符数量时需要多计算一个$符号
验证 "a" | cat -E 进行验证
tr命令
-c 取代所有不属于第一字符集的字符
-d 删除所有属于第一字符集的字符
-s 把连续重复的字符以单独一个字符表示
-t 先删除第一字符集较第二字符集多出的字符
1 .替换标准输入中的大小写
echo "my name is alex " | tr '[a-z]' 'A-Z'
2 .使用-d删除参数
echo "my name is alex and i am 999 years lo " | tr -d 'a'
3 .把文件当做标准输入,进行字符替换
tr 'a' 'A' < alex.txt
tar
[ root@localhost opt]
[ root@localhost opt]
[ root@localhost opt]
[ root@localhost opt]
[ root@localhost opt]
[ root@localhost opt]
LInux文件管理练习题
1 .linux命令格式是什么样的?
ls /
2 .linux命令必须添加参数才能执行吗?
3 .解释linux的命令提示符,如何用linu命令解析
whoami
hostname
hostnamectl set-hostname 新的主机名
~代表用户家目录
$ 代表普通用户的身份提示符
4 .linux的目录分隔符是?
/ 在开头就是根目录,除了开头都是目录分割符
5 .简述Linux的目录结构
linux的目录结构是一颗倒状树
以 / 根目录为起点
/root
/home
/opt
/usr等 linux类似windows中只有一个c盘
6 .切换到上一级目录
. 当前工作目录
.. 上一级的工作目录
- 上一次的工作目录
~ 当前系统登录用户的家目录
cd ..
7 .切换到上一次目录
cd -
8 .切换到用户家目录
cd ~
9 .查看当前工作目录
pwd
10 . 当前目录是/home,以绝对、相对两种路径方式进入/opt目录
绝对路径:路径以根目录为起点,就是绝对路径 /opt/a/b
相对路径: 非根目录为起点都是相对路径
./xiaoxio/linux
.. /xiaoxiao/linux
xiaohuang/linux
/home
cd .. /opt
cd /opt
11 .列出/opt/下所有文件,包含隐藏文件,且心事详细信息(时间、文件大小)
ls -a -l /opt
12 .以树状结构显示文件夹内容
tree /opt
13 .一条命令创建/tmp/a/b文件夹
mkdir -p /tmp/a/b
14 .创建python脚本first.py
touch first.py
15 .一条命令创建/tmp/a1 、 /tmp/a2 、 /tmp/a3
两种方式
touch /tmp/a1 、 /tmp/a2 、 /tmp/a3
第二种方式
touch /tmp/a{ 4 .. 10 } .txt
16 .复制/date/下所有内容/tmp/下
cp 可选参数 你要复制的内容 复制之后的内容
cp -r /date/* /tmp/
17 .更改文件名first.txt为seond.txt
mv 移动 重命名
mv 你要改的文件 更改之后的文件
mv first.txt seconfd.txt
18 .把/opt/下所有内容移动到/tmp下
mv /opt/* /tmp
19 .强制删除/tmp下所有内容
rm -rf /tmp/*
20 .查看ls命令的帮助信息
ls --help
man ls
info ls
21 .立即重启的命令
reboot shutdonw -r now
poweroff
22 .如何永久设置linux环境变量
$PATH 代表linux的环境变量的名
echo $PATH
PATH = "环境变量的路径"
用vim打开/etc/profile写入 如下内容即可
PATH = "新的环境变量"
23 .linux的常见配置文件目录是
/etc/nginx.conf
/etc/my.cnf
24 .vim三种模式是?使用流程是?
vim filname.txt 打开文件,此时进入了命令模式
在命令模式下,输入a (在光标后面开始编辑)i(在光标当前位置开始编辑) 0 (在光标下一行开始编辑)
都可以进入编辑模式
在编辑模式习写完代码之后,按下键盘ESC,退出编辑模式
输入冒号,进入底线命令模式,输入:WQ! w write写入文件内容 q queit退出vim !强制性的
:wq! 强制写入文件内容且保存退出
:q! 不写入文件内容,直接强制退出
25 .查看文件且显示行号
cat -n a.txt
26 .如何清空文件内容,注意是空内容,而非空格
利用重定向符号,输出重定向
> 重定向覆盖输出符
>> 重定向追加输出符
> a.txt
27 .显示文件前30行
head -n 30 a.txt
28 .显示文件后50行
tail -n 50 a.txt
29 .实时刷新文件内容
tail -f a.txt
30 .读取文件内容且倒序排序
cat
sort
31 .读取文件内容进行排序后去重
cat 查看文件内容
sort 对文件内容排序
uniq 对文件内容去重
[ root@xuexi opt]
32 .读取文件内容且排序后,统计重复行的次数
[ root@xuexi opt]
33 .统计文件一共有多少行
wc -l a.txt
34 .如何查看文件的详细信息(inode号、访问、修改时间、连接数)
stat a.txt
35 .找出服务器上所有以".py" 结尾的文件
find 你要从哪里找 -type 指定文件的类型(文件,文件夹) -name 你要找的文件叫什么
find / -type f name '*.py'
36 .找出服务器2天内呗访问过的文件
-atime -2
find / -maxdepth 4 -atime -2 -type f -name '*.txt '
37 .找出服务器大于50M的文件
find / -maxdepth 3 -type f -size + 50
38 .找出/tmp/目录下所有的txt文件,然后删除
find . -type f -name "*.txt" -ok rm { } \ ;
39 .把/date/html/文件夹打包压缩成dte_html.gz文件tar打包和压缩的命令
-c 打包
-x 解包
-v 显示过程
-f 指定文件名
cd /date/html
tar -czvf data_html.tgz /data/html/
40 .如何解压缩alltmp.gz文件
gzip -d alltmp.gz
41 .如何解压缩data.zip文件
unzip data.zip
42 .显示具体的系统时间,时:分:秒
date +%T
43 .如何彻底粉碎文件
shred -u a.txt