文章目录
- ls命令主要用于查看文件内的信息
- pwd 和 cd显示当前工作的目录cd用于切换工作路径
- mkdir 和touch 创建日志文件,创建txt文档
- studo允许普通用户使用超级用户权限的工具
- rm 命令
- mv移动文件
- cp复制文件
- cat 查看文件 复制内容
- nl用于显示文件内容
- more显示文件内容
- head显示开头几行的内容
- tail读取文件后五行
- which确认系统中是否安装了指定的软件
- whereis
- find查看
- xargs 从标准输入接收输入,并把输入转换为一个特定的参数列表。
- wc 用于统计文件内容
- grep用来找到文件中的匹配文本
- cut将文本按列进行切分
- paste(添加一个或多个文本列到文件中)
- tr更改字符
- sort排序
- uniq删除任何重复行
- join类似于 paste,它会往文件中添加列
- comm比较文本文件的内容
- diff监测文件之间的差异
- df检查 linux 服务器的文件系统的磁盘空间占用情况
- du查看使用空间
- time测量一个命令的运行时间
ls命令主要用于查看文件内的信息
ls命令主要用于查看文件内的信息
ls /home
ls -al /home/ubuntu
-a 显示所有文件(all, linux中隐藏文件以"."开头)
-l 详细信息显示(long)
-d 查看目录属性(diretory)
-i 查看文件iNode号(每一个文件特殊的标识)
-h 信息的人性化显示(human)
如下使用
ls -a /home
ls -l /home
ls -al /home
ls -alh /home
pwd 和 cd显示当前工作的目录cd用于切换工作路径
显示当前工作的目录
pwd
显示当前目录的物理路径
pwd p
显示当前目录的连接路径
pwd l
cd用于切换工作路径
从当前目录进入系统根目录
cd /
从当前目录进入父目录
cd ..
从当前目录进入当前用户主目录
从当前目录进入上次所在目录
cd -
mkdir 和touch 创建日志文件,创建txt文档
创建日志文件,创建txt文档
touch.hello.log
touch hello.txt
在当前目录下创建一个文件
mkdir text
创建权限为 777 的目录
mkdir -m 777 z
连续创建目录并且显示创建的内容
mkdir -vp demo01/demo02
创建ubuntulib ubuntubin ubuntudoc 并且再ubundoc里面创建info product
mkdir -vp ubuntu{lib/,bin/,doc/{info,product}}
studo允许普通用户使用超级用户权限的工具
sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。
切换到root目录
sudo -i
sudo apt-get update
sudo apt-get install tree
rm 命令
首先用sudo创建一个log
sudo touch text.log
删了它
rm text,log
强行删除
大量删除相同后缀的文件
rm -i *.log
直接删除,不询问
rm *.log
mv移动文件
把text文件重命名
mv text.log demo01.log
移动demo01文件到te01
mkdir te01
mv demo01.log te01
cp复制文件
对文件 hello.log 建立一个符号链接 Z.log
cp -s hello.log Z.log
将text01的所有文件复制到demo01
cp -r text01/* demo01
将 h1 目录下的最近更新的文件复制到 a1 目录下
cp -iu h1/* a1
cat 查看文件 复制内容
加上行号把t2.log的内容复制到t1.log
cat -n t2.log > t1.log
nl用于显示文件内容
用于显示文件内容
nl -d t t2.log
more显示文件内容
第五行开始显示文件内容
more +5 lo.log
文件中查找第一个出现"h"字符串的行,并从该处前两行开始显示输出
more +/h lo.log
使用 ll 和 more 命令显示/etc 目录信息
ll /etc |more -10
head显示开头几行的内容
显示开头几行的内容
head -n lo.log
head -n lo.log hello.log
tail读取文件后五行
读取a.log文件后五行
tail -n 5 a.log
which确认系统中是否安装了指定的软件
which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置。它一般用来确认系统中是否安装了指定的软件
which ls
whereis
whereis -b google-chrome
find查看
查看帮助使用find
find --help
find . -print
find . -name "*.txt" -print
打印当前目录下所有以.txt 结尾的文件名
find . \( -name "*.txt" -or -name "*.pdf" \)
打印当前目录下所有以.txt 或.pdf 结尾的文件名
打印当前目录下所有以.txt 结尾的符号链接
find . -type l -name "*.txt" -print
打印当前目录下 root 用户拥有的所有文件
find . -type f -user root
找到当前目录下所有 txt 文件,并显示其详细信息
find . -name "*.txt" -exec ls -l {} \;
-exec 是 find 命令对找到的文件执行的动作,找到的文件执行命令,上面的命令就是 ls -l {}。
{}是一个占位符,在 find 命令的执行过程中会不断地替换成当前找到的文件,相当于”ls -l 找到的文件”。
;是-exec 的命令结束标记,因为规定-exec 后面的命令必须以;结束,但;在 shell 中有特殊含义,必须要转义,所以写成;。
将所有c语言文件下载到all.c包
find . -name "*.c" -exec cat {} \; > all.c
xargs 从标准输入接收输入,并把输入转换为一个特定的参数列表。
我们可以用管道将一个命令的 stdout(标准输出)重定向到另一个命令的 stdin(标准输入)。但有些命令只能以命令行参数的形式接收数据,而无法通过 stdin 接收数据流。在这种情况下,无法通过管道将数据重定向给这些命令。
这时 xargs 就可以发挥它的作用了,xargs 命令可以从标准输入接收输入,并把输入转换为一个特定的参数列表。
将多行输入转换为单行输出
cat a.txt | xargs
将单行输入转换为多行输出
cat a.txt | xargs -n 3
查找当前目录下所有 txt 代码文件,统计总行数
find . -name "*.txt" -exec cat {} \; > all.c
wc 用于统计文件内容
用于统计文件内容
统计文件的字节数、行数、字符数
wc -c a.txt
wc -l a.txt
wc -m a.txt
grep用来找到文件中的匹配文本
grep 是个很强大的命令,用来找到文件中的匹配文本,并且能够接受正则表达式和通配符,同时可以用多个 grep 命令选项来生成各种格式的输出。
将/etc/passwd 文件中出现 root 的行取出来,关键词部分加上颜色显示
grep "root" /etc/passwd --color=auto
cat /etc/passwd |grep "root" --color=auto
将/etc/passwd 文件中没有出现 root 和 nologin 的行取出来,可以使用如下命令:
grep -v "root" /etc/paswd |grep -v "nologin"
在当前目录下递归搜索文件中包含 main()的文件
grep -r "main".
正则表达式与 grep 命令
cut将文本按列进行切分
cut 命令是一个将文本按列进行切分的小工具,它可以指定分隔每列的定界符。
取出 student.txt 文件中的第一列和第三列
cut -f 1,3 -d ' ' student.txt
取出 student.txt 文件中的第一列
cut -f 1 -d ' ' student.txt
取出 student.txt 文件中的前三列
cut -f 1-3 -d ' ' student.txt
取出 student.txt 文件中除第一列的其他列
cut -f 1 -d ' ' student.txt --complement
paste(添加一个或多个文本列到文件中)
通过读取多个文件,然后把每个文件中的字段整合成单个文本流,输入到标准输出
文件中的内容按列拼接打印
paste student.txt heihei.txt
文件中的内容按列拼接,指定分隔符为’:’
paste student.txt heihei.txt -d ':'
文件中的内容各自拼接成一行
paste -s student.txt heihei.txt
tr更改字符
tr一种基于字符的查找和替换操作。换字是一种把字符从一个字母转换为另一个字母的过程。tr 从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。
大写转小写
echo 'THIS IS IMS!' |tr 'A-Z' 'a-z'
将输入的字符中的数字删除
echo 'THIS IS 165165 IMS!' |tr -d '0-9'
tr 命令的一个有趣的用法是执行 ROT13 文本编码。ROT13 是一款微不足道的基于一种简易的替换暗码的加密类型。把 ROT13 称为“加密”是大方的,“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。这个方法就是简单地把每个字符在字母表中向前移动 13 位。因为移动的位数是可能的 26 个字符的一半,所以对文本再次执行这个算法,就恢复到了它最初的形式。可以使用如下命令
加密lms获取密码
echo 'lms' |tr 'a-zA-Z' 'n-za-mN-ZA-M'
解密,输入密码
echo 'yzf' |tr 'a-zA-Z' 'n-za-mN-ZA-M'
sort排序
ort 命令能够帮助我们对文本文件和 stdin 进行排序操作。通常,它会结合其他命令来生成所需要的输出
列出/usr/share/目录下使用空间最多的前 10 个目录文件
du -s/usr/share/* | sort -nr | head -10
ls 命令输出信息中的空间使用大小字段进行排序
ls -l /usr/bin/ | sort -nr -k 5 |head -10
sort对文件内排序,默认第一列数字排序
sort a.txt
uniq删除任何重复行
uniq 只能用于排过序的数据输入,因此,uniq 要么使用管道,要么将排过序的文件作为输入,并总是以这种方式与 sort 命令结合起来使用
输出重复的
sort a.txt | uniq -d
join类似于 paste,它会往文件中添加列
两个文件中的第一个字段作为匹配字段,连接两个文件
join a.txt b.txt
comm比较文本文件的内容
通常比较文本文件的内容很有帮助。对于系统管理员和软件开发者来说,这个尤为重要。一名系统管理员可能,例如,需要拿现有的配置文件与先前的版本做比较,来诊断一个系统错误。同样的,一名程序员经常需要查看程序的修改。
comm 命令将逐行比较已经排序的两个文件。显示结果包括 3 列:第 1 列为只在第一个文件中找到的行,第 2 列为只在第二个文件中找到的行,第 3 列为两个文件的共有行。
注意,comm 命令和 join、uniq 命令一样,只能用于已经排过序的数据。
直接比较
comm f1.txt f2.txt
comm -12
comm -123
表格使用
diff监测文件之间的差异
类似 comm 命令,diff 命令被用来监测文件之间的差异
显示两个文件的差异
diff f1.txt f2.txt
-c上下文显示差距
-u 显示差异
df检查 linux 服务器的文件系统的磁盘空间占用情况
linux 中 df 命令的功能是用来检查 linux 服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
df
以 inode 模式来显示磁盘使用情况
df -i
列出文件系统的类型
df-t
显示指定类型磁盘
df-t ext4
du查看使用空间
linux 中 du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看
显示文件大小
du -h t1.txt
按照空间大小逆序排序显示
du -h | sort -nr | head -10
time测量一个命令的运行时间
time 命令常用于测量一个命令的运行时间,包括实际使用时间(real time)、用户态使用时间(the process spent in user mode)、内核态使用时间(the process spent in kernel mode)。
实际时间: 从 command 命令行开始执行到运行终止的时间。
用户态使用时间:命令执行完成花费的用户 CPU 时间,即命令在用户态中执行时间总和。
内核态使用时间:命令执行完成花费的系统 CPU 时间,即命令在核心态中执行时间总和。
测量 date 命令运行的时间
time data
将 time 命令的执行结果保存到文件中