Linux常用指令
Posted 你这家伙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用指令相关的知识,希望对你有一定的参考价值。
一个完整的操作系统=操作系统内核+配套的应用程序。我们熟知的Linux是一个操作系统(和Windows都是并列的关系),它实际上是一个隐藏的王者,全世界市场份额第一的操作系统,比Windows还高,他可以存在于服务器端,嵌入式设备(如:空调,卫星,路由器……),移动设备(android),ios中
Linux的发展背景
1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发布,原因是0.01版本不实用。Linus仅仅在第一个Linux的FTP站点(ftp://nic.funet.fi)上提供过这个版本的的源代码。Linux环境的搭建方式
- 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好, 不推荐.
- 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会
导致环境上出现各种莫名其妙的问题, 比较折腾. - 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器购买云服务器.元辰终端工具下载XShell来连接服务器(注:如果你是student的话,下载的时候使用home/school则为免费版本)
Windows和Linux都为操作系统,为什么Linux非要用命令进行操作呢?
1.使用命令,和服务器的网络交互,只需要传输一些简单的字符串,如果是图形界面,就需要把画面一帧一帧的传过来,更节省宽带
2.服务器一般不需要图形界面,装上也是浪费空间
3.命令方便进行编程,可以通过一些编程的方式,把很多命令串在一起,完成一些复杂的工作,自动化
注意:Windows操作系统可以点击图形进行操作,Linux虽然是使用命令进行操作,但是也有图形界面,只不过很少使用
Java程序为什么能够直接在Linux上运行?
答:是因为Java中有一个很重要的特性,他是跨平台的,也就是一次编写到处运行,因为Java中有“JVM虚拟机“的存在,所以Java代码在Windows上和Linux上没有任何区别。
Linux的基本操作指令
修改主机名:
方法一:临时修改hostname 主机名 //只能临时修改主机名,当重启机器之后,主机名称又回来了
方法二:通过配置文件/etc/sysconfig/network修改
修改此配置文件,linux主机名在下次重启之后开始生效,如需立即永久生效,需配合hostname命令即可。
[root@tonyx ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=tonyxu
ls指令
语法:ls【选项】【目录或者文件】功能:显示当前目录下,都有哪些文件和目录(显示蓝色表示目录,白色表示普通文件)
常用操作
- -a 列出目录下的所有文件,包括以“.”开头的隐藏文件
- -d 将目录像文件一样显示
- -k 以K字节的形式表示文件的大小
- -l 列出文件的详细信息(如时间,文件大小等)
- -r 对目录反向排序
- -t 以时间排序
- -R 列出所有子目录下的文件(递归)
ls -l / 表示查看的是 "/" 这个目录中的文件和目录内容("/"表示根目录)
小技巧:ls -l 和 ll 是等价的,都是查看当前目录下所有文件和的详细信息
pwd指令
功能:显示用户当前所在的目录cd指令
Linux的系统中,磁盘上的文件和目录被组成一颗目录树,每个文件都是目录或者文件。语法:cd 目录名
功能:改变龚总目录,将当前工作目录改变到指定的目录下
- cd …: 返回上级目录
- cd ~:进入到用户的home(家)目录(也可直接使用cd)
- cd - :返回最近访问目录
cd 目录名 表示就可以进入到当前目录内部
touch指令
语法:touch 【选项 】 文件功能:touch表示创建一个新的文件(空文件),touch的命令参数可更改文档或目录的日期时间,包括存取时间和更改时间
touch java.txt //表示在当前目录下创建一个java.txt文件,如果之前已经存在java.txt文件,则不会对文件内容进行任何修改,但是会更新文件的修改时间
cat指令
语法:cat 文件功能:查看目标文件的内容
cat java.txt 表示查看java.txt文件里面的内容
echo指令
语法:echo 【内容】> 【文件名】(“>”表示重定向)功能:修改文件的内容
echo hehe > java.txt 表示将java.txt文件里的内容修改为 “ hehe”
mkdir指令
语法:mkdir 【选项】功能:在当前目录下创建一个目录
- -p:此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好,那些尚不存在的目录,即一次可以建立多级目录
mkdir java 表示将会创建一个java目录
mkdir demo1/demo2/demo3 -p 表示如果此时没有想在demo1和demo2下创建demo3目录,如果此时没有demo1和demo2目录的情况下,会自动创建demo1和demo2目录
tree指令
功能:使用此命令,可以查看当前目录中的结构,并且每个目录里面有哪些文件都会展示出来 tree命令的下载:tree命令不是自带的,需要额外安装,那么直接可以使用命令进行安装tree 直接使用tree就可以展示当前目录的结构
yum install tree 表示安装tree命令
rm指令
语法:rm【-f -i -r -v】【文件名或文件】功能:删除文件或者目录
- -f :即使文件属性为只读(即写保护),也可以直接删除
- -i:删除前逐一询问确认(输入“y”表示yest,输入“n”表示no)
- -r:删除目录及其下所有文件
rm -r 目录名 表示删除这个目录及目录下的内容,这里每一次都会询问你是否删除
rm -rf 目录名 也表示删除目录及其下面的子目录和内容,但是出现是否删除的功能(适用于子目录比较多的情况)
注意:这里删除之后,就真的删除了,无法通过常规手段你进行恢复(不像Windows有回收站),操作系统删除文件,本质上只是把对应的磁盘区域标记成“无效区域”,并没有真的把数据擦除掉,可以使用一些专用工具来恢复一部分(为什么只能恢复一部分呢?是因为“无效区域可能会分配给其他文件”)
千万注意:不要使用 rm -rf /
千万注意:不要使用 rm -rf /
千万注意:不要使用 rm -rf /
因为他会删除你的系统上的所有文件,简单来说,即使你的机器必挂,只能重装系统了,当然如果是你自己的电脑,可以玩玩,但是入职之后一定不要尝试。
mv指令
语法:mv 【选项】 源文件或目录 目标文件或目录功能:
1.视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv 命令将文件重命名或将其移至一个新的目录中
2.当第二个参数类型是文件时,mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名
3.当第二个参数是已经存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中
- -f:force(强制),如果目标文件已经存在,不会询问而直接覆盖
- -i:若目标文件已经存在时,就会询问是否覆盖!
mv demo1/java.txt demo2 表示将demo1目录下的java.txt文件移至demo2目录下
mv java.txt test.txt 表示修改文件名,将java.txt修改为text.txt
注意:mv 的操作是非常高效的(只需要修改问价的路径即可),这个操作时间和文件大小无关,即使是很大的文件,移动也是弹指一挥间的事。
cp指令
语法:cp【选项】 源文件或目录 目标文件或目录 功能:复制文件或目录- -f:强行复制文件或目录,不论目的文件或目录是否已经存在
- -i:覆盖文件之前先询问用户
- -r:递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R:将指定目录下的文件及子目录一并处理
cp demo1/java.txt demo2 表示将demo目录下的java.txt为念复制到demo2目录下,并且内容也是完全相同,复制操作和文件大小密切相关,文件越大,复制时间越长
cp -r demo1 demo2 表示将demo1目录复制到demo目录下(目录的复制)
说明:cp 指令用于复制文件或目录,如果同时指定两个以上的文件或目录,且最后一个目的地是已经存在的目录,则它会把前面的所有文件或目录复制到此目录当中。若同时指定多个文件或目录,而最后的目的地并非存在,则会出现错误信息
man指令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助语法:man 【选项】 命令
- -k:根据关键字搜索联机帮助
- num 只在第num章节查找
- man man能够看到man手册中的若干个章节及其含义
man ls 表示打开”ls“帮助手册,可以查看ls的用法等…
注意:
1.使用关键字进行查看时,按下”/“出发查找功能,然后输入想要查找的对应关键词
2.当打开对应指令帮助手册的时候,要使用上下键进行翻看,q退出
3.BUILTINS 内键命令 cd/echo 是无法使用man直接查看的
4.man能够查看Linux的系统API,还能查看C语言标准库的函数,但是不能查看Java,因为Linux是C实现的,所以有特殊待遇,也即像Java这样的语言是不能实现操作系统的
less指令
【cat的加强版】语法:less 【参数】文件
功能:查看文件内容,不会立刻把所有文件内容加载到内存当中,也只能进行查找
- -j k / :方向键:向上向下滚动屏幕
- -N: 显示每行的行号
- /字符串:向下搜索”字符串“的功能
- n:重复前一个搜索
- q:退出
less service 表示查看service的内容和cat相似,但是cat是一股脑全部展示出来,less会延时加载
注意:使用less的优点,如果文件特别大,less的打开速度会非常快(延时加载 ),用多少加载多少(和懒汉模式一个道理)
head指令
语法:head【参数】 【文件】功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
head etc/services 表示会展示service的前十行数据
head -n 100 etc/services 表示会展示service的前100行数据
tail指令
语法:tail 【必要参数】【选择参数】文件功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
- -f:循环读取
- -n:显示行数(自定义)
tail etc/services 表示会默认展示后十行的数据
tail -n 100 etc/services 表示会展示后100行的数据
注意:如果是只展示第n行的数据,需要结合head和tail使用,也就是将head的尾作为tail的头,命令(如展示第50行的数据):
head -n 50 services | tail -n 1
date指令
date指定格式显示时间:date +%Y:%m:%d- %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 +%Y/%m/%d 表示时间将会按照你定义的格式化进行输出
date +%s 表示查看时间戳
Linux的小技巧
复制:ctrl+insert 如果不行就使用 ctrl+fn+insert 粘贴:shift+insert 如果不行就使用 shift+fn+inserttab键:我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
ctrl+c重新输入:如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令.
以上是关于Linux常用指令的主要内容,如果未能解决你的问题,请参考以下文章