初识Linux

基础认知

Linux是⼀种⾃由和开放源代码的类UNIX操作系统。

认识Linux的内核版本名称,,例如3.10.0-1160.119.1.el7.x86_64,其中3表示主版本号,10表示次版本号(偶数为稳定版本,奇数为测试版本),0表示修订次数,el7表示centos7,x86_64表示体系结构为64位系统。

Linux下基本指令

ls指令

**语法:**ls [选项] [目录或文件]

功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常⽤选项:

  • -a 列出⽬录下的所有⽂件,包括以.开头的隐含⽂件。
  • -d 将⽬录像⽂件⼀样显⽰,⽽不是显⽰其下的⽂件。如:ls‒d指定⽬录
  • -i 输出⽂件的i节点的索引信息。如ls‒ai指定⽂件
  • -k 以k字节的形式表⽰⽂件的⼤⼩。ls‒alk指定⽂件
  • -l 列出⽂件的详细信息
  • -n ⽤数字的UID,GID代替名称。
  • -F 在每个⽂件名后附上⼀个字符以说明该⽂件的类型,"*"表⽰可执⾏的普通⽂件;"/"表⽰ ⽬录;"@"表⽰符号链接;"|"表⽰FIFOs;"="表⽰套接字(sockets)。(⽬录类型识别)
  • -R 对⽬录反向排序
  • -t 以时间排序
  • -s 在l⽂件名后输出该⽂件的⼤⼩。(⼤⼩排序,如何找到⽬录下最⼤的⽂件)
  • -r 列出所有⼦⽬录下的⽂件。(递归)
  • -1 ⼀⾏只输出⼀个⽂件。

pwd命令

**语法:**pwd

**功能:**显⽰⽤⼾当前所在的⽬录

cd指令

Linux理论知识:路径的认识

  • Linux系统中,磁盘上的⽂件和⽬录被组成⼀棵⽬录树,每个节点都是⽬录或⽂件
  • 其中普通⽂件⼀定是⽬录树的叶⼦节点
  • ⽬录可能是叶⼦(空⽬录),也可能是路上节点
  • 理解路径存在的意义:树状组织⽅式,都是为了保证快速定位查找到指定的⽂件,⽽定位⽂件就 需要具有唯⼀性的⽅案来进⾏定位⽂件。其中任何⼀个节点,都只有⼀个⽗节点,所以,从根⽬录开始,定位指定⽂件,路径具有唯⼀性
  • 绝对路径:⼀般从/开始,不依赖其他⽬录的定位⽂件的⽅式 • 相对路径:相对于当前⽤⼾所处⽬录,定位⽂件的路径⽅式
  • 绝对路径⼀般不会随着⽤⼾的路径变化⽽丧失唯⼀性,⼀般在特定服务的配置⽂件中经常被使⽤
  • 相对路径因为它的便捷性,⼀般在命令⾏中使⽤较多

语法: cd ⽬录名

**功能:**改变⼯作⽬录。将当前⼯作⽬录改变到指定的⽬录下

touch 命令

**语法:**touch [ 选项 ]... ⽂件 ...

**功能:**touch命令参数可更改⽂档或⽬录的⽇期时间,包括存取时间和更改时间,或者新建⼀个不存在的⽂件。

常⽤选项:

  • -a:仅更改访问时间
  • -c:仅更改修改时间

mkdir指令

**语法:**mkdir [ 选项 ] dirname...

**功能:**在当前⽬录下创建⼀个名为"dirname"的⽬录

常⽤选项:

  • -p/--parents: 可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在,加上此选项后,系统将⾃动建⽴好那些尚不存在的⽬录,即**⼀次可以建⽴多个⽬录**

rmdir 指令&&rm指令

rmdir是⼀个与mkdir相对应的命令,mkdir是建⽴⽬录,⽽rmdir是删除命令

**语法:**rmdir [-p] [dirName]

**适⽤对象:**具有当前⽬录操作权限的所有使⽤者

功能:删除空⽬录

常用选项:

  • -p 当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话,就连带⽗⽬录⼀起删除。

rm命令可以同时删除⽂件或⽬录

语法: rm [-f-i-r-v] [dirName/dir]

**适⽤对象:**所有使⽤者

**功能:**删除⽂件或⽬录 常

⽤选项:

  • -f 即使⽂件属性为只读(即写保护),亦直接删除
  • -i 删除前逐⼀询问确认
  • -r 删除⽬录及其下所有⽂件

man 指令

语法: man [选项] 命令

常⽤选项:

  • -k根据关键字搜索联机帮助
  • num只在第num章节查找
  • -a 将所有章节的都显⽰出来,⽐如manprintf它缺省从第⼀章开始搜索,知道就停⽌,⽤a选 项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕

解释一下:man手册一共分为9章

  • 1是普通的命令
  • 2是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么 头⽂件)
  • 3是库函数,如printf,fread是特殊⽂件,也就是/dev下的各种设备⽂件
  • 4略
  • 5是指⽂件的格式,⽐如passwd,就会说明这个⽂件中各个字段的含义
  • 6是给游戏留的,由各个游戏⾃⼰定义
  • 7是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
  • 8是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
  • 9略

cp指令

语法: cp [ 选项 ] 源⽂件或⽬录 ⽬标⽂件或⽬录

**功能::**复制⽂件或⽬录

说明:

  • cp指令⽤于复制⽂件或⽬录
  • 如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中

常⽤选项:

  • -f 或--force 强⾏复制⽂件或⽬录,不论⽬的⽂件或⽬录是否已经存在
  • -i 或--interactive 覆盖⽂件之前先询问⽤⼾
  • -r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符号链接,则⼀律视为普通⽂件处理

mv指令

mv命令是move的缩写,可以⽤来移动⽂件或者将⽂件改名(move(rename)files,经常⽤来备份⽂件 或者⽬录

**语法:**mv [ 选项 ] 源⽂件或⽬录 ⽬标⽂件或⽬录

功能:

    1. 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其移⾄⼀个新的⽬录中。
    1. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬ 录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。
    1. 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源 ⽂件均移⾄⽬标⽬录中。

常⽤选项:

  • -f:force强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖
  • -i:若⽬标⽂件(destination)已经存在时,就会询问是否覆盖

cat 指令

语法: cat [ 选项 ] [ ⽂件 ]

**功能:**查看⽬标⽂件的内容

常⽤选项:

  • -b 对⾮空输出⾏编号,空⾏不做编号
  • -n 对输出的所有⾏编号
  • -s 不输出多⾏空⾏

more指令

语法: more [ 选项 ]

**功能:**more命令,功能类似cat

常⽤选项:

  • -n指定输出⾏数
  • q退出more

less 指令

  • less⼯具也是对⽂件或其它输出进⾏分⻚显⽰的⼯具,应该说是linux正统查看⽂件内容的⼯具, 功能极其强⼤
  • less的⽤法⽐起more更加的有弹性,在more的时候,我们并没有办法向前⾯翻,只能往后⾯ 看
  • 但若使⽤了less时,就可以使⽤[pageup][pagedown]等按键的功能来往前往后翻看⽂件,更容易⽤来查看⼀个⽂件的内容
  • 除此之外,在less⾥头可以拥有更多的搜索功能,不⽌可以向下搜,也可以向上搜。

语法:

  • less [ 参数 ] ⽂件

**功能:**less与more类似,但使⽤less可以随意浏览⽂件,⽽more仅能向前移动,却不能向后移动,⽽ 且less在查看之前不会加载整个⽂件。

选项:

  • -i 忽略搜索时的⼤⼩写
  • -N 显⽰每⾏的⾏号
  • / 字符串:向下搜索"字符串"的功能
  • ? 字符串:向上搜索"字符串"的功能
  • n 重复前⼀个搜索(与/或?有关)
  • N 反向重复前⼀个搜索(与/或?有关)
  • q:quit

tail 指令

tail 命令从指定点开始将⽂件写到标准输出.使⽤tail命令的-f 选项可以⽅便的查阅正在改变的⽇志⽂ 件,tail-f filename会把filename⾥最尾部的内容显⽰在屏幕上,并且不断刷新,使你看到最新的⽂件内容.

**语法:**tail 必要参数 [⽂件]

功能: ⽤于显⽰指定⽂件末尾内容,不指定⽂件时,作为输⼊信息进⾏处理。常⽤查看⽇志⽂件。

选项:

  • -f 循环读取
  • -n<行数> 显⽰⾏数

date 指令

指定格式显⽰时间: date +%Y:%m:%d

⽤法: date [OPTION]... [+FORMAT]

1. 在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中常⽤的标记列表如下

  • %H:⼩时(00..23)
  • %M:分钟(00..59)
  • %S:秒(00..61)
  • %X:相当于%H:%M:%S
  • %d:⽇(01..31)
  • %m:⽉份(01..12)
  • %Y:完整年份(0000..9999)
  • %F:相当于%Y-%m-%d

2.在设定时间⽅⾯

  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对⽇期做更改
  • date -s "01:01:012008-05-23″ //这样可以设置全部时间
  • date -s "01:01:0120080523″ //这样可以设置全部时间
  • date -s "2008-05-2301:01:01″ //这样可以设置全部时间
  • date -s "2008052301:01:01″ //这样可以设置全部时间

3. 时间戳

  • 时间->时间戳:date+%s
  • 时间戳->时间:date-d@1508749502
  • Unix时间戳(英⽂为Unixepoch,Unixtime,POSIXtime或Unixtimestamp)是从1970年1⽉1⽇(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

cal指令

命令格式: cal 参数 [ 年份 ]

功能:⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份和年份

常⽤选项:

  • -3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
  • -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)
  • -y 显⽰当前年份的⽇历

find 指令

  • Linux下find命令在⽬录结构中搜索⽂件,并执⾏指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强⼤。由于find具有强⼤的功能,所以它的选 项也很多,其中⼤部分选项都值得我们花时间来了解⼀下。
  • 即使系统中含有⽹络⽂件系统(NFS),find命令在该⽂件系统中同样有效,只你具有相应的权 限。
  • 在运⾏⼀个⾮常消耗资源的find命令时,很多⼈都倾向于把它放在后台执⾏,因为遍历⼀个⼤的 ⽂件系统可能会花费很⻓的时间(这⾥是指30G字节以上的⽂件系统)。

**语法:**find pathname -options

功能:⽤于在⽂件树中查找⽂件,并作出相应的处理(可能访问磁盘)

常⽤选项

  • -name 按照⽂件名查找⽂件
  • 其他选项需要在查,这个命令其实⽐较复杂

which指令

语法:which 指令名

**功能:**搜索系统指定的命令

where指令

语法:wherr 命令名

功能:⽤于找到程序的源、⼆进制⽂件或⼿册

alias指令

语法:alias 别名='指令'

**功能:**设置命令的别名

grep指令

**语法:**grep [ 选项 ] 搜寻字符串 ⽂件

**功能:**在⽂件中搜索字符串,将找到的⾏打印出来

常用选项:

  • -i:忽略⼤⼩写的不同,所以⼤⼩写视为相同
  • -n:顺便输出⾏号
  • -v:反向选择,亦即显⽰出没有'搜寻字符串'内容的那⼀⾏

top指令

**语法:**top -选项 <num>

**功能:**设置屏幕刷新或次数

常用选项:

  • -d: 刷新的时间间隔
  • -n: 刷新的次数
  • q:退出

zip/unzip 指令

**语法:**zip 压缩⽂件.zip ⽬录或⽂件

**功能:**将⽬录或⽂件压缩成zip格式

常⽤选项

  • -r:递归处理,将指定⽬录下的所有⽂件和⼦⽬录⼀并处理

举例

  • 将test2⽬录压缩: zip test2.zip test2/*
  • 解压到tmp⽬录: unzip test2.zip -d /tm

关于rz/sz

这个⼯具⽤于windows机器和远端的Linux机器通过XShell传输⽂件.安装完毕之后可以通过拖拽的⽅式将⽂件上传过去.

tar 指令

打包/解包,不打开它,直接看内容

语法: tar [-cxtzjvf] ⽂件与⽬录 ....

参数:

  • -c:建⽴⼀个压缩⽂件的参数指令(create的意思)
  • -x:解开⼀个压缩⽂件的参数指令
  • -t:查看tarfile⾥⾯的⽂件
  • -z:是否同时具有gzip的属性?亦即是否需要⽤gzip压缩
  • -j:是否同时具有bzip2的属性?亦即是否需要⽤bzip2压缩
  • -v:压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程!
  • -f: 使⽤档名,请留意,**在f之后要⽴即接档名,**不要再加参数
  • -C:解压到指定⽬录

特别注意,在参数 f 之后的⽂件档名是⾃⼰取的,我们习惯上都⽤.tar来作为辨识。

如果加z参数,则以 .tar.gz 或 .tgz 来代表gzip压缩过的tarfile

如果加j参数,则以.tar.bz2来作为附档名啊

由于我们使⽤gzip压缩,所以要查阅该tarfile内的⽂件时,就得要加上 z 这个参数了

bc指令

bc命令可以很⽅便的进⾏浮点运算

uname ‒r指令

**语法:**uname [选项]

**功能:**uname⽤来获取电脑和操作系统的相关信息。

**补充说明:**uname可显⽰linux主机所⽤的操作系统的版本、硬件的名称等基本信息。

常⽤选项:

  • -a或‒all详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
  • lsb_release-a:查看操作系统版本

重要的⼏个热键[Tab],[ctrl]+c,[ctrl]+d

  • Tab\] 按键---具有『命令补全』和『档案补⻬』的功能

  • Ctrl\]+d 按键---通常代表着:『键盘输⼊结束(EndOfFile,EOF戒EndOfInput)』的意思;另外, 他也可以⽤来取代exit

**语法:**shutdown[选项]

常⻅选项:

  • -h:将系统的服务停掉后,⽴即关机。
  • -r:在将系统的服务停掉之后就重新启动
  • -tsec:-t后⾯加秒数,亦即『过⼏秒后关机』的意思

shell命令以及运⾏原理

Linux严格意义上说的是⼀个操作系统,我们称之为"核⼼(kernel)",但我们⼀般⽤⼾,不能直接使⽤kernel。⽽是通过kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通。

从技术⻆度,Shell的最简单定义:命令⾏解释器(commandInterpreter)主要包含:

  • 将使⽤者的命令翻译给核⼼(kernel)处理。
  • 同时,将核⼼的处理结果翻译给使⽤者。

对⽐windowsGUI,我们操作windows不是直接操作windows内核,⽽是通过图形接⼝,点击,从⽽完成我们的操作(⽐如进⼊D盘的操作,我们通常是双击D盘盘符.或者运⾏起来⼀个应⽤程序)。

shell 对于Linux,有相同的作⽤,主要是对我们的指令进⾏解析,解析指令给Linux内核。反馈结果在通过内核运⾏出结果,通过shell解析给⽤⼾。

相关推荐
听风吹雨yu2 小时前
YoloV11的pt模型转rknn模型适用于RK3588等系列
linux·python·yolo·开源·rknn
nihui1232 小时前
Kali Linux 中 Nmap 工具详细使用指南
linux·网络·web安全
生而为虫2 小时前
34-35.玩转Linux操作系统
linux·运维·服务器
枕咸鱼的猫2 小时前
Linux命令打包/压缩(tar)、通用压缩(zip)详解
linux·运维·服务器
`林中水滴`2 小时前
Linux系列:Ubantu 安装 MySQL 8.0 教程
linux
你我一见如故2 小时前
Linux基础(4)Linux中的开发工具(1)--yum和vim
linux·服务器·编辑器·vim
JiMoKuangXiangQu2 小时前
Linux eBPF 错误:invalid bpf_context access
linux·ebpf
kaoa0003 小时前
Linux入门攻坚——61、tomcat负载均衡集群-LB Cluster
linux·tomcat·负载均衡
洋葱 ☠3 小时前
极简部署linux免费ssl证书Let‘s Encrypt,自动续签,nginx/apache都可以,域名指向服务器即可,无需项目
linux·nginx·ssl