Linux基本命令
Posted 久病成良医
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基本命令相关的知识,希望对你有一定的参考价值。
Linux基本命令
1. useradd , passwd
用来创建普通用户:useradd , passwd
前面的root表示当前登录到Linux操作系统的是root用户;
root用户在Linux操作系统中是管理员用户,拥有着至高无上的权力。
这样一个普通用户lun就创建好了;
然后我们可以重新创建一个会话,登录到刚才我们创建的普通用户
前面的lun表示的是当前登录的是我们刚才创建的普通用户lun
“#” : 表示root用户;
“$” : 表示普通用户lun;
“~” : 表示家目录。
2. ls , pwd , cd
(1) ls 命令(list)
格式: ls [命令行参数] [目录或文件]
作用:针对的是目录,则展示目录下的文件或文件夹 ; 针对的是文件,则展示文件的信息。
ls 后面不加任何目录或者文件,则表示输出当前目录下的内容。
当输入ls后,什么也没有输出,说明当前目录(root)下没有任何文件或文件夹。
我们可以自己创建自己的文件或者目录,(简单说一下,touch命令创建文件,mkdir命令创建目录,也就是文件夹)先照着输入创建,后面我们会详细说这些创建文件或目录的命令。
这样我们就在当前目录(root)下创建了一个文件data1和一个目录data2;并在/root/data2目录下创建了文件text1和目录text2。(目录即文件夹,文件夹即目录)
标红线的“~”:表示的是家目录即/root,“data2”:表示的是在/root/data2目录下。
输入ls命令后我们可以在各自的目录下看到罗列出来的文件和文件夹信息
ls [文件]:则显示文件的信息
ls [目录]:则显示文件下的文件和文件夹
命令行参数
① -l:罗列文件或者文件夹的具体信息;eg :ls -l
ls -l 后面什么都不加则罗列出当前目录下所有文件或文件夹的具体信息。
前面的“ - ”表示的是普通文件,而“ d ”表示的是文件夹;rw-r–r--表示权限;1表示链接数;第一个root表示文件所有者;第二个root表示文件所属组;0或者4096表示文件的大小,单位是字节;May 19 21:04表示的是最后修改的时间;data1表示文件名称。
② -a:展示Linux操作系统下的所有文件,包括隐藏文件,隐藏文件是以" . "开头的。
eg:ls -al ,展示当前目录下所有文件的具体信息。
ls -lh :将罗列出来具体信息中文件大小的字节数转换为K、M等。
缩写形式:ls -l --> ll
ls -al --> ll -a
ls -lh --> ll -h
(2)pwd 命令
功能:显示用户当前所在的目录
前面的" / “表示当前Linux操作系统的根目录
什么是根目录?什么是家目录呢?
根目录:就是一个绝对路径的第一个是” / “;
家目录:root用户默认的家目录为” /root “;一般情况下(不指定的情况下)普通用户的家目录是” /home/[用户名称]"。
(3)cd 命令(change directory)
作用:切换目录(不能切换文件)
用法:cd [路径]
我现在是在/root目录下,我们知道root目录下有我们创建的文件data1和目录data2,现在我们开始切换
可以看到在输入cd data1时会出现错误,显示data1并不是一个目录,所以cd后面的路径只能是目录,而不能是文件;在输入cd data2时可以从最后一行看到已经切换成功了。
当我们切换比较深的路径时,比如/root/data2/text2,我们要切换到text2目录下,不能写 cd text2 ,这样会出错,应该把路径写全,写成 cd /root/data2/text2 。
" . “表示当前目录;” … "表示上一级目录。
绝对路径:从根目录开始的路径称之为绝对路径。 /root/data2/text2表示绝对路径; …/…表示相对路径(相对于text2)。
cd快捷用法
① cd :哪个用户执行就回到哪个用户的家目录
② cd ~:哪个用户执行就回到哪个用户的家目录
刚开始我们在/root/data2/text2目录下,执行cd命令后就回到root用户的家目录/root
刚开始我们在/home/lun/data目录下,执行cd命令后回到普通用户lun的家目录/home/lun
③ cd -:切换到之前所在的目录
3. touch , mkdir , rm , rmdir
(1)touch 命令
格式:touch [命令行参数] [文件名]
eg:touch file,功能:①:若file不存在,则新建一个新的文件;②若file存在,则更改file的日期时间,包括存取时间和更改时间
执行ls命令后可以看到此目录下有一个文件text1和一个文件夹text2,因为目录下没有file这个名称的文件,然后我们用touch命令创建一个file文件后再ls就可以看到创建好的文件了。
当文件已经存在时,比如 text1 文件,首先我们输入 ls -l(或者ll),可以看到文件的具体信息,包括最后更改的时间,然后我们继续输入 touch text1,输入 ls -l 可以看到文件的修改时间已经改变了。
对于命令行参数,后面遇到我会再详细写出来。对于touch命令就说这么多。
(2)mkdir 命令(make directory)
格式:mkdir [命令行参数] [新的目录名]
功能:在当前目录下创建一个新的目录
使用mkdir在当前目录(/root/data2)创建了一个名为dirname的目录
命令行参数:[-p] ;eg:mkdir -p file1/file2/file3;它的意思就是在当前目录下(/root/data2)创建一个目录file1,并在目录file1下创建一个file2,并在目录file2下创建一个file3。
通过之前学的cd命令,我又可以从 file2 目录下回到 /root 目录
(3)rm 命令(remove)
格式:rm [命令行参数] [文件或目录]
功能:删除文件或目录
eg:rm [file] - - - >删除文件
在当前目录(/root)下输入ls可以看到目录下有文件data1和文件夹data2,然后我们现在删除文件data1,输入rm data1,它会出来一句话是否删除这个空文件,你输入y就是删除,输入n就是否,然后再ls就可以看到data1文件被删除了。
rm -r [folder] - - - >删除目录(-r :递归删除)
如果这里不加[-r],则会出错,显示rm不能删除data2,因为data2是个目录,不加[-r]只能删除文件。
在删除目录时,必须要加命令行参数[-r],并且它会依次询问你,是否要进入到哪个目录,是否要删除哪个目录,你输入y或n来决定是否要删除,其实它是一层一层的删除(从深到浅,所以叫递归删除),最后输入ls后什么也没有输出,说明data2这个目录已经被删除。
看到这些你会觉得很麻烦,为什么要询问这么多次?如果不想被依次询问,可以在命令行参数加[-f](force),eg:rm -rf [folder]
这样我们可以看到data2是直接删除的,并没有进行询问。
注意: 用rm这个命令的时候,一定要谨慎!
禁用: rm -rf /* - - - > 从根目录下开始删除所有文件
谨慎使用: rm -rf * - - - > 删除当前路径下的所有文件
" * "表示所有文件
(4)rmdir 命令(remove directory)
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
格式:rmdir [命令行参数] [目录]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
rmdir命令只能删除空目录,如果不是空目录,则会出错显示此目录不是空目录。然后我们切换到此目录下再ls可以看到data2目录下还有一个目录text2。
rmdir命令只能删除空目录,ls命令下有data2目录,但是我们不知道data2是不是空目录,切换到data2目录然后ls就可以看到什么都没有输出,则表示data2下没有任何的文件或文件夹,然后我们就可以用rmdir删除空目录了。
4. man
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
man 语法: man [命令行参数] 命令
解释一下,手册分为8章,介绍3个重要的(有问题就找man)
手册1:是普通的命令
手册2:当中查询出来的函数都是操作系统提供的函数,统称为“系统调用函数”
手册3:当中查询出来的函数都是库函数
这样可以查询到ls命令
我们查询手册1里面的所有命令,当我输入其他手册中的命令时,它则出错,这是因为缺少一个man-pages安装包,我们输入"yum install -y man-pages"这个命令等它安装完即可。
可以查询到fork命令和strlen命令,并可以看到是在哪个手册中.
5. echo , cat , cp , mv
(1) echo 命令
功能1:打印内容
这样就打印了echo后面的内容
功能2:打印变量内容
打印变量内容的path需要大写,否则不会出现变量内容。
功能3:重定向 ; eg:echo hehe > data
(2) cat 命令
格式:cat [命令行参数] [文件]
作用:查看文件的内容
刚才我们只是把hehe重定向到data文件中,那我们要怎么查看呢?那就要用到cat这个命令,这样我们就可以看到data文件里的内容了。
命令行参数
[-n]:输出所有内容的行号;eg:cat [-n] data
(3) cp 命令(copy)
格式:cp [命令行参数] [源文件或目录] [目标文件或目录]
功能:复制文件或目录
复制文件
① cp [源文件] [目标文件]
将data复制到data1中(data1是新创建的文件),这样data1中也有data中的内容,也可以将data复制到已知的文件或目录中。(将文件复制到文件中,则目标文件有源文件的内容,将文件复制到目录中,则目标目录有源文件)
② cp [源文件] [目标文件]/[重命名源文件]
将文件data复制到data2目录中,并将源文件data名称改为data4。
复制目录
① cp [-r] [源目录] [已有的目标目录]
② cp [-r] [源目录] [重新创建的目标目录]
③ cp [-r] [源目录] [目标目录]/[重命名源目录]
复制多个文件或多个目录
若同时指定多个文件或目录,则目的地一定是一个已存在的目录,否则会出错。
ls之后可以看到当前目录没有data9,当同时复制多个文件或目录到一个不存在的目录时,则会出错。而data8是一个已存在于当前目录的,所以可以作为目的目录。
(4) mv 命令(move)
格式:mv [命令行参数] [源文件或目录] [目标文件或目录]
① mv [source_file(文件)] [dest_file(文件)];将源文件名 source_file 改为目标文件名 dest_file
将data的文件名改为data0(改文件名的前提两个必须都是文件)
② mv [source_file(文件)] [dest_directory(目录)];将源文件 source_file 移动到目标目录 dest_directory 中
将文件data0移动到data2中,原来的目录则没有data0这个文件。
③ mv [source_directory(目录)] [dest_directory(目录)];
作用1:目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
作用2:目录名 dest_directory 已存在则将 source_directory 移动到目录名 dest_directory 中
6. more , less , head , tail
(1) more 命令
格式:more [命令行参数][文件]
功能:more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。more 命令从前向后读取文件,因此在启动时就加载整个文件。
more命令查看内容只会出现一页的内容,若想继续查看则需要下面的按键:
空格键:查看下一屏;
回车键:往下滚动一行;
f 键:往后查看一屏;
b 键:往前查看一屏;
q 键:退出。
命令行参数:
① [+n] :从笫n行开始显示;eg:more [+n] [filename]:从第n行开始显示
② [-n]:只显示n行 ;eg:more [-n] [filename]:只显示n行
按空格键会显示下n行的内容
[+/pattern]: 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 ;eg:more +/9 [filename]:从filename中寻找9
(2) less 命令
格式:格式:less [命令行参数][文件]
功能:less与more类似也是查看文件的内容,不同的是less命令还有搜索功能,而且less在查看之前不会加载整个文件。
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n 键: 向下搜索内容
N 键:向上搜索内容
命令行参数 [-N]:显示每行内容的行号
命令行参数 [-i]:忽略搜索时的大小写
命令行参数 [-m]:显示类似 more 命令的百分比
(3) head 命令
格式:head [文件]
功能:默认查看头部10行内容
命令行参数 [-n]:显示n行内容(n需要输入具体的数字)
命令行参数 [-c]:显示字节数(c需要输入具体的数字)
命令行参数 [-q]:隐藏文件名
命令行参数 [-v]:显示文件名
(4) tail 命令
格式:tail [文件]
功能:默认查看尾部10行内容
tail命令的另外一个功能是:实时查看文件更新内容;eg:tail [-f] [filename];使用 tail 命令的-f 选项可以即时输出文件变化后追加的内容,tail -f filename 会把 filename 里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容;最后按CTRL+C退出。
7. zip , unzip , tar
(1) zip 命令
压缩文件的格式:zip [压缩之后文件的名字].zip [待压缩文件]
压缩文件夹的格式:zip -r [压缩之后文件夹的名字].zip [待压缩文件夹]
如果不加 [-r] ,它会生成一个.zip的压缩包,虽然不会报错,但是这个压缩包是假的,也就是说它只有名称,里面没有任何内容。
(2) unzip 命令
格式:unzip [待压缩文件或文件夹的名字].zip - - - > 默认解压到当前路径
格式:unzip [待压缩文件或文件夹的名字].zip -d [path] - - - > 解压到path路径
命令行参数 [-d] [path] :指定文件解压缩后所要存储的路径path
(3) tar 命令
① gz
压缩格式:tar -zcvf [压缩之后的文件名称].tar.gz [待压缩的文件或者文件夹]
解压缩格式:tar -zxvf [待解压缩的文件或者文件夹].tar.gz
② bz2
压缩格式:tar -jcvf [压缩之后的文件名称].tar.bz2 [待压缩的文件或者文件夹]
解压缩格式:tar -jxvf [待解压缩的文件或者文件夹].tar.bz2
8. find , grep
(1) find 命令
格式:find [path] -name [要查找的文件名]
作用:在Linux操作系统中查找文件
(2) grep 命令
①格式:grep [string] [文件]
功能:只能在文件当中匹配(查找)字符串
①格式:grep -r [string] [目录]
功能:在目录当中匹配(查找)字符串
9. date , cal
(1) date 命令
更改当前系统时间:date -s “2021-05-18 21:40:00”
(2) cal 命令
cal:显示当月的日历
cal -y:显示当年的日历
cal -y [2010]:显示2010年的日历
若有错误,请大家多多指正!谢谢大家!
以上是关于Linux基本命令的主要内容,如果未能解决你的问题,请参考以下文章