linux常用指令

1. 目录相关指令

pwd

显示当前工作目录绝对路径

[lwd@localhost ~]$ pwd
/home/lwd

mkdir

创建目录

mkdir testDir
# -p 创建多级目录
mkdir -p /testDir/childDir

cp

复制

cp source dest
# 递归复制整个文件夹
cp -r source dest

rm 删除

rm -f:强制删除
rm -rf :可以删除目录

mv

  1. 移动文件或目录
  2. 重命名
# 将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命令方便查看目录的结构,需要安装tree

yum -y install tree
选项 参数解释 示例
-L –level 显示的层级数 tree -L 1 /opt
-d 仅显示目录不显示文件 tree -d /tmp

2.文件相关指令

touch

创建文件

touch a.txt

cat/tac

cat和tac是一组相反的命令
cat:查看文件内容,从第一行开始显示内容,适合较短的文件,因为它会输出文件的全部内容
tac :最后一行开始查看内容

# -n 显示行号
cat -n a.txt

nl

显示文件全部内容,同时还会显示行号作用和cat -n相同

[lwd@localhost ~]$ nl 20230807.txt 
     1  this is a txt
     2  echo some tst
     3  echo some tst

more/less

more 文件:一页一页的显示文件内容,只能向下,到达文件结尾自动退出

操作 解释
ctrl+f或空格 向下一页
enter 一行一行向下查看
q 退出more浏览状态

less 文件:一页一页的显示文件内容,向上向下均可以查看,less在查看文档的过程中还可以搜索文档内容

操作 解释
b或ctrl+b 向上一页
ctrl+f或空格 向下一页
g 快速回到首行
G 快速定位到最后一行
q 退出more浏览状态
/关键词 向下搜索关键词, n:继续向下搜索 N:继续向上搜索
?关键词 向上搜索关键词, n:继续向上搜索 N:继续向下搜索

head、tail

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

ln -s <源文件> <目标文件>:创建一个软链接,相当于windows中的快捷方式
ln <目标文件> <链接文件名>;创建一个硬链接

ln -s /root linkRoot
# 会进入到root目录
cd linkRoot

wc

用于计算文件的行数、字数和字节数,一般我们比较关注行数

[lwd@localhost ~]$ wc /etc/profile
 76      253  	1819  /etc/profile
[行数] [单词数] [大小]   [文件]
# 只统计行数
wc -l /etc/service
# 经常配合|一起使用
ps -ef | wc -l

sort

用于对文本内容进行排序,默认按照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

diff/vimdiff

两个命令都可以用来比较文件内容是否相同,但是vimdiff在对比文件修改了哪些内容的时候更加方便

diff hello.txt hello1.txt
vimdiff hello.txt hello1.txt

3.查找命令

which

which命令的作用是在$PATH 变量指定的路径中搜索某个系统命令的位置并且返回第一个搜索结果,也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

which java
/opt/software/jdk1.8.0_331/bin/java

which man
/usr/bin/man

find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件

# [OPTION]我们一般不会用到 [expression] 经常用到
find [OPTIN] [PATH] [expression]
find / -size +20M 大于20M文件 -20M小于 20 等于
  • name:根据文件名搜索
find /etc -name init 搜索文件init
find /etc -name *init* 搜索文件名包含init的文件
find /etc -name init??? 搜索文件名以init开头结尾任意三个字母的文件
  • user:查找所有者的文件
find /home -user lwd

更加详细的用法可以查看man find

whereis

使用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

locate

在linux的文件数据库(var/lib/locatedb)中查找文件,相当于find -name 命令,但是速度快的多。但是有如下的问题:

  1. 但是有些刚刚创建的文件可能会找不到(文件还没有被更新到文件资料库),就查找不到,为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库
  2. 如果文件存放在/tmp目录下,不会被更新到文件资料库
locate 文件名
# 更新文件数据库
updatedb 

grep

是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,一般配合 | 使用

grep [OPTIONS] PARTTERN [FILE]
grep -i [指定字符串] [文件]
- i 不区分大小写
- v 排除指定字符串
grep 'user'  /etc/inittb

4. 其他指令

alias

配置命令的别名,别名的作用:

  1. 简化命令
  2. 为了安全考虑,给禁止使用的危险命令设置别名
    命令行配置别名是临时的,重新连接后别名就不存在了
# 配置别名
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看下是不是也存在相同指令的别名

  1. .bashrc修改的别名只针对当前用户生效
  2. /etc/profile配置针对所有用户都生效

date

# 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 [命令]
man ls

history

# 显示最近的10条指令
history 10
# 执行行号为 5的指令
!5

你可能感兴趣的:(linux,服务器)