学习Linux,要认识它的指令,先把基本的指令学会,在下一步的学习过程中不断去实践。指令的学习不是背,是在实践中去学会,不需要刻意去学,要多去实践。
文件=文件内容(都是二进制数据,都要被存储)+文件属性,我们以后学习的对文件进行操作,要么对文件内容进行操作要么对文件属性进行操作,要么同时操作。
功能:ls指令可以列出该目录下的文件和子目录
指令ls -l,显示文件的属性内容
指令ls -a,显示隐藏文件(以点开头的就是隐藏文件)
例子:先创建一个隐藏文件,然后用用指令ls -la,显示详细的隐藏文件,最后不加a,看不到隐藏的文件
指令ll,功能与ls -l一样
功能:显示当前工作目录
pwd显示当前目录的路径
功能:切换工作目录
指令cd …;指令cd .
说明:pwd指令显示当前目录路径,cd指令进入一个点的目录(一个点就是当前目录),在pwd显示当前目录路径,发现一样;在cd 进入两个点的目录(两个点表示上一级目录),pwd显示的结果是上一级的目录路径
绝对路径和相对路径
绝对路径:我们从/目录开始,定位一个叶子文件的方式,形成的路径叫绝对路径。
相对路径:相对于当前所处的目录为参考点,我们定位一个文件路径。
cd … :返回上级目录
cd /home/litao/linux/ :绝对路径
cd …/day02/ :相对路径
cd ~ :进入用户家目录
cd - :返回最近访问的目录
补充:
在Linux系统中,所有的目录和文件组建成了一颗目录树,树的结点为目录和文件。(在Linux系统中,文件夹叫目录)
整体的目录结构就是一个多叉树:
1.叶子节点一定是普通文件或者空目录
2.路上节点,非叶子节点,一定是目录
3.访问一个文件的本质,需要先找到它,找文件的本质就是在一颗多叉树中对结点进行查找
如果我们忘记了自己在整个目录中的位置,我们可以输入tree指令来确认位置
#yum install -y tree
apt -get install tree
功能:新建一个不存在的文件
-a 更改存取时间
-c 不建立任何文档
-d 使用指定日期时间,而非现在时间
-m 只更改变动时间
-t 使用指定的日期和时间
-r 把指定文档和目录的时间,统统设成和参考文档或目录的日期时间相同
功能:在当前目录下创建一个目录
可以连续在同一个目录下创建多个目录
也可以递归创建多个目录
mkdir -p
1——rmdir指令和mkdir指令相对应,mkdir是创建目录,rmdir是删除目录
功能:rmdir的功能是删除空目录,不是空目录就报错
当前目录为空,返回上一个目录,删除空目录。
2——rm指令
功能:删除文件和目录
rm [-f-r-i-v] [dirname/dir]
-f 即使文件属性为只读(具有写保护),都可以直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所以文件
查看当前目录下有个3文件夹,进入3文件夹,然后进入4文件夹,通过cd指令的绝对路径,返回1文件夹里,然后通过rm -r 指令全部删除目录和目录下的所以文件。
功能:man 指令,查看指令的功能
安装联机手册:yum install -y man-pages
输入man man指令——联机手册,前3章比较常用
1.普通的指令
2.系统调用,open,write之类(通过这个,可以查到调用这个函数需要什么头文件)
3.库函数
功能:复制文件和目录
说明:cp指令用于复制文件或目录,如果同时指定两个以上的目录和文件,且最后的目的地是一个已经存在的目录,它会把前面指定的所有目录和文件都复制到此目录中。如果同时指定两个以上的目录和文件,且最后的目的地不是一个已经存在的目录,就会出现错误信息。
-f或–force强行复制文件或目录, 不论目的文件或目录是否已经存在。
-i或–interactive覆盖文件之前先询问用户 。
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或者符号链接,则一律视为普通文件处理。
-R或–recursive递归处理,将指定目录下的文件及子目录一并处理
目录不加 / *,会把目录直接拷贝到目标目录下。
进入23文件夹,里面没文件或者目录,创建4个文件,返回上一个目录,在该目录下创建一个目录,作为目标目录,然后把23文件夹拷贝到目标文件夹里。
目录加 /*,会把目录下的文件和文件夹直接拷贝到目标目录下。
先查看该目录的文件,然后创建一个目录23,把10_23目录里的文件全部拷贝到23里。tree 文件名,以该文件作为根目录,以二叉树的形式展开。
功能:可以用来移动文件或者将文件改名,经常用来备份文件和目录。
在该目录下创建一个code文件,将code文件移动到23文件里,我们进入23文件里就可以找到code文件。
说明:
1.mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个 (也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3.当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
-f或者force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i若目标文件 (destination)已经存在时,就会询问是否覆盖!
功能:打印文件内容
echo 指令:向显示器打印,加个‘>’重新改变它的方向,写到文件里
默认向屏幕输出
“>”输出重定向,把“45678”向文件里写入(文件里的内容要清空)
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
补充:
cat的其他用法:
cat 回车,然后你输入什么,屏幕就给你打印什么。(默认读取的时候,是从键盘文件里输入的)
输入什么,打印什么
“>”输出重定向(内容),没有就新建文件,清空目标文件
“<”输入重定向(内容),本应该从键盘读取内容,变成了从文件中读取。
“>>”追加重定向(追加内容),不删除原本的内容
-n 对输出的所有行编号
-q 退出more
more file.txt
查看大文件:但是只能一行一行的往下翻,并且不能往上翻
功能:查看大文件,并且可以定位到具体的行,上下键可以上下翻
1.less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
2.less的用法比起more更加的有弹性。在more的时候,我们并没有办法向前翻,只能往后面翻。
3.但若使用了less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件, 更容易用来查看一个文件的内容。
4.除此之外, 在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
说明:
less与more类似, 但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
-i 忽略搜索时的大小写
-N显示每行的行号
/ 字符串:向下搜索”字符串”的功能
?字符串: 向上搜索"字符串”的功能
n:重复前一个搜索(与/或?有关)
N:反向重复前一个搜索(与/或?有关)
q:quit
head指令就和它的名字一样通俗易懂,显示开头某个数字区域的文字区块。
功能:head显示档案的开头至标准输出中,默认打印相应文件的前十行。
tail命令从指定点开始将文件写到标准输出(显示屏)
功能:用于显示指定文件的末尾的内容,不指定文件时,作为输入信息进行处理。常用查看文件日志。
-f 循环读取
-n<行数> 显示行数
date显示
date指定格式显示时间: date +%Y-%m-%d-%H:%M:%S
1.在显示方面,使用者可以根据将要显示的格式,去显示时间,格式设定为一个加法后面接数个标记,常用的标记如下:
%H:小时(00——23)
%M:分钟(00——59)
%S:秒(00——59)
%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:01 2008-05-23” //这样可以设置全部时间
date -s “01:01:01 20080523" //这样可以设置全部时间
date -s “2008-05-23 01:01:01" //这样可以设置全部时间
date -s “20080523 01:01:01" //这样可以设置全部时间
3.时间戳(熟悉时间戳与时间的相互转换)
时间->时间戳:date +%s
时间戳->时间:date -d@1698124870
这个数据是外国人定的,外国人是0点,中国是8点。(是从1970年1月1日午夜开始得,经过的秒数不考虑闰秒)该数据是单向递增,具有唯一性。
cal指令用来显示公历(阳历、日历)。公历是国际通用的用法。“阳历”又名“太阳历”,地球绕太阳一周为一年,为西方各国所通用,也叫“西方历”
功能: 查看日历等时间信息,一个参数表示年份(1——9999),两个参数表示月份和年份
-3 显示系统前一个月、当前月、下个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1日算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历
find指令是给它一个路径,在这个路径下面进行查找文件
功能:用于在文件树查找文件,并作出相应的处理(可能访问磁盘)
Linux下find命令在目录结构中搜索文件,并执行指定的操作。 Linux下find命令提供了相当多的查找条件,功能很强大。
由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。 即使系统中含有网络文件系统(
NFS),find命令在该文件系统中同样有效,具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
find 路径 -name 文件名
行文本过滤工具,可以按照指定的关键字
让我们在指定的文件中按行为单位查找,包含关键字的行整体被保留,不包含的整体被剔除。
功能:在文件中搜索字符串,将找到的行打印出来。
-i :忽略(ignore)大小写的不同,所以把大小写视为相同。
-n:顺便输出行号
-v:反向选择,显示出没有“搜索字符串”内容的那一行。
功能:将目录或文件压缩成zip格式
先要按照打包程序yum install -y zip
-r 递归处理,将指定目录下所以文件和子目录全部处理。
zip -r test.zip test——把test目录和目录下所有文件递归式全部打包。(无-r 只打包目录)
unzip test.zip ——把test.zip安装包解压到当前目录
-d选项:unzip test.zip -d tmp——把test.zip安装包解压到tmp文件夹里
功能:打开/解包,不打开它,直接看内容
-c:建立一个压缩文件的参数指令(create 的意思)
-x:解开一个压缩文件的指令
-t:查看 tarfile 里面的文件
-z:是否同时具有gzip的属性?就是是否需要用gzip压缩?
-j:是否同时具有bzip2的属性?就是是否需要bzip2压缩?
-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程中!
-f:使用档名,请留意,在f之后要立即接档名!不要在家参数!
-C:解压到指定目录(-C 文件名 解压到这个文件名里)
打包并压缩:
tar -czf test.tgz test——新建一个文件,并且压缩成一个文件打包给它起个名字
解开压缩包:
tar -xzf test.tgz 在当前目录下,解开这个压缩包,原压缩包还在
想看到打开/解包的过程,可以加一个v选项。
功能:bc指令方便进行浮点运算
功能:uname用来获取电脑和操作系统的相关信息
uname -r
uname -a 查看体系结构的命令,Linux的详细信息(包括服务器名称,内核版本,操作系统安装的时间,体系结构等)
> 操作系统的发行版
查看系统cpu信息
shutdown 选项 常见选项
-h:将系统的服务停掉后,立即关机。
-r:将系统的服务停掉后,立即重启。
-t sec:-t后面加秒数,就是过几秒后关机的意思。
[tab]——具有命令补全和档案补全的功能。
[ctrl]+[c]——让当前的程序停掉.
[ctrl]+[d]——通常代表:键盘输入结束的意思(End Of File,或者EOF 或者End Of Input);另外,他也可用取代exit。
安装和登录命令: login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
文件处理命令: file、 mkdir、grep、dd、find、mv、ls、diff、cat、ln;
系统管理相关命令: df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
网络操作命令: ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup;
系统安全相关命令: passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
其他命令: tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode;
1——stat 文件名
功能:查看文件更详细的属性信息
Access:读取这个文件的时间
Modify:最近一次修改这个文件的时间
Change:更改这个文件的时间
2——nano 文件名:创建或者打开这个记事本
先要安装记事本程序:yum install -y nano
3——循环
4—— | 命令行管道,左右命令连接起来,就像个管道
提取文件的任意中间段,80000行到80010行
head -80010 file.txt | tile -10
5——查找某指令(本质上是个可执行文件)路径的指令(which)
查找ls pwd 指令的路径
6——搜索指令的路径和它的手册(whereis 指令)
7——当前用户启动的进程(ps指令)
ps ajx :显示系统里所以的进程信息
ps ajx | grep sleep
使用grep,可以在一大串文本信息中找到,需要查找的内容
8——把相同行放到一起,然后去重
sort 文件 | unip:sort 按ascii码进行排序,unip就是去把相同的多行打印成一行
unip -c:去重,并且在前面统计出每行出现的次数