Linux下一切皆文件—时刻牢记这句话
Linux下的指令很多,但是常用的不多,不要逾越当前的知识面去做你不该的猜想,比如钻牛角尖。
软件都需要有日志信息
Linux系统,一般使用老的,经典的内核版本,因为老的安全性已考察,新的仍是未知。
几乎所有的操作系统,管理文件的方式,基本都是采用多叉树的形式
- Xshell对于不同文件采取不同的配色方案,方便进行识别,也可以进行更改
- Xshell中的cv大法是:
复制 :crl +insert
粘贴:shift+insert
- 通过 ctrl +r ,输入某些字符,会自动检索到含有这些字符的指令。
- Linux只有2种用户:root与普通用户,用户也是一种文件—再次体现Linux下一切皆文件
- 清空当前Xshell的屏幕指令:clear;其实相当于翻到下一页,并不于是真的清空屏幕
- linux是有隐藏不显示的文件,比如上级指令“…”与当前“.”,其实都是执行文件,—-再次体现Linux下一切皆文件。
- Linux下也可以编译.c和.cpp文件,用到的是gcc与g++编译器。
Windows中,我们的文件夹做为了路径名,同时也是目录名。我们可以发现在目录下即文件夹我们仍可以创建一个新的目录或者普通文件。从这可以看出目录也是一种文件,即可以写即创建文件或者目录,也可以读即进入目录。
因此在Linux中有种说法:Linux一切皆文件。
windows中可以通过可视化窗口中的交互界面跳转到上级目录即跳转到父亲节点那行。同时Windows中也有存储最近访问过的路径,这样可以方便直接在2个
不为同一个父亲节点
的2文件间的跳转。但是Linux是不需要可视化的交互界面的,因此Linux中用
2个.即“…”来表示上级,用1个. 即“.”表示当前。
如果想完成跳转到上级系统搭配 --cd指令—下面详细介绍
我们知道,Windows下,采用多叉树的形式将每个文件存放在磁盘上,而表示文件的位置有2种方式,即回答” 我在哪里+我是谁“问题:
绝对路径:从根节点开始的,唯一的标识文件位置的路径,因为每个节点只有一个父亲节点且从根开始
相对路径:从当前路径下,通过上级等操作来跳转其他文件。很显然,相对路径不具有唯一性,兄弟节点不唯一。
- Linux下只有2种用户,但是对于这个2种用户可以有不同的角色,因此对于一个用户,它可以是文件的拥有者,创建等角色。
root用户:可以想象是房东,拥有一切操作权限
普通用户:可以想象是住户,拥用一定的操作权限。
- 普通用户和root用户是不在同一个目录中的,
root用户:在root目录下
普通用户:在一个为home的目录下
- 从2可以看出,用户其实也是一种文件:Linux下一切皆文件。
以树的形式显式当前目录下的所有文件
Xshell默认是没有tree指令,需要执行一个指令,等待安装完成即可
root下
yum install -y tree
//可能会因为软件问题,该指令不行的话,使用下面指令
yum install -y epel -release
- tree 常用指令
- 添加用户只能在root用户下进行,普通用户不具有创建用户的权限。
useradd +新用户名
- 1
- 一旦创建一个新的用户,必须立马给其设置密码,如果passwd后不跟用户名,默认给当前用户修改密码
passwd +用户名
- 1
- 删除用户必须在root用户下—–root 下才有权限删除普通用户。
userdel建议使用
userdel -rf +用户名
- 1
- rm-用户删除文件,但是因为root具有所有的权限,另外用户本质也是一种文件,因此可以通过rm删除用户。
这里是对目录文件与普通文件,其它文件没学到
在当前目录下创建一个普通文件,如果文件已存在,对文件内容不产生任何影响。
touch也会于访问,修改,改变时间相联系,下节进行详细讲解。
删除普通文件或者目录文件
- 在当前目录下,创建一个目录文件,如果目录文件已存在者失败,即不能在mkdir时,出现同名情况。
也可以递归.
3创建多个目录
只能删除空目录文件
rm可以删除目录文件(搭配-r),也可以删除普通文件,更可以在root下删除用户,而rmdir很局限,只能删除空目录文件。
建议直接使用rm,具有普适性
普通文件与目录文件的进入方式是不同的,更多使用的是vim,将在下节进行讲解
针对的是进入文件是需要权限的,权限具体在下一节介绍。
进入目录使用的 cd 指令,具体的cd指令,后面详细讲
如果想查看大的文件,不想进入文件,比如查看日志信息,代码等,可以使用less。more,cat,tac指令,但是更推荐使用less指令,less很灵活
也可使用head与tail搭配使用查阅特点行的文件内容
cat 一次性,正序打印完文本内容
一次性逆序打印完本文内容
分批打印文本内容,通过回车键下翻,只能通过回车键进行向下打印,而且在不借助鼠标时,不能翻阅已打印的内容,用q退出more
less 分批次打印文本内容,可以使用上下键进行上下翻;
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
head +选项+文件
head 用来显示档案的开头至默认是==标准输出(屏幕)==中,也可以是管道,默认head命令打印其相应文件的开头10行 ,文件可以有多个
如果后面不跟文件名,默认将输入信息作为内容打印到屏幕上
tail [必要参数]+ [选择参数] +[文件]
用于显示指定文件末尾内容到标准输出流中,不指定文件时,作为输入信息进行处理。常用查看日志文件。
用到重定向与管道。
显示当前目录文件的内容或者普通文件的信息,默认是显示目录文件下的内容,可以搭配选项-d,只显示目录的信息
ls +选项+文件名
以绝对路径的形式,显示当前所在位置。
cd +绝对路径或者相对路径
跳转到指定路径下,进行后续的操作
查看特点指令的系统路径
which +指令
alias 别名 = ‘指令 --color=auto’
当一个指令很复杂时,可以使用alias起别名。这也就是为什么Linux下一些简单的指令符与复合后的指令功能效果是一样的。
可以自己设置别名,但是新的别名不能已存在,别名的生命期只在当前会话中,一但Xshell退出就销毁了。另外也不建议对存在的别名取别名,因为这可能会污染Linux的命令池。
打印当前用户名
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助
可能在某些云服务器上man指令不存在,可以使用
yum install -y man-pages安装man手册
man [选项] 命令
选项手册号 | 解释 | 注意 |
---|---|---|
1 | shell的指令手册 | man默认是1号手册 |
2 | 系统调用函数 | 常用 |
3 | 库函数 | 常用 |
4 | 特殊文件(通常在 /开发中找到) | |
5 | 文件格式和约定,例如 /etc /passwd | |
6 | 游戏指令 | |
7 | 杂项(包括宏包和约定),例如 男人(7),格罗夫(7) | |
8 | 系统管理命令 | 通常仅适用于根) |
9 | 内核例程[非标准] |
cp +src(源文件) + dest(目标文件)
mv src dest
将src文件剪切到dest中
显示时间
date [OPTION]…+[FORMAT]
在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下 ,注意大小写,+后面没有空格
- %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@秒数
date +Y… -d@秒数,格式化显示时间戳
显示日历(阳历),默认显示当前月的日历
find + 路径+文件名
grep +选项+字符串+文件
在文件中搜索字符串,将找到的行打印出来,可搭配管道等
- -i:忽略大小写的不同,所有大小写视为相同
- -n :顺便输出行号
- -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
类似windows下的压缩软件,Linux下也可以压缩文件,指令有zip 与unzip,tar等
zip +选项+压缩报名+需要压缩的文件(可以是多个)。
对目标文件进行压缩,为zip格式。默认只压缩目标文件,如果目标文件是目录的话,必须使用-r来递归压缩
unzip +压缩文件+选项+路径
解压缩文件,默认解压到当前路径下,若压缩到其它位置,使用-d
打包/解包,不打开它,直接看内容 .
一般在压缩时,使用 -czvf;解压缩时,使用-xzvf与 -C
压缩包的后缀是 “tgz”
- -c :建立一个压缩文件的参数指令(create 的意思);
- -x :解开一个压缩文件的参数指令!
- -t :查看 tarfile 里面的文件!
- -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
- -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
- -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
- -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
- -C : 解压到指定目录
进行简单的浮点运算
uname用来获取电脑和操作系统的相关信息。
uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息
通过unname查看的信息是Linux的发行版本,如果想查看内核版本 ,使用-r
a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
一般短暂提升权限到root,shell会报警告,要求添加信任关系。
只需要在root下修改 /etc/sudoers文件中添加信关系