2.基本指令

ls指令

语法

ls [选项][目标或文件]

ls -i

ls -il

ls -l

ls -ln

ls -F

ls -Fl

功能

对于目录,该命令列出该目录下的所有子目录与文件。

对于文件,将列出文件名以及其他信息

常用选项

选项功能
-a列出目录下的所有文件,包括以 . 开头的隐含文件,显示Linux系统的隐藏文件
-d将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i输出文件的i节点的索引信息。 如ls –ai指定文件
-kk字节的形式表示文件的大小。ls –alk指定文件
-l列出文件的详细信息ls -l ls -a -l == ls -al
-n用数字的UID、GID 代替名称
-F在每个文件名后附上一个字符以说明该文件的类型
"*"表示可执行的普通文件
"/"表示目录
"@"表示符号链接
`"
-r对目录反向排序
-t以时间排序
-sl文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R列出所有子目录下的文件。(递归)
-1一行只输出一个文件

pwd命令

语法

pwd

功能

显示用户当前所在的目录

cd指令

语法

cd 目录名 : 能够跟上任意绝对或相对路径

Linux中的目录结构的本质是一颗多叉树:(路径具有唯一性)

  1. 每一个子节点,既可以是一个目录,也可以是一个普通文件
  2. 这颗多叉树的叶子结点,一定是一个普通文件或者空目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-38atKRfp-1659870293973)(D:/picture/image-20220528134704778.png)]

绝对目录:从根目录开始(容易失效) (配置环境时,推荐绝对路径)

相对目录:从当前目录开始(日常使用,推荐相对路径)

功能

改变工作目录。将当前工作目录改变到指定的目录下

路径分隔符斜杠(/)(Linux)

路径分隔符反斜杠(\)(windows)

.. 上级文件

. 当前路径

选项

表达式说明
cd ..回到上级目录
cd ~当前用户的家目录
cd /回到根目录
cd -跳转至上一次所处的路径

touch指令

语法

touch [选项]... 文件...

最典型的用法 创建典型文件touch mytest.cpp touch file.txt

简单的文本编辑器:nano

  • nano mytest.c
  • 写代码
  • Ctrl + x – > Y – > Enter
  • gcc mytest.c
  • ./a.out

功能

touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件

选项

选项说明
-a
--time=atime
--time=access
--time=use
只更改存取时间
-c
--no-create
不建立任何文档
-d使用指定的日期时间,而非现在的时间
-f此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
-m
--time=mtime
--time=modify
只更改变动时间
-r把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
-t使用指定的日期时间,而非现在的时间

mkdir指令

语法

mkdir [选项] dirname...

mkdir dir 创建一个目录

mkdir -p dir1/dir2/dir3/dir4/dir5 创建一串目录

功能

在当前目录下创建一个名为 dirname的目录

选项

选项说明
-p
--parents
可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

rmdir指令

语法

rmdir [-p][dirName]

rmdir dir

功能

只能删除空目录

选项

选项说明
-p当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

rm指令

语法

rm [-f-i-r-v][dirName/dir]

rm mytest.c

rm -r dir1 递归式删除 不为空也能删除

rm -rf file.txt -f 强制删除,-r 递归删除

功能

删除文件或目录

选项

选项描述
-f即使文件属性为只读(即写保护),亦直接删除
-i删除前逐一询问确认
-r删除目录及其下所有文件

man指令

语法

man [选项] 命令

yum install -y man-pages

man printf

man 3 printf

man 2 fork

man 1 printf

man echo

man man 查询man

功能

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助

man 手册可以查看不同的手册

man 本身不会 可以 man man

选项

选项描述
-k根据关键字搜索联机帮助
num只在第num章节查找
-a将所有章节的都显示出来

cp指令

语法

cp [选项] 源文件或目录 目标文件或目录 copy

cp file.txt fial-bak.txt

cp file.txt ../file.txt-1

cp lesson lesson-bak

cp -rf lesson lesson-bak

功能

复制文件或目录

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。

若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

在拷贝的时候,要拷贝的文件,拷贝在当前路径下两个文件名称不能一样;如果不在同一路径,可以一样

默认情况下 不允许拷贝目录的 若需要 需要携带选项 -r -f

选项

选项描述
-f
--force
强行复制文件或目录, 不论目的文件或目录是否已经存在
-i
--interactive
覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R
--recursive
递归处理,将指定目录下的文件及子目录一并处理

mv指令

语法

mv [选项] 源文件或目录 目标文件或目录

mv file.txt lesson

mv lesson_1 lesson_2

mv file-bak.txt file.txt

mv dir mycode

mv -i file.txt-bak file.txt1

mv -f file.txt-bak file.txt

功能

  • mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录
  • mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录
  • 第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它
    将所给的源文件或目录重命名为给定的目标文件名
  • 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个mv命令将各参数指定的源文件均移至目标目录
  • 剪切:可以剪切普通文件、可以整体剪切目录
  • 可以对普通文件、目录文件重命名

Linux中不要轻易删除文件,因为Linux没有回收站

linux 下手动回收站的配置
将rm改造成mv

// 1.
vim ~/.bashrc         #修改这个文件
// 2.
mkdir -p ~/.trash
alias rm=trash
alias ur=undelfile
undelfile() {
mv -i ~/.trash/\$@ ./
}
trash() {
mv $@ ~/.trash/
}

选项

选项描述
-fforce强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i若目标文件 (destination) 已经存在时,就会询问是否覆盖!

cat指令

语法

cat [选项] [文件]

cat -n file.txt

功能

查看目标文件的内容 从第一行开始显示文件内容 : 比较适合查看短文本 或则代码

tac 倒着打印文件内容 从后往前打印 不能带 -n

选项

选项描述
-b对非空输出行编号
-n对输出的所有行编号
-s不输出多行空行

重定向

>: 输出重定向

echo "hello world" > hello.txt

本来应该显示到显示器的内容,把它写入到文件中

会清空原始文件的内容重新写入。

echo "hello world" >> hello.txt

>>: 追加重定向

添加内容到文件时,不会清空

cat :不带文件名的情况下,会从键盘(标准输入)。

<:输入重定向 ,把本来应该从键盘读取数据的方式,改成从指定的文件中读取

退出任务步骤:

  1. Ctrl + c
  2. 若果按错:fg 1 – > Ctrl + c

linux 下一切皆文件:

  • Linux认为所有的都可以当作文件 --> 可以使用同一套处理事情的方式,来解决所有的问题
  • (外设,除了cpu内存)磁盘、显示器、网卡、显卡、键盘、鼠标等所有的设备都看作文件,以同样的方式看待这些设备

more指令

语法

more [选项] [文件]

命令行操作:

cnt=1; while [ $cnt -le 100000 ]; do echo "hello world $cnt"; let cnt++; done

写到文件中:

cnt=1; while [ $cnt -le 100000 ]; do echo "hello world $cnt"; let cnt++; done > file.txt

统计行数:

wc -l file.txt

查看文件:

more file.txt 按会车向下 只支持向后翻

/可以搜索

功能

more命令,功能类似cat

选项

选项说明
-n对输出的所有行编号
q退出more

less指令

语法

less [参数] 文件

less file.txt less 支持前后翻动

功能

  • lessmore类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
  • less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大
  • less的用法比起more更加的有弹性。在more的时候,我们并没有办法向前面翻, 只能往后面看
  • 但若使用了less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容
  • 除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
  • 可以帮助我们查看文本,用来日志查看

选项

选项描述
-i忽略搜索时的大小写
-N显示每行的行号
/字符串向下搜索字符串的功能
?字符串向上搜索字符串的功能
n重复前一个搜索(与 / 或 ? 有关)
N反向重复前一个搜索(与 / 或 ? 有关)
qquit

head指令

语法

head [参数]... [文件]...

head -20 file.txt: 查看文本的前20行,默认为10

打印中行部分行的方法:

  1. 先将最大的输入到文本中,然后倒着打印尾(临时文件法)

    head -30020 file.txt > temp.txt

    tail -21 temp.txt

  2. 管道

    head -30020 file.txt | tail -21

管道:

  • 计算机资源:数据(计算机互联网的石油)

  • |(管道) :传输数据资源

  • head -30020 file.txt | tail -21 :先将前30020行写到管道中,再将最后的打印出来

  • head -30020 file.txt | tail -21 | head - 3

  • 级联多个命令,完成流水线式的数据处理工作

功能

  • head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10
  • headtail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾

选项

选项描述
-n<行数>显示的行数

tail指令

语法

tail[必要参数][选择参数][文件]

tail -20 file.txt 查看文本的后20行,默认为10

功能

  • 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件
  • tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容

指令

选项说明
-f循环读取
-n<行数>显示行数

时间相关的指令

格式& 用法

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

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

date

date +%Y-%m

date +%Y-%m-%d

date +%Y-%m-%d_%H

date +%Y-%m-%d_%H:%M

date +%Y-%m-%d_%H:%M:%S

date +%s: 得到时间戳 作为日志的一部分

date -d@12 将时间戳转换为时间

date +%Y-%m-%d_%H:%M:%S -d@132313123

显示

常用的标记

符号说明
%H小时
%M分钟
%S
%X相当于%H:%M:%S
%d
%m月份
%Y完整年份
%F相当于%Y-%m-%d

假定时间方面

符号说明
date -s设置当前时间,只有root权限才能设置,其他只能查看
date -s 20080523设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01设置具体时间,不会对日期做更改
date -s "01:01:01 2008-05-23"这样可以设置全部时间
date -s "01:01:01 20080523" 这样可以设置全部时间
date -s "2008-05-23 01:01:01"这样可以设置全部时间
date -s "20080523 01:01:01"这样可以设置全部时间

时间戳

时间->时间戳:date +%s

时间戳->时间:date -d@1508749502

Unix时间戳(英文为Unix epoch, Unix time, POSIX timeUnix timestamp)是从197011日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

cal指令

语法

cal [参数][月份][年份]

cal

cal 2022

cal -3

功能

用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

选项

选择描述
-3显示系统前一个月,当前月,下一个月的日历
-j显示在当前年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数
-y显示当前年份的日历

find指令

语法

find pathname -options

find /usr/include/ -name stdio.h

功能

  • 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
  • Linuxfind命令在目录结构中搜索文件,并执行指定的操作
  • Linuxfind命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很
    多,其中大部分选项都值得我们花时间来了解一下
  • 即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系
    统可能会花费很长的时间(这里是指30G字节以上的文件系统)

选项

选项说明
-name按照文件名查找文件

grep指令

语法

grep [选项] 搜寻字符串 文件

grep '1234' file.txt 将所有匹配到1234的内容显示出来

grep 'c++' file.txt

grep -i 'c++' file.txt

grep -v 'c++' file.txt

grep -vi 'c++' file.txt

grep -nvi 'c++' file.txt

功能

  • 行文本过滤工具
  • 在文件中搜索字符串,将找到的行打印出来

选项

选项说明
-i忽略大小写的不同,所以大小写视为相同
-n顺便输出行号
-v反向选择,亦即显示出没有搜寻字符串内容的那一行

zip/unzip指令

语法

zip 压缩文件.zip 目录或文件

zip test.zip tar_package tar_package 文件名

unzip test.zip

zip -r test.zip tar_package

rm -rf * 将当前目录中所有的都删除 <---- > rm -rf ./*

默认情况下,几乎所有的解压工具,解压出来的原始数据,都会被放在当前路劲下。

unzip test.zip -d 指明的路劲

为什么要打包压缩?

  1. 节约空间
  2. 我们下载下来的软件是压缩包,曾经提供软件的人,上传的是压缩包!
  3. 所有的软件写好之后,不是只有一个文件的!各种部署

所有的互联网公司后台都是Linux 系统,开发人员开发的所有软件,将来都要部署在Linux系统上的,所以所有的软件都要打包压缩,上传到Linux上,进行安装部署。

功能

将目录或文件压缩成zip格式

选择

选择描述
-r递归处理,将指定目录下的所有文件和子目录一并处理

tar指令

语法

tar [-cxtzjvf] 文件与目录 .... 参数:

打包 - 压缩

tar czf test.tgz tar_package c 创建 z 压缩 f 文档名 tgz(tar.gz) tar 打包 gz 压缩

tar xzf test.tgz x 解包 z 解压 f 文件名

tar -zcvf test.tgz tar_package 把tar_package 压缩为 test.tgz,并且显示出压缩过程

tar vxzf test.tgz tar_package 显示解压的过程

tar xzf test.tgz -C 指定路径 解压到指定的路径

tar xzvf test.tgz -C 指定路径 解压到指定路径, 显示过程

  1. Linux 下是否几乎支持所有种类的压缩包

    是的

  2. 为什么Linux下会支持

    Linux面对的平台非常多

  3. 遇到不懂的压缩包,怎么办

    test.XXX 网上搜索 centos .XXX 后缀如何解法

功能

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

选择

选择描述
-c建立一个压缩文件的参数指令(create 的意思)
-x解开一个压缩文件的参数指令!
-t查看tarfile里面的文件!
-z是否同时具有gzip的属性?亦即是否需要用gzip压缩?
-j是否同时具有bzip2的属性?亦即是否需要用bzip2压缩?
-v压缩的过程中显示文件这个常用,但不建议用在背景执行过程!
-f使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C解压到指定目录

bc指令

bc命令可以很方便的进行浮点运算

Linux 下的计算器

echo "1 + 2 + 3 + 4" | bc

uname -r 指令

语法

uname [选项]

uname -r

3.10.0-1160.11.1.el7.x86_64 x86 因特尔 x86_64 64位的 x86_32 简写 x86 x86_64简写 x_64

功能

uname用来获取电脑和操作系统的相关信息。

uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息

选择

选择说明
-a
-all
详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

热键

说明
[Tab]具有『命令补全』和『档案补齐』的功能 一下不行按两个 命令的自动补齐
[Ctrl]-c让当前的程序『停掉』 终止失控程序
[Ctrl]-d通常代表着:『键盘输入结束(End Of File, EOFEnd OfInput)』的意思;另外,他也可以用来取代exit

Ctrl + r 搜索历史命令

history 查看历史记录

关机

语法

shutdown [选项] ** 常见选项:**

云服务器是 不需要关机的 永远不关机

选择

选择说明
-h将系统的服务停掉后,立即关机
-r在将系统的服务停掉之后就重新启动
-t sec-t后面加秒数,亦即『过几秒后关机』的意思

扩展命令

  • 安装和登录命令:loginshutdownhaltrebootinstallmountumountchshexitlast
  • 文件处理命令:filemkdirgrepddfindmvlsdiffcatln
  • 系统管理相关命令:dftopfreequotaatlpaddusergroupaddkillcrontab
  • 网络操作命令:ifconfigippingnetstattelnetftprouterloginrcpfingermail nslookup
  • 系统安全相关命令:passwdsuumaskchgrpchmodchownchattrsudo pswho
  • 其他命令:tarunzipgunzipunarjmtoolsmanunendcodeuudecode

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为核心(kernel) ,但我们一般用户,不能直接使用kernel
而是通过kernel的"外壳"程序(shell),来与kernel沟通。

如何理解?为什么不能直接使用kernel

  • 从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
    • 将使用者的命令翻译给核心(kernel)处理
    • 同时,将核心的处理结果翻译给使用者
  • shell 对于Linux,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户

shell 外壳程序

我们centos 7 常用的命令行解释器(shell) 叫bash
catln`

  • 系统管理相关命令:dftopfreequotaatlpaddusergroupaddkillcrontab
  • 网络操作命令:ifconfigippingnetstattelnetftprouterloginrcpfingermail nslookup
  • 系统安全相关命令:passwdsuumaskchgrpchmodchownchattrsudo pswho
  • 其他命令:tarunzipgunzipunarjmtoolsmanunendcodeuudecode

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为核心(kernel) ,但我们一般用户,不能直接使用kernel
而是通过kernel的"外壳"程序(shell),来与kernel沟通。

如何理解?为什么不能直接使用kernel

  • 从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
    • 将使用者的命令翻译给核心(kernel)处理
    • 同时,将核心的处理结果翻译给使用者
  • shell 对于Linux,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户

shell 外壳程序

我们centos 7 常用的命令行解释器(shell) 叫bash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值