语法: cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
cd .. : 返回上级目录
cd /home/xl/code/ : 绝对路径
cd ../dir/ : 相对路径
cd ~:进入用户家目录
cd -:返回最近访问目录
pwd命令是英文词组”print working directory“的缩写,其功能是显示当前工作目录的路径,即显示所在位置的绝对路径
语法: pwd
功能:显示当前工作目录的路径
举例:
[xl@VM-12-4-centos ~]$ pwd
/home/xl
[xl@VM-12-4-centos ~]$
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
默认不加参数的情况下,ls命令会列出当前工作目录中的文件信息。
[xl@VM-12-4-centos ~]$ ls
code
[xl@VM-12-4-centos ~]$
常用选项:
-a
列出目录下的所有文件,包括以 . 开头的隐含文件
[xl@VM-12-4-centos ~]$ ls -a code
. .. lesson1
[xl@VM-12-4-centos ~]$
-d
将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
[xl@VM-12-4-centos ~]$ ls -d code
code
[xl@VM-12-4-centos ~]$
-i
输出文件的 i 节点的索引信息。 如 ls –i 指定文件
inode涉及文件权限与文件属性,这里暂不解释。目前你只需要知道Linux系统内部不是使用文件名,而是使用inode号码来识别文件的就可以了。注:参数可以叠加使用,-ai与-ia执行结果是一致的,即参数顺序不影响执行结果。
[xl@VM-12-4-centos ~]$ ls -ai code
655837 . 655833 .. 655840 lesson1
[xl@VM-12-4-centos ~]$
-l
列出文件的详细信息
[xl@VM-12-4-centos ~]$ ls -l code
total 4
drwxrwxr-x 2 xl xl 4096 Sep 27 19:04 lesson1
[xl@VM-12-4-centos ~]$
-n
用数字的 UID, GID 代替用户或群组名称
UID(User Identify) 即用户ID,相当于身份证,在系统中是唯一的
GID(Group Identify) 即群组ID。每个文件都有UID和GID
centos 7下的用户分类:
超级用户root UID = 0
普通用户 UID = 1001起
除上述外,还有虚拟用户 UID = 1~1000
[xl@VM-12-4-centos ~]$ ls -n code
total 4
drwxrwxr-x 2 1001 1001 4096 Sep 27 19:04 lesson1
[xl@VM-12-4-centos ~]$
-F
在每个文件名后附上一个字符以说明该文件的类型
“*”表示可执行的普通文件;
“/”表示目录;
“@”表示符号链接;
“| ”表示FIFOs;
“=”表示套接字(sockets)。(目录类型识别)
[xl@VM-12-4-centos lesson1]$ ls -F
dir/ test* test.c
[xl@VM-12-4-centos lesson1]$
-r
对目录反向排序
[xl@VM-12-4-centos lesson1]$ ls
dir test test.c
[xl@VM-12-4-centos lesson1]$ ls -r
test.c test dir
[xl@VM-12-4-centos lesson1]$
-t
以时间排序
[xl@VM-12-4-centos lesson1]$ ls -l
total 20
drwxrwxr-x 2 xl xl 4096 Oct 7 14:14 dir
-rw-rw-r-- 1 xl xl 0 Oct 7 14:19 file.txt
-rwxrwxr-x 1 xl xl 8360 Oct 7 14:13 test
-rw-rw-r-- 1 xl xl 72 Oct 7 14:13 test.c
[xl@VM-12-4-centos lesson1]$ ls -t
file.txt dir test test.c
[xl@VM-12-4-centos lesson1]$
-S
在文件名前输出该文件的大小。(大小排序,如何找到目录下最大的文件)
[xl@VM-12-4-centos lesson1]$ ls -lh
total 20K
drwxrwxr-x 2 xl xl 4.0K Oct 7 14:14 dir
-rw-rw-r-- 1 xl xl 0 Oct 7 14:19 file.txt
-rwxrwxr-x 1 xl xl 8.2K Oct 7 14:13 test
-rw-rw-r-- 1 xl xl 72 Oct 7 14:13 test.c
[xl@VM-12-4-centos lesson1]$ ls -S
test dir test.c file.txt
[xl@VM-12-4-centos lesson1]$
-R
列出所有子目录下的文件。(递归)
[xl@VM-12-4-centos ~]$ ls -R code
code:
lesson1
code/lesson1:
dir file.txt test test.c
code/lesson1/dir:
file.txt
[xl@VM-12-4-centos ~]$
-1
一行只输出一个文件
[xl@VM-12-4-centos lesson1]$ ls -1
dir
file.txt
test
test.c
[xl@VM-12-4-centos lesson1]$
语法: touch [选项]… 文件…
功能:touch 命令参数可更改文档或目录的日期时间 ,包括Atime(访问时间)和Ctime(修改时间),或者新建一个不存在的文件。
stat
命令用来显示文件或文件系统的详细信息
ll
是ls -l
的简写形式
[xl@VM-12-4-centos lesson1]$ ll
total 20
drwxrwxr-x 2 xl xl 4096 Oct 7 18:25 dir
-rw-rw-r-- 1 xl xl 0 Oct 7 18:34 file.txt
-rwxrwxr-x 1 xl xl 8360 Oct 7 14:13 test
-rw-rw-r-- 1 xl xl 72 Oct 7 14:13 test.c
[xl@VM-12-4-centos lesson1]$ stat file.txt
File: ‘file.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 657563 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1001/ xl) Gid: ( 1001/ xl)
Access: 2022-10-07 18:34:51.181783865 +0800
Modify: 2022-10-07 18:34:51.181783865 +0800
Change: 2022-10-07 18:34:51.181783865 +0800
Birth: -
[xl@VM-12-4-centos lesson1]$ touch file.txt
[xl@VM-12-4-centos lesson1]$ stat file.txt
File: ‘file.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 657563 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1001/ xl) Gid: ( 1001/ xl)
Access: 2022-10-07 18:42:20.857804894 +0800
Modify: 2022-10-07 18:42:20.857804894 +0800
Change: 2022-10-07 18:42:20.857804894 +0800
Birth: -
[xl@VM-12-4-centos lesson1]$
file.txt 文件时间被更改
常用选项:
-a
(或–time=atime或–time=access或–time=use)
更改文件的访问(读取)时间记录。
注:*是通配符,可以匹配任意长度的任意字符,*.txt是一个正则表达式
-c
(或–no-create)
不建立任何文档
-d
使用指定的日期时间,而非现在的时间
-t
使用指定的日期时间,而非现在的时间
-f
此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m
( 或–time=mtime或–time=modify)
只更改文件修改时间。
-r
把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p
–parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立那些尚不存在的目录,即一次可以建立多个目录
tree
命令: 以树状图形式列出目录内容
如果使用不了tree命令,可以先使用下面这行命令安装tree:
yum install -y tree
rmdir
是一个与mkdir相对应的命令
mkdir是建立目录,而rmdir是删除命令
语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p
当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm
命令可以同时删除文件或目录
语法:rm [-f-i-r-v] [dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
-f
即使文件属性为只读(即写保护),亦直接删除
-r
删除目录及其下所有文件
【离职小妙招】强制清空服务器系统内的所有文件:
谨慎使用!!!
sudo rm -rf /*
Linux命令有很多参数,我们不可能全记住,我们可以通过查看手册获取帮助。
访问Linux手册页的命令:
man 语法: man [选项] 命令
常用选项:
-k
根据关键字搜索联机帮助
num
只在第num章节找
-a
将所有章节都显示出来
比如 man printf 它缺省从第一章开始搜索,直到找到停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
man手册分为8章
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明:
cp指令用于复制文件或目录
如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。
若同时指定多个文件或目录,而最后的目的地并非一个已存
在的目录,则会出现错误信息
在当前工作目录中,将某个文件复制一份,并定义新文件名称
注:cat
命令的功能是在终端设备上显示文件内容,后文有介绍
常用选项:
-f
(或 --force )
强行复制文件或目录, 不论目的文件或目录是否已经存在
-i
(或 --interactive)
覆盖文件之前先询问用户
-r
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R
(或 --recursive)
递归处理,将指定目录下的文件及子目录一并处理
mv命令是move的缩写, 可以用来移动文件或者将文件改名(move (rename) files) , 是Linux系统下常用的命令, 经常用来备份文件或者目录。
与cp命令的区别:
cp
命令是用于文件的复制操作,文件个数是增加的,而mv
则为剪切操作,也就是对文件进行移动操作,文件位置发生变化,但总个数并无增加
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录) , mv命令将文件重命名或将其移至一个新目录中。
- 当第二个参数类型是文件时, mv命令完成文件重命名, 此时, 源文件只能有一个(也可以是源目录名) , 它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时, 源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中。
重命名:
移动文件:
常用选项:
-f
:
force 强制的意思, 如果目标文件已经存在, 不会询问而直接覆盖
-i
:
若目标文件 (destination) 已经存在时, 就会询问是否覆盖
语法: cat [选项][文件]
功能: 查看目标文件的内容
tac
命令:反向显示文件内容
(命令反的,内容也打印反的)
常用选项:
-b
对非空输出行编号
-n
对输出的所有行编号
-s
不输出多行空行
语法: more [选项][文件]
功能: more命令, 功能类似 cat
下面这行命令的意思是向test.txt文件写入10000行“”中的内容
cnt=0; while [ $cnt -le 10000 ] ; do echo "Hello Linux [$cnt]"; let cnt++; done > test.txt
常用选项:
-n
对输出的所有行编号
q
退出more
-num
指定每屏显示的行数
注意行数从0开始
+num
从第num行开始显示
[pageup]
[pagedown]
等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!语法: less [参数] 文件
功能: less与more 类似 ,但使用less可以随意浏览文件 ,而more只能向前移动 ,却不能向后移动 ,而且less在查看之前不会加载整个文件
-i
忽略搜索时的大小写
-N
显示每行的行号
/字符串
向下搜索“字符串”的功能
?字符串
向上搜索“字符串”的功能
n
:
重复前一个搜索(与 / 或 ? 有关)
N
:
反向重复前一个搜索(与 / 或 ? 有关)
q
:
退出
语法: head [参数]… [文件]…
功能: head 用来显示档案的开头至标准输出中,
默认head命令打印其相应文件的开头10行。
选项:
-n<行数>
显示的行数
语法: tail [必要参数] [选择参数] [文件]
功能: 用于显示指定文件末尾内容, 不指定文件时, 作为输入信息进行处理。 常用查看日志文件
选项:
-f
循环读取
-n<行数>
显示行数
问题:
如何显示指定的第m行到第n行呢?这里简单介绍一下重定向和管道
重定向(Redirection):重定向的作用是帮助我们把命令执行的结果保存到文件里
>
:输出重定向,重定向一个文件,将本来在屏幕上的输出内容重定向保存到文件里。文件不存在,则新建文件;文件存在,则覆盖原文件内容。
管道|
(Pipes):管道是对命令输入输出进行重定向,将一个命令的输出通过管道连接到另一个程序的输入,让 Linux 程序高效协同工作。
上面问题的方法1:
方法2:
date:显示或设置系统日期与时间
date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]… [+FORMAT]
-u
:显示目前的格林威治时间
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
cal命令可以用来显示公历(阳历)日历。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999) , 如有两个参数,则表示月份和年份
常用选项:
-3
显示系统前一个月,当前月,下一个月的月历
-j
显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y
显示当前年份的日历 (如:cal -y 2020)
Linux下find命令是在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只要你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)
find命令通常进行的是从根目录(/)开始的全盘搜索,在介绍find命令之前,我们先了解一下有条件的或对部分文件搜索的命令:
whereis
:显示命令及相关文件的路径updatedb
命令更新一次。正因为这样,whereis命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到, 原因就是该数据库文件没有被更新which
:查找命令本身所在的路径
alias
:设置命令别名(-p打印已经设置的命令别名)
alias命令的作用只局限于该次登入的操作。
locate
locate命令是基于数据文件(/var/lib/locatedb)进行的定点查找,由于缩小了搜索范围,因此快很多。
Linux系统需定期执行下updatedb命令对数据库文件进行更新,然后再使用locate命令进行查找,这样才会更加准确
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name
按照文件名查找文件
全盘搜索系统中所有以.mp3结尾的文件
find / -name *.mp3
-user
匹配所有者
-group
匹配所属组
在/home目录中搜索所有属于指定用户的文件
find /home -user xl
-size
匹配文件的大小(+1M为查找超过1M的文件,而-1M为查找小于1M的文件)
find /home -size -1M
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
搜索某个文件中,包含某个关键词的内容
常用选项:
-i
:
忽略大小写的不同,所以大小写视为相同
-n
:
顺便输出行号
-v
:
反向选择,即显示出没有 ‘搜寻字符串’ 内容的行
压缩的作用:把要传输的文件先进行压缩再进行传输,能够很好的提高工作效率,方便分享
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r
递归处理,将指定目录下的所有文件和子目录一并处理
语法:unzip [参数] 压缩包
功能:解压缩zip格式文件
语法:tar [-cxtzjvf] 文件与目录
功能:压缩和解压缩文件,不打开它,直接看内容
常用选项:
-c
:
建立一个压缩文件(create 的意思)
-x
:
解开一个压缩文件
-t
:
查看 tarfile 里面的文件
-z
:
是否同时具有 gzip 的属性?即是否需要用 gzip 压缩?
-j
:
是否同时具有 bzip2 的属性?即是否需要用 bzip2 压缩?
-v
:
压缩的过程中显示文件
-f
:
使用文档名,请留意,在 f 之后要立即接文档名!不要再加参数!
-C
:
解压到指定目录
/tmp/etc.tar
tar -cvf /tmp/etc.tar /etc
tar -jcvf /tmp/etc.tar.bz2 /etc
tar -zcvf /tmp/etc.tar.gz /etc
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file
如果加 j 参数,则以 .tar.bz2 来作为后缀名
tar -ztvf /tmp/etc.tar.gz
由于我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就要加上 z 这个参数;同理 bzip2 压缩的 tar file 就要加上 j 这个参数。
我先使用cd命令将工作目录变换到 /usr/local/src 底下,再解压:
tar -zxvf /tmp/etc.tar.gz
tar -zxvf /tmp/etc.tar.gz etc/passwd
tar -zxvpf /tmp/etc.tar.gz /etc
这个 -p 的属性是很重要的,尤其是当你要保留原本文件的属性时!
tar -N "yyyy/mm/dd" -zcvf home.tar.gz /home
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
tar -cvf - /etc | tar -xvf -
这个动作有点像是 cp -r /etc /tmp,依旧是有其有用途的。
要注意的地方是输出档变成 - 而输入档也变成 - ,又有一个 | 存在
这分别代表 standard output, standard input 与管道命令
数字计算器:可以进行浮点运算
语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
-a
(或–all )
详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
命令补全
和档案补齐
的功能停掉
键盘输入结束
(End Of File, EOF , End OfInput)的意思;另外,它也可以用来取代exit语法: shutdown [选项]
常见选项:
-h
:
将系统的服务停掉后,立即关机。
-r
:
在将系统的服务停掉之后就重新启动
-t sec
:
-t 后面加秒数,亦即『过几秒后关机』的意思
本文到此结束。如有错误,望指正。