当前位置: 首页 > 图灵资讯 > 技术篇> Linux新手村必备!这些常用操作命令你掌握了吗?

Linux新手村必备!这些常用操作命令你掌握了吗?

来源:图灵教育
时间:2024-01-25 13:20:04

在计算机世界中,Linux操作系统以其强大的功能和灵活性受到程序员和IT爱好者的喜爱。然而,对于初学者来说,Linux的操作命令可能有点复杂和难以理解。

今天,让我们探索一些Linux常用的操作命令,使您的计算机操作更加流畅。

一、目录操作

首先,让我们来看看Linux 系统目录:

├── bin -> usr/bin # 用于存储二进制命令├── boot # 内核和引导系统程序所在的目录├── dev # 所有设备文件目录(如磁盘、光驱等)├── etc # 默认配置文件路径,服务启动命令存储目录├── home # 用户家目录,/root用户为/root├── lib -> usr/lib # 32仓库文件存储目录├── lib64 -> usr/lib64 # 库存文件存储目录64位├── media # 媒体文件存储目录├── mnt # 临时挂载设备目录├── opt # 自定义软件安装存储目录├── proc # 内核信息存储目录的过程及内核信息存储目录├── root # Root用户家目录├── run # 临时文件是在系统运行过程中产生的,存放目录├── sbin -> usr/sbin # 系统管理命令存储目录├── srv # 服务启动后需要访问的数据目录├── sys # 系统使用目录├── tmp # 临时文件目录├── usr # 系统命令和帮助文件目录└── var # 存储容易变化的文件的目录

让我们来看看目录的操作命令。

pwd    查看当前的工作目录    清除屏幕cd ~   目前用户目录cd /   根目录cd -   上次访问的目录cd ..   上一级目录

查看目录中的信息

ll    查看当前目录下的内容(LL小写)

创建目录

  • mkdir aaa 在当前目录下创建aaa目录,相对路径;
  • mkdir ./bbb 在当前目录下创建bbb目录,相对路径;
  • mkdir /ccc CCC目录在根目录下创建,绝对路径;

递归创建目录(将创建内部没有的目录文件夹)

mkdir -p temp/nginx

搜索命令

find / -name ‘b’ 查询根目录下(包括子目录),名为b的目录和文件;find / -name ‘b*’ 查询B开头的根目录(包括子目录)的目录和文件;find . -name ‘b’ 查询当前目录下的目录(包括子目录),名为b的目录和文件;

重命名

mv 原先目录 文件的名称   mv tomcat001 tomcat

剪切命令(如果有目录剪切到制定目录,如果没有,剪切为指定目录)

mv /aaa /bbb      将根目录下的aaa目录移动到bb目录下(如果没有bbb目录,则重新命名为bbb);mv bbbb usr/bbb  将当前目录下的bbbb目录移动到usr目录下,并修改名称为bbb;mv bbb usr/aaa   将BBBB目录放在当前目录中,移动到usr目录,修改名称为aaaa;

复制目录

  • cp -r /aaa /bbb:将/目录下的aaa目录复制到/bb目录下,在/bb目录下的名称为aaa
  • cp -r /aaa /bbb/aaa:将/目录下的aa目录复制到/bb目录下,并修改名称aaa;

强制删除指定目录

rm -rf /bbb:强制删除/目录下的bbb目录。如果bb目录中有子目录,也会被强制删除,不会提示;

删除目录

  • rm -r /bbb:普通删除。询问您是否删除每个文件。
  • rmdir test01:目录的删除

查看树状目录结构

tree test01/

批量操作

引入参数需要{}。

mkdir {dirA,dirB}  # 批量创建测试目录touch dirAA1,A2,A3}     # dira创建三份文件dira/A1,dirA/A2,dirA/A3
二、文件操作

删除

rm -r a.java  删除当前目录下的a.java文件(每次都会问y是否删除):同意)

强制删除

rm -rf a.java 强制删除当前目录下的a.java文件rm -rf ./a* 以a开头的所有文件强制删除当前目录;rm -rf ./* 强制删除目前目录下的所有文件(谨慎使用);

创建文件

touch testFile

递归删除.Pyc格式文件

find . -name '*.pyc' -exec rm -rf {} \;

在当前文件夹下打印指定大小的文件

find . -name "*" -size 145800c -print

递归删除指定大小的文件(145800)

find . -name "*" -size 145800c -exec rm -rf {} \;

递归删除指定大小的文件,打印出来

find . -name "*" -size 145800c -print -exec rm -rf {} \;
  • “.” 表示从当前目录开始进行递归搜索
  • “ -name ‘*.exe’ "根据名字搜索,搜索一切.exe结尾的文件夹或文件
  • " -type f "搜索的类型是文件
  • “-print” 输出搜索文件目录名称
  • -size 145800c 指定文件的大小
  • -exec rm -rf {} ; 递归删除(前面查询的结果)

split拆分文件split命令:大文件可以分为许多小文件,有时文件需要分为更小的片段,如提高可读性、生成日志等。

  • b:值为每个输出档案的大小,单位为 byte。
  • -C:在每个输出文件中,最大的单行 byte 数。
  • -d:以数字为后缀。
  • -l:值为每个输出档的行数大小。
  • -a:指定后缀长度(默认为2)。使用split命令创建上述date.file文件分为10KB大小的小文件:
[root@localhost split]# split -b 10k date.file[root@localhost split]# lsdate.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj

文件分为多个带字母的后缀文件。如果要使用数字后缀,可以同时使用-d参数-a length指定后缀的长度:

[root@localhost split]# split -b 10k date.file -d -a 3[root@localhost split]# lsdate.file  x000  x001  x002  x003  x004  x005  x006  x007  x008  x009

指定文件名的前缀:

[root@localhost split]# split -b 10k date.file -d -a 3 split_file[root@localhost split]# lsdate.file  split_file000  split_file001  split_file002  split_file003  split_file004  split_file005  split_file006  split_file007  split_file008  split_file009

使用-l选项根据文件的行数来划分文件,例如将文件划分为每个包含10行的小文件:

split -l 10 date.file
三、操作文件内容

修改文件内容

  • vim a.java:进入一般模式
  • i(按键):插入模式(编辑模式)
  • ESC(按键):退出
  • :wq:保存退出(shift+:调动输入框)
  • :q!:不保存退出(shift+:调动输入框)(内容有变化)(强制退出,不保留变化)
  • :q:不保存退出(shift+:调动输入框(无内容变更)

查看文件内容

cat a.java   查看a.java文件的最后一页;more a.java从   开始查看a的第一页.java文件内容,按回车键一行查看,按空格键一页一页查看,q退出;less a.java   从开始查看a的第一页.java文件内容,按回车键一行一行地看,按空格键一页一页地看,支持使用Pagedown和Pageup翻页,q退出。

总结more和less的区别

  • less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示。
  • less不需要阅读整个文件,加载速度会比more快。
  • less退出后,shell不会留下新显示的内容,而more退出后会在shell上留下新显示的内容。

实时查看文件后几行(实时查看日志)

tail -f a.java   查看a.java文件后10行内容;

前后检查几行

head a.java:查看a.java文件前10行内容;tail -f a.java:查看a.java文件后10行内容;head -n 7 a.java:查看a.java文件前七行内容;tail -n 7 a.java:查看a.java文件后7行内容;

文件内部搜索指定的内容

  • grep under 123.txt:在123.在txt文件中搜索under字符串,大小写敏感,显示行;
  • grep -n under 123.txt:在123.在txt文件中搜索under字符串,大小写敏感,显示行和行号;
  • grep -v under 123.txt:在123.在txt文件中搜索under字符串,大小写敏感,显示未搜索的行;
  • grep -i under 123.txt:在123.在txt文件中搜索under字符串,大小写敏感,显示行;
  • grep -ni under 123.txt:在123.在txt文件中搜索under字符串,大小写敏感,显示行和行号;

终止当前操作

Ctrl+c和Ctrl+Z都是中断命令,但效果不同。

Ctrl+Z扮演类似的角色,中断任务,但任务没有结束。在这个过程中,它只是保持悬挂状态。用户可以使用fg/bg操作前台或后台的任务。fg命令重新启动前台中断的任务,bg命令将中断的任务放在后台执行。

Ctrl+C还扮演类似的角色,强制执行终端程序。

你还在担心找不到真正的免费编程学习平台吗?你可以试试云源思考!课程视频、知识库、微实战、云实验室、一对一咨询。。。你想要的所有学习资源都在这里。关键是现在还是免费的!点击这里查看

重定向功能

可以使用 > 或 < 将命令输出的命令重定向test.在txt文件中(如果没有,创建一个)

echo 'Hello World' > /root/test.txt

1、grep(检索文件内容)

grep [options] pattern file
  • 全称:Global Regular Expression Print。
  • 功能:在文件中找到合格的字符串。
// 从test的开头文件中,查找包含start的行grep "start" test*// 查看包含https的行,并显示前1行(-A),后1行(-B)grep -A 1 -B 1 "https" wget-log

2、awk(数据统计)

awk [options] 'cmd' file
  • 一次读取一行文本,按输入分隔符切片,切成多个组成部分。
  • 将切片直接保存在内建变量中,$1,$2.($0表示行全部)。
  • 支持单个切片的判断,支持循环判断,默认分隔为空格。
  • -F 指定分隔符(默认为空格)1.email.out切分,打印第1/3列内容
awk '{print $1,$3}' email.out

2)email.out切分,当第一列为tcp,第二列为1时,全部打印

awk '$1=="tcp" && $2==1{print $0}' email.out

3)在上述基础上打印表头(NR表头)

awk '($1=="tcp" && $2==1)|| NR==1 {print $0}' email.out

4) 以,为分隔符,切割数据,打印第二列内容

awk -F "," '{print $2}' test.txt

5)打印日志中的第1/3列,并对第1列的数据进行分类统计

awk '{print $1,$3}' email.out | awk '{count[$1]++} END {for(i in count) print i "\t" count[i]}'

6)根据逗号,对数据进行切分,并将第一列存在文件test01.txt中

awk -F "," '{print $1 >> "test01.txt"}

3、sed(替换文件内容)

sed [option] ‘sed commond’ filename
  • Stream全名 Editor,流编辑器
  • 适用于处理文本行的内容
  • sed 正则表达式是commond
  • sed commond中有三个/,分别是源内容和替换后的内容

sed替换标记

g # 表示行业内全面替换。p # 表示打印行。w # 表示将行写入一份文件。x # 表示交换模板中的文本和缓冲区中的文本。y # 将一个字符翻译成另一个字符(但不用于正则表达式)\1 # 子串匹配标记& # 已匹配字符串标记

1)替换解析

sed -i 's/^Str/String/' replace.java

image.png

2)替换末尾.(转义).)

sed -i 's/\.$/\;/'

3)全文将Jack替换为me(g全部替换,不仅替换第一个)

sed -i 's/Jack/me/g/ replace.java

4)删除replace.java中的空间(d删除)

sed -i '/^ *$/d' replace.java

5)删除包含Interger的行(d是删除)

sed -i '/Interger/d' replace.java

6)多命令一起执行

grep 'input' 123.txt | sed 's/\"//g; s/,/\n/g'

7)替换后,将数据保存在文本中

grep  123.txt | sed -n 's/\"//gw test01.txt'

4、管道操作符|

将指令连接起来,前一个指令的输出作为后一个指令的输入

find ~ |grep "test"find ~                ///搜索当前用户的所有文件grepp "test"            //从文件中

使用管道要注意的要点

  • 只处理前一个命令的正确输出,不处理错误输出。
  • 右边的命令必须能够接收标准输入流,否则数据将在传输过程中丢弃
  • sed,awk,grep,cut,head,top,less,more,c,join,sort,split等

1)从email.在log文件中查询包含error的行

grep 'error' email.log

2)获得error的行,并取[]含有数字的行

grep 'error' email.log | grep -o \[0-9]

3)并过滤掉含有当前进程的过程

ps -ef|grep tomcat |grep -v

4)替换后,将数据保存在文本中

grep  123.txt | sed -n 's/\"//gw test01.txt'

5)将文件123.txt,按、分、去",按:切分后,将第一列存储在文件test01中.txt中

grep 'input' 123.txt | awk -F ',' '{print $2}' | sed 's/\"//g; s/,/\n/g' | awk -F ":"

5、cut(数据裁剪)

  • 将字节、字符和字段从文件的每一行剪切,并输出这些字节、字符和字段。
  • 管道输入也可以使用。image.png

文件截取

[root@VM-0-9-centos shell]# cut -d ":" -f 1 cut.txt

管道截取

[root@VM-0-9-centos shell]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin# 按:分割。截取第3列[root@VM-0-9-centos shell]# echo $PATH | cut -d ":" -f 3/usr/sbin# 按:分割。截取第三列后的数据[root@VM-0-9-centos shell]# echo $PATH | cut -d ":" -f 3-/usr/sbin:/usr/bin:/root/bin[root@VM-0-9-centos shell]#
四、系统日志位置
  • cat /etc/redhat-release:查看操作系统版本
  • /var/log/message:系统启动后的信息和错误日志是Red Hat Linux中最常用的日志之一
  • /var/log/message:系统启动后的信息和错误日志是Red Hat Linux中最常用的日志之一
  • /var/log/secure:与安全有关的日志信息
  • /var/log/maillog:与邮件相关的日志信息
  • /var/log/cron:与定期任务相关的日志信息
  • /var/log/spooler:与UUCP和news设备相关的日志信息
  • /var/log/boot.log:启动和停止相关日志信息,启动和停止守护过程

查看文件下的用户操作日志到达操作目录,执行以下程序:

cat .bash_history
五、创建和删除软连接

1、创建软连接

ln -s /usr/local/app /data

注:创建软连接时,data目录后不添加 / (添加后,查找下一级目录);image.png

2、删除软连接

rm -rf /data注意:取消软连接最后没有/,rm -rf 软连接。添加/删除文件夹;image.png

六、压缩和解压缩

tarimage.png

压缩(-c)

tar -cvf start.tar a.java b.java  ////将当前目录下a.java、b.java打包tar -cvf start.tar ./*     ///将当前目录下的所需文件打包压缩成haha.tar文件tar -zcvf start.tar.gz a.java b.java ////将当前目录下a.java、b.java打包tar -zcvf start.tar.gz ./*    ///将当前目录下的所需文件打包压缩成start.tar.gz文件

解压缩(-x)

tar -xvf start.tar      ///解压start.tar压缩包,在当前文件夹下;tar -xvf start.tar -C usr/local   //(C为大写,中间无空格)///解压start.tar压缩包,到/usr/local目录下;tar -zxvf start.tar.gz     ///解压start.tar.gz压缩包,夹下当前文件;tar -zxvf start.tar.gz -C usr/local  //(C为大写,中间无空格)///解压start.tar.gz压缩包,到/usr/local目录下;

解压缩tar.xz文件

tar xf node-v12.18.1-linux-x64.tar.xz

unzip/zip

压缩(zip)

zip lib.zip tomcat.jar       //压缩单个文件(lib.zip)zip -r lib.zip lib/        //压缩目录(lib.zip)zip -r lib.zip tomcat-embed.jar xml-aps.jar  ///将多个文件压缩成zip文件(lib.zip)

解压缩(unzip)

unzip file1.zip          ///解压zip格式压缩包unzip -d /usr/app/com.lydms.english.zip   //将`english.zip`包,解压到指定目录下`/usr/app/`
7.Linux下文件的详细信息
R:Read  w:write  x: execute执行-rw-r--r-- 1 root root  34942 Jan 19  2018 bootstrap.jar
  • 前三名代表当前用户的文件权限:可读/可写/不能执行
  • 中间三位代表当前组其他用户对当前文件的操作权限:可读/不能写/不能执行
  • 对于当前文件的权限,后三个用户可以阅读/不能写/不能执行图片image.png

更改文件的权限

chmod u+x web.xml (---x------)  为文件所有者(user)增加执行权限;chmod g+x web.xml (------x---)  为文件所有者所在组(group)增加执行权限;chmod 111 web.xml  (---x--x--x) 为所有用户分类,增加可执行权限;chmod 222 web.xml (--w--w--w-)  添加可写入权限,对所有用户进行分类;chmod 444 web.xml (-r--r--r--)  添加可读取权限,对所有用户进行分类;
八、Linux终端命令格式
command [-options] [parameter]

说明:

  • command :命令名,相应功能的英语单词或单词的缩写
  • [-options] :选项可用于控制命令或省略
  • parameter :传递给命令的参数可以是0个、1个或多个

查阅命令帮助信息-help: 显示 command 命令的帮助信息;-man: 查阅 command 使用命令手册,man 是 manual 的缩写,是 Linux 提供的手册包含了大部分命令和函数的详细使用。

使用 man 时的操作键image.png

以上是Linux常用操作命令的介绍,希望对大家有所帮助。

虽然这些只是Linux命令的冰山一角,但它们足以让你自由使用Linux操作系统。记住,每一个命令都有自己独特的用途和魅力。掌握了这些命令,你就可以在Linux世界里更自由地旅行了。愿你在探索的道路上发现更多的惊喜和乐趣!