显示当前工作目录绝对路径
[lwd@localhost ~]$ pwd
/home/lwd
创建目录
mkdir testDir
# -p 创建多级目录
mkdir -p /testDir/childDir
复制
cp source dest
# 递归复制整个文件夹
cp -r source dest
rm -f
:强制删除
rm -rf
:可以删除目录
# 将childDir移动到当前目录下
mv /testDir/childDir ./
# 将childDir改名为testDir2
mv childDir testDir2
# 获取文件名
[lwd@localhost ~]$ basename /etc/sysconfig/network
network
# 获取目录名
[lwd@localhost ~]$ dirname /etc/sysconfig/network
/etc/sysconfig
使用tree命令方便查看目录的结构,需要安装tree
yum -y install tree
选项 | 参数解释 | 示例 |
---|---|---|
-L | –level 显示的层级数 | tree -L 1 /opt |
-d | 仅显示目录不显示文件 | tree -d /tmp |
创建文件
touch a.txt
cat和tac是一组相反的命令
cat
:查看文件内容,从第一行开始显示内容,适合较短的文件,因为它会输出文件的全部内容
tac
:最后一行开始查看内容
# -n 显示行号
cat -n a.txt
显示文件全部内容,同时还会显示行号作用和cat -n
相同
[lwd@localhost ~]$ nl 20230807.txt
1 this is a txt
2 echo some tst
3 echo some tst
more 文件
:一页一页的显示文件内容,只能向下,到达文件结尾自动退出
操作 | 解释 |
---|---|
ctrl+f或空格 | 向下一页 |
enter | 一行一行向下查看 |
q | 退出more浏览状态 |
less 文件
:一页一页的显示文件内容,向上向下均可以查看,less在查看文档的过程中还可以搜索文档内容
操作 | 解释 |
---|---|
b或ctrl+b | 向上一页 |
ctrl+f或空格 | 向下一页 |
g | 快速回到首行 |
G | 快速定位到最后一行 |
q | 退出more浏览状态 |
/关键词 向下搜索关键词, n:继续向下搜索 N:继续向上搜索
?关键词 向上搜索关键词, n:继续向上搜索 N:继续向下搜索
head
:默认打印文件前十行
# -n num 指定行数
head -n 6 :打印前六行
tail
:默认打印最后十行
# -n num 指定行数
tail -n 20 文件
# -f 可以动态看到文件最后的内容变化,用于实时查看日志的输出
tail -f nginx.log
输出重定向,覆盖原文件内容
echo "hello world" > hello.txt
追加,在原文件末尾追加
echo "study linux" >> hello.txt
ln -s <源文件> <目标文件>
:创建一个软链接,相当于windows中的快捷方式
ln <目标文件> <链接文件名>
;创建一个硬链接
ln -s /root linkRoot
# 会进入到root目录
cd linkRoot
用于计算文件的行数、字数和字节数,一般我们比较关注行数
[lwd@localhost ~]$ wc /etc/profile
76 253 1819 /etc/profile
[行数] [单词数] [大小] [文件]
# 只统计行数
wc -l /etc/service
# 经常配合|一起使用
ps -ef | wc -l
用于对文本内容进行排序,默认按照ASCII码进行排序
参数 | 解释 |
---|---|
-t 分隔符 | 指定排序时使用的分隔符分割内容 |
-k | 指定需要排序的列 |
-n | 按照数值大小进行排序 |
-r | 以相反的顺序排序 |
# 以:为分隔,选取第三列进行排序,如下所示:
lwd@localhost ~]$ sort -t : -k 3 sort-file
root:x:0:0
bion:x:1:1
oper:x:11:21
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
可以看到 11 排序在2前面,因为不是按照数值进行排序的
lwd@localhost ~]$ sort -t : -nk 3 sort-file
# -n 按照数值排序
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
两个命令都可以用来比较文件内容是否相同,但是vimdiff在对比文件修改了哪些内容的时候更加方便
diff hello.txt hello1.txt
vimdiff hello.txt hello1.txt
which命令的作用是在$PATH
变量指定的路径中搜索某个系统命令的位置并且返回第一个搜索结果,也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
which java
/opt/software/jdk1.8.0_331/bin/java
which man
/usr/bin/man
find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件
# [OPTION]我们一般不会用到 [expression] 经常用到
find [OPTIN] [PATH] [expression]
find / -size +20M 大于20M文件 -20M小于 20 等于
find /etc -name init 搜索文件init
find /etc -name *init* 搜索文件名包含init的文件
find /etc -name init??? 搜索文件名以init开头结尾任意三个字母的文件
find /home -user lwd
更加详细的用法可以查看man find
使用whereis寻找特定的文件,whereis命令只能用于查找可执行文件、源代码文件和帮助文档等
whereis [-bmsu] 文件或目录名
参数 | 解释 |
---|---|
-b | 只找 binary 格式的文件 |
-m | 只找在说明档 manual 路径下的文件 |
-s | 只找 source 来源文件 |
-u | 搜寻不在上述三个项目当中的其他特殊文件 |
whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
# 只找出跟 passwd 有关的『说明文件』档名(man page)
whereis -m passwd
passwd: /usr/share/man/man1/passwd.1.gz
在linux的文件数据库(var/lib/locatedb)中查找文件,相当于find -name
命令,但是速度快的多。但是有如下的问题:
locate 文件名
# 更新文件数据库
updatedb
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,一般配合 | 使用
grep [OPTIONS] PARTTERN [FILE]
grep -i [指定字符串] [文件]
- i 不区分大小写
- v 排除指定字符串
grep 'user' /etc/inittb
配置命令的别名,别名的作用:
# 配置别名
alias -p la='ls -a --color=auto'
# 查看la对应的具体指令
alias la
# 给危险的命令别名
alias rm='echo 危险命令'
[lwd@localhost ~]$ rm pathtxt.txt
危险命令 pathtxt.txt
# \ 临时取消别名,正常使用rm
[lwd@localhost ~]$ \rm pathtxt.txt
# 绝对路径使用命令
[lwd@localhost ~]$ /usr/bin/rm pathtxt1.txt
永久配置:
需要修改配置文件/etc/profile,alias rm=‘echo 危险命令’,如果修改完之后没有生效vim .bashrc看下是不是也存在相同指令的别名
# date 显示当前时间
# + 以什么格式显示日期
date +%Y 显示当前年
date +%m 显示当前月
date +%d 显示当前几号
date +%Y%m%d
# %F 年月日
# %T 时分秒
data +%F
# date -s 修改时间
date -s '2021-11-11 11:11:11'
当对某个命令不熟悉时,使用该类型指令获得帮助,推荐直接百度
man [命令]
man ls
# 显示最近的10条指令
history 10
# 执行行号为 5的指令
!5