这篇文章涵盖了linux中常用的所有指令,欢迎大家阅读查询。(如有不正确的地方,各位大佬可以在评论区指出,我会及时进行更正)。
文章目录
- 登录远程服务器ssh
- 添加删除用户
- 当前路径pwd
- 列出文件目录ls
- 进入cd
- tree
- whoami
- 创建文件touch
- 创建目录mkdir
- 删除文件目录rmdir指令 && rm 指令(重要)
- 手册man
- 拷贝文件目录cp
- 剪切与重命名mv
- 查看cat
- 查看more
- 查看less
- 查看head
- 查看tail
- 重定向和管道,echo
- 查询时间date
- 日历Cal
- 文本行排序sort
- 相邻内容去重uniq
- 统计wc
- 搜索文件工具find
- 查看位置which
- 查看位置whereis
- 文本搜索工具grep指令
- 清屏clear
- 任务管理器top
- 设置命令别名alias
- 查看文件信息stat
- 查看linux内核版本信息uname(重要)
- 压缩与解压缩zip/unzip指令
- tar指令:打包/解包
- file指令
- bc指令
- 关机指令
- 重要热键
- 命令扩展
登录远程服务器ssh
ssh root@你的服务器公网ip
注意如果你向登录root,就ssh root@公网ip,如果你是用户就ssh 用户名@公网ip,弹出窗口后,输入你的服务器密码,即可登录。
添加删除用户
adduser 用户名//新建用户
passwd 用户名//要求你设置这个用户的登录密码
只要输入这两句命令,即创建成功。
userdel -r 用户名//一句话即可删除用户
当前路径pwd
功能:显示用户当前所在的路径
如:home/znn/123/lesson1
这里的home,znn,123,lesson1一般都表示目录,/是linux下的路径分隔符。
windows下是以\反斜杠为路径分隔符。
列出文件目录ls
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
用法:
- -l 列出文件的详细信息(一般用ll,指令的选项一般可以合并)。
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件(.是当前目录,两个点是上级目录)。
- -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
- -n 用数字的 UID,GID 代替名称。
- -r 对目录反向排序。
- -t 以时间排序。
- -r 列出当前目录和所有子目录下的文件。(递归)
- -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
进入cd
功能:切换路径,让我们进入不同的路径下操作!
用法:(同一两个点,因为打不出来。。。)
- cd … : 返回上级目录
- cd /home/litao/linux/ : 绝对路径
- cd …/day02/ : 相对路径
- cd -:返回最近访问目录
- cd ~:进入用户家目(root用户,cd ~ 相当于 cd /root,普通用户,cd ~ 相当于cd /home/当前用户名)
tree
- 用法:tree 路径[文件](tree .查看当前目录下的树状结构)
- 功能:以树状格式列出目录的内容, 查看文件系统的结构
我们需要先输入安装tree的命令:
yum install -y tree
whoami
功能: 查看当前是哪个用户正在使用我们的linux系统
创建文件touch
用法:touch [文件名]
功能:touch命令可以更改文件或目录的日期时间,包括存取时间和更改时间,或者创建一个文件。
- -a 或–time=atime或–time=access或–time=use只更改存取时间。
- -d 使用指定的日期时间,而非现在的时间。
- -m 或–time=mtime或–time=modify 只更改变动时间。
- -t 使用指定的日期时间,而非现在的时间。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
创建目录mkdir
用法:mkdir [选项] [文件名]
功能:在当前目录下创建一个名为[文件名]的目录
- -p,类似于递归创建,此时若路径中的某些目录不存在,加上-p之后,可以创建一个路径出来。
mkdir -p dir/znn/test1.c//递归建立多个目录
删除文件目录rmdir指令 && rm 指令(重要)
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
功能:删除空目录
用法:rmdir [选项] [文件名]
- rmdir -p [文件名] 当子目录被删除后如果父目录也变成空目录,就连带父目录一起删除
rm命令
功能:删除文件或目录
用法:
- -f force的缩写,意思是强制删除,即使文件属性为只读(即写保护),也直接删除
- -i 删除前逐一询问确认,y代表删除,n代表不删
- -r 删除目录及其下的所有文件
手册man
功能:Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man。
用法:man [选项] 命令
选项:面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
拷贝文件目录cp
功能:复制文件或目录
用法:cp src dest(src表示源文件或目录,dest表示目标)
选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户(文件名相同会进行覆盖)
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
剪切与重命名mv
语法: mv [选项] 源文件或目录 目标文件或目录
mv test.txt ../lesson5 //将当前目录下的test.txt文件剪切到上级目录的lesson5目录下
my test.txt hello.txt //将test.txt文件重命名为hello.txt
常用选项:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
查看cat
语法:cat [选项] 文件名
功能: 查看目标文件的内容
- -n 对输出的所有内容编号
上下键进行翻页
tac可将文件内容逆置
查看more
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
- -n 对输出的所有行编号
- q 退出more
在命令行输入/+所要查询的内容,可以直接跳转
ENTER键表示下翻,不能上翻
查看less
功能:less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用 less ,就可以使用 [pgup][pgdown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [参数] 文件
选项:
- -i 忽略搜索时的大小
- -N 显示每行的行号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- q:quit退出
查看head
功能:head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail就是看档案的结尾。
语法: head [参数]… [文件]…
选项:
- -n 显示的行数
查看tail
功能:tail 命令从指定点开始将文件写到标准输出,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
语法: tail[必要参数][选择参数][文件]
选项:
- -f 循环读取
- -n<行数> 显示行数
重定向和管道,echo
1.什么是重定向?重定向的作用?
>是重定向的符号
echo "hello" > tmp.txt//这句话可以直接向tmp.txt文件中写入hello
>文件名 //可以直接清空一个文件
2.什么是管道?管道的作用?
|竖划线表示管道,是一块内存空间,“仿内存”,实质为内核缓冲区
3.学以致用:有一个10000行的文本,如何获取[1000,1010]行的数据,并逆置?
head -1010 test.txt| tail -10 |tac
查询时间date
date 指定格式显示时间: date +%Y:%m:%d(年月日)
date 用法:date [OPTION]… [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
%H : 小时
%M : 分钟
%S : 秒
%X : 相当于 %H:%M:%S
%d : 日
%m : 月份
%Y : 完整年份
%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.时间戳
3.时间戳
时间->时间戳:date +%s
时间戳->时间:date -d@时间戳
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
日历Cal
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
文本行排序sort
功能:对文本进行排序(按照ASCII码的大小先比较第一个字母,相同的话,接着比较后面一个字母,类似C语言的strcmp)
选项:
- -r逆序文本
相邻内容去重uniq
功能:对文本内容进行去重
统计wc
功能:计算文件的Byte数、字数、或是列数
选项:
- -c 或 --bytes或–chars 只显示Bytes数/字节数。
- -m 统计字符数,不能与-c同时使用
- -l 或 --lines 显示行数。
- -L 打印最长长度
- -w 或 --words 只显示字数
搜索文件工具find
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘),在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)
用法:
find 路径 -name "*txt"//找到当前路径下所有以.txt结尾的文件
find 路径 -type f//找到当前路径下文件类型是普通文件的文件
find -name 文件名//找到文件名是xxx的文件
find 路径 -maxdepth 3 -type d//向下深度限制为3
类型参数示例
f 普通文件 l 符号链接(软链接) d 目录 b 块设备 s 套接字
查看位置which
功能:查看可执行文件的位置(注意指令也是文件)
查看位置whereis
功能:查看文件位置
文本搜索工具grep指令
功能: 在文件中搜索字符串,将找到的行打印出来
用法:grep 选项 ‘所要搜索的字符串’ 文件名
常用选项:
- -i :忽略大小写的不同,所以大小写视为相同
- -n :顺便输出行号
- -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
清屏clear
在命令行输入clear直接清屏
任务管理器top
功能:查看cpu资源使用状态,是常用的性能分析工具,包括系统负载、CPU利用分布情况、内存使用、每个进程的资源占用情况等信息
设置命令别名alias
功能:给linux命令设置一个我们想要的别名
用法举例:alias myls=‘ls -l -a -n’
这句话的意思是给命令ls -l -a -n取个别名,叫做myls,之后在命令行输入myls就相当于输入ls -l -a -n
查看文件信息stat
stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。stat命令可以查看的信息包括:
File:显示文件名
Size:显示文件大小
Blocks:文件使用的数据块总数
IO Block:IO块大小
regular file:文件类型(常规文件)
Device:设备编号
Inode:Inode号
Links:链接数
Access:文件的权限
Gid、Uid:文件所有权的Gid和Uid
access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
modify time:表示我们最后一次修改文件的时间
change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等
Birth time : 文件创建时间,crtime,不过据查此属性linux已废弃,目前状态显示结果均为-
查看linux内核版本信息uname(重要)
语法: uname 选项
功能: 用于获取电脑和操作系统的相关信息。
常用选项:
1)-r 输出电脑和操作系统相关信息。
2)-a 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。
压缩与解压缩zip/unzip指令
语法: zip 压缩文件.zip 目录或文件(将目录压缩成压缩文件.zip,这个压缩文件的名字是自己取的,注意要加上.zip后缀)
功能: 将目录或文件压缩成zip格式
常用选项:
- -r 递 归处理,将指定目录下的所有文件和子目录一并处理(必须加上-r选项,不然目录下的文件/目录不会被压缩)
举例:
将test2目录压缩:zip test2.zip test2 //这个操作完成后,当前目录会出现一个标红的test2.zip文件
解压到tmp目录:unzip test2.zip -d /tmp
tar指令:打包/解包
tar指令也可以用来打包压缩和解压文件,并且还可以实现不解开压缩包,直接查看里面内容的操作,以及只打包不压缩等操作。
语法: tar 选项 压缩文件 …
功能: 打包/解包,不解开压缩包,直接查看里面内容。
常用选项:
1)-c 建立一个压缩文件的参数指令(create的意思)。
2)-x 解开一个压缩文件的参数指令。
3)-t 查看tarfile里面的文件。
4)-z 是否同时具有gzip属性?即是否需要用gzip压缩?
5)-j 是否同时具有bzip2属性?即是否需要用bzip2压缩?
6)-v 压缩的过程中显示文件(常用)。
7)-f 使用档名,请留意,在f之后要立即接档名,不要再加参数。
8)-C 解压到指定目录。
示例:
tar -czf temp.tgz lesson1 //将lesson1目录下的所有文件和子目录一并打包压缩,生成temp.tgz压缩文件(标红),目录是蓝色的
tar -xzf temp.tgz -C dir //将压缩文件temp.tgz解压到dir目录下
tar -tf temp.tgz //不解开压缩包,直接查看里面内容
file指令
语法: file
功能: 查看文件的更多属性信息。
示例:
file dir //已知dir是一个目录,输入此命令后,命令行会打印出dir:directory
//即可以查看文件的类型
file temp.tgz//命令行会给出temp.tgz:gzip compressed data,form Unix...得出temp.tgz是一个压缩文件等属性
bc指令
Windows里面有计算器,Linux下面也有,bc指令就是Linux下的计算器。
用法:直接在命令行输入bc,然后回车就进入计算器了。
关机指令
语法: shutdown 选项
常见选项:
1)-h 将系统的服务停掉后,立即关机。
2)-r 将系统的服务停掉之后就重新启动。
3)-t 秒数 经过sec秒后关机。
注: 所有关机指令只能由root用户执行。
重要热键
1)上下按键。上下按键在Linux当中存储的是历史命令,通过按上下键我们可以查看我们最近敲的命令。
我们也可以使用history指令查看历史命令。
2)Ctrl+D。退出当前命令行。
3)Ctrl+C。让当前程序停掉(终止失控程序)。
4)Tab。自动补齐功能。个人觉得这个热键很好用,只要在命令行输入一两个字母,再按一下Tab键,就可以自动补齐剩下的内容。
命令扩展
1)安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last。
2)文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln。
3)系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab。
4)网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup。
5)系统安全权限命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who。
6)其他命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。