初识linux(2)

接着上篇的初识linux(1)来接着说没看过的可以去看看

cp指令

语法:cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,
则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息

总得来说就是cp 后面跟一个 src文件地址,和一个dest文件地址
这个dest地址和src地址,可以是绝对的或者相对的(绝对是指从根节点开始,一直到自己的目标文件地址,相对的是指在当前路径下的一个相对地址)

我们可以来试试看看

我们首先创建了一个testdir文件夹,然后通过cd 把当前路径下面的test.c文件,给复制到testdir文件夹下面,这个就是相对路径,我们在来试试绝对的路径

我们首先切换到ubuntu用户下面的根目录,在用su命令切换到root用户,然后创建了一个my.txt的文件(如果不切换将提示权限不够)

然后我们使用cp命令 后面跟一个绝对路径

这样也能复制

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

mv指令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命
令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的
    目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它
    将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至
    目标目录中。
    常用选项:
    -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
    总的来说move就是移动的意思,可以把文件从一个地方移动到另一个地方
    或者给文件改名称,下面我们来试试

    这个就是更改名称因为系统找不到相应的路径

    这个就是移动文件

cat指令

语法:cat [选项][文件] 功能: 查看目标文件的内容 常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
**

总得来说就是查看文件内容的命令,我们可以来试试

同样,我们可以加一个-n的参数,这样就可以展示查看内容的行号

more指令

语法:more [选项][文件] 功能:more命令,功能类似 cat 常用选项:

-n 对输出的所有行编号 q 退出more

和cat差不多类似的

less指令(重要)

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

语法: less [参数] 文件

功能:

less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前

不会加载整个文件。

选项:

-i 忽略搜索时的大小写

-N 显示每行的行号

/字符串:向下搜索"字符串"的功能

?字符串:向上搜索"字符串"的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

q:quit

我们可以找一个比较大的文件来看看,比如说系统日志

像这种大文件,我们可以用less做到切换自如,上下翻页都可以

head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而

tail 想当然尔就是看档案的结尾。 语法: head [参数]... [文件]... 功能: head

用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 选项:

-n<行数> 显示的行数

这个命令顾名思义就是从头开始查看,加行数就是显示开头多少行的内容

我们还是以系统日志举例子

tail指令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -

f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.

语法: tail[必要参数][选择参数][文件]

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项
-f 循环读取
-n<行数> 显示行数

我们也可以来试一试

同样我们可以加上管道操作符两个一起用**(管道操作符简单理解就可以是上一句指令执行完输出的结果接着用用下一句指令执行)**

我们假设要查看系统日志的前500行的后20行命令,就可以用下面指令

bash 复制代码
head -500 syslog | tail -10

时间相关的指令

date显示

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

date 用法: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

在设定时间方面

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 time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

我们可以试试看看

cal查看日历

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。"阳历"又名"太阳

命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历

历",系以地球绕行太阳一周为一年,为西方各国所通用,故又名"西历"。

这个一般是用来查看日历的

没有的话可以执行这个命令
在ubuntu下面安装

bash 复制代码
apt install -y ncal

在centos下面安装

bash 复制代码
yum install -y cal

find指令(重要)

Linux下find命令在目录结构中搜索文件,并执行指定的操作。

Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系

统可能会花费很长的时间(这里是指30G字节以上的文件系统).

常用选项:
-name 按照文件名查找文件。

总得来说就是find [路径] [选项] [操作]

bash 复制代码
 find mydata/ -name test.txt

grep指令

语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

我们同样也在系统日志文件夹下面用grep指令来抓取localhost关键字看看

bash 复制代码
grep 'localhost' syslog

我们来说说 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

我们执行完后发现没有输出任何东西,就证明在syslog下全部每一行都有localhost

我们在打开一个.c程序,反向搜索while 我们发现输完指令之后,程序输出了不带while的其他所有行

zip/unzip指令

zip就是压缩文件,我们为什么需要压缩文件,这是因为,压缩文件的目的就是用来打包文件传输用的,把一个10g的文件打包压缩成8g,这样方便我们传输,也可以降低文件传输过程中的误码率,节省时间

语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理

我们来试试;
选项 zip -r [dest.zip] [src];

unzip

解压指令;
格式unzip [src.zip] -d [destdir];

tar指令(重要):打包/解包

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

将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

其实我们只用知道 czf xzf这几个常用的指令就行了,czf c是create创建一个归档文件 z通过gzip进行压缩 f指定归档文件的名称

xzf是一个解压命令,x解包一个归档文件,z是指通过gzio进行解压缩 f指定归档文件的名称

好了,我们来试一下;

我们创建一个压缩包;

然后在试着解压一下;

uname --r指令:

这个就是用来看系统内核的

语法:uname [选项]

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

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

常用选项:

-a或--all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类

型,硬件平台类型,操作系统名称

相关推荐
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭3 分钟前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
工业甲酰苯胺3 分钟前
分布式系统架构:服务容错
数据库·架构
暮湫19 分钟前
泛型(2)
java
南宫生29 分钟前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石37 分钟前
12/21java基础
java
李小白661 小时前
Spring MVC(上)
java·spring·mvc
GoodStudyAndDayDayUp1 小时前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea
独行soc1 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain1 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship1 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存