Linux常用命令
- 一、目录查看创建切换移动压缩删除
-
- 1.1 查看目录结构 – ls
- 1.2 创建修改文件目录 – touch
-
- 1.2.1 创建目录 – mkdir
- 1.2.2 创建文件 – touch
- 1.3 切换目录 – cd
- 1.4 目录压缩解压 (文件夹打包)tarzip
-
- 1.4.1 tar命令
-
- 1.4.1.1 打包成 .tar
- 1.4.1.2 打包并压缩 .tar.gz
- 1.4.1.3 解压文件tar
- 1.4.1.4 解压并解包文件tar.gz
- 1.4.1.5 查看压缩包结构,不解压
- 1.4.2 zip命令
-
- 1.4.2.1 压缩
- 1.4.2.2 解压缩
- 1.5 目录(重命名)移动 – mv
- 1.6 目录复制 – cp
- 1.7 目录删除 – rm
- 二、查看磁盘空间占用
-
- 2.1 查看磁盘状态 : df -h
- 2.2 查看各个文件磁盘占用情况:du -sh /*
- 2.3 查看inodes容量
- 2.4 查看文件数量
- 2.5 僵尸进程
- 三、进程查看杀掉
-
- 3.1 查看进程方法 – ps
- 3.2 杀死进程 – kill
- 四、文件软链接硬链接
一、目录查看创建切换移动压缩删除
1.1 查看目录结构 – ls
ls :list-查看当前目录所有内容
- ls -a :列出目录所有文件,包含以.开始的隐藏文件
- ls -A : 列出除.及…的其它文件
- ls -r :反序排列
- ls -t :以文件修改时间排序
- ls -S :以文件大小排序
- ls -h :以文件易读大小顺序显示
- ls -l :除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出
-
ls -la 列出目录所有文件,包含以.开始的隐藏文件及文件的权限、所有者、文件大小等信息详细
实例:
(1) 按易读方式按时间反序排序,并显示文件详细信息
ls -lhrt
(2) 按大小反序显示文件详细信息
ls -lrS
(3)列出当前目录中所有以”t”开头的目录的详细内容
ls -l t*
例如:
1.2 创建修改文件目录 – touch
touch命令用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,系统会建立一个新的文件。
补充说明:
1.stat * 查看这个目录所有文件的状态。
Access访问时间。Modify修改时间。Change状态改变时间。
2.每个文件在Linux下面都会记录3个主要的修改时间:
• modification time(mtime,修改时间):当文件“内容数据”(指文件里面的内容,而不是属性或权限)更改时,这个时间会更新。
• status time(ctime,状态时间):当文件的“状态”(权限或者属性)改变时,这个时间会更新。
• access time(atime,存取时间):当“该文件内容被取用”(例如使用cat读取了)时,会更新该时间。
(注:ls默认情况下显示的是mtime)
格式:
touch [-acfm][-d][-r] [-t][--help][--version][文件或目录…]
- 创建一个空文件或者更新atime、mtime、ctime
a.如果文件不存在,使用touch命令默认创建一个空文件
b.如果文件存在则更新atime,mtime,ctime为当前时间。
- 使用-a参数,touch文件时,文件存在只会更新atime和ctime为当前时间。
- 使用-m参数,touch文件时,文件存在只会更新mtime和ctime为当前时间
- 使用-d参数,touch文件时,文件存在会将atime,mtime按照设置修改,同时更新ctime时间
- 使用touch -t “[[CC]YY]MMDDhhmm[.ss]”修改文件的atime和mtime
- 使用-at组合参数,只修改atime。
- 使用-mt组合参数,只修改mtime。
- touch -r file1 file2 将file2的时间属性值修改为file1文件的时间属性
1.2.1 创建目录 – mkdir
mkdir 文件夹名称 : 创建文件夹。
mkdir -p 文件夹名称1/名称2/… :创建多级目录,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
实例:
(1)当前工作目录下创建名为 test 的文件夹
mkdir test
(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:
mkdir -p /tmp/test/t1/t
1.2.2 创建文件 – touch
1.3 切换目录 – cd
cd(changeDirectory) 命令语法:
cd [目录名]
说明:切换当前目录至 dirName。
实例:
(1)进入要目录
cd /
(2)进入 “home” 目录
cd ~
(3)进入上一次工作路径
cd –
https://www.runoob.com/w3cnote/linux-common-command-2.html
https://www.cnblogs.com/yuncong/p/10247583.html#_label7
1.4 目录压缩解压 (文件夹打包)tarzip
1.4.1 tar命令
tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
常用命令:
1、压缩:tar [-z|-j|-J] -c [-v] [-f ] 目标文件名 源文件
2、解压缩:tar [-z|-j|-J] -x [-v] [-f ] 待加压文件名 [-C 目录]
1.4.1.1 打包成 .tar
tar -cvf 打包后生成的文件名全路径 要打包的目录
当有多个参数时,-f命令参数必须在最后一个,否则会报错,原因是 -f后面跟的是目标文件名称,如果-fc,则会把c当做源文件名称。
-c是表示打包,create 缩写
-v表示显示打包的过程,verbose 缩写
-f指定打包后的文件名,file缩写
1.4.1.2 打包并压缩 .tar.gz
tar -zcvf 打包后生成的文件名全路径 要打包的目录
与相比,需要额外添加参数标识要进行压缩,例如通过加入-z,可以直接把tar包压缩成gz,一般常用的参数如下,选择任一均可:
-z:gzip指令
压缩命令表示gzip,命令里带-c, 则以 .tar.gz 或 .tgz 结尾来代表 gzip 压缩过的 tar file
解压缩表示ungzip,命令里带-x
-j :bzip2指令,则以 .tar.bz2 结尾,表示采用bzip2压缩
-J 大写,表示xz压缩,则以 .tar.xz 结尾,表示采用bzip2压缩
————————————————
1.4.1.3 解压文件tar
tar -xvf tar文件
#-x是表示还原 一般和-c命令必须同时存在一个
#-v表示显示打包的过程,verbose 缩写
#-f指定打包后的文件名,file缩写
1.4.1.4 解压并解包文件tar.gz
先解压,再解包。在解压时,可以不带-z或-j,linux会自动判断采用了哪种压缩格式,会自动在命令中带入 相应的参数:tar -xvf tar文件名
[root@localhost test]# ls
test2.tar.bz2
#解压命令中没有带-j,仍能解压
[root@localhost test]# tar -xvf test2.tar.bz2
a.c
[root@localhost test]# ls
a.c test2.tar.bz2
[root@localhost test]#
默认解压时在当前目录,如果要指定目录的话,则加上[-C 目录] 参数,即 tar -xvf tar文件名 -C 目录名称
[test]# tar -zcf hello2.tar.gz -C /paasdata/zzl/test hello 使用-C指定绝对路径前缀 注意:-C命令 与目标文件夹hello之间有空格
[test]# ls
hello hello2.tar.gz hello.tar.gz
[test]# tar -tf hello2.tar.gz
hello/ 此时,压缩文件的目录结构就是不包含绝对路径前缀的
1.4.1.5 查看压缩包结构,不解压
tar -tvf xx.tar.gz
或 tar -tvf xx.tar
1.4.2 zip命令
如果出现这个提示:
-bash: zip: command not found 不能执行ZIP压缩,是因为没有安装ZIP,
运行下这条安装命令即可yum install zip
1.4.2.1 压缩
linux zip命令参数列表:
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
- 目录下所有文件和文件夹打包为指定目录下的.zip
zip –q –r-S [zip文件所在目录]xx.zip 解压后放置的目录
# 以上是在安静模式下进行的,而且包含系统文件和隐含文件
zip –q –r xahot.zip /home/wwwroot/xahot
1.4.2.2 解压缩
unzip [压缩文件位置/]xx.zip
#r如:将/home/wwwroot/xahot.zip解压到当前目录
unzip xahot.zip
unzip参 数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID//GID
1.5 目录(重命名)移动 – mv
mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。
mv [options] 源文件或目录 目标文件或目录
#[options]主要参数
#-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
#-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
- 将/usr/udt中的所有文件移到当前目录(用”.”表示)中:
$ mv /usr/udt/* .
- 将文件test.txt重命名为wbk.txt:
$ mv test.txt wbk.txt
- 把当前目录的一个子目录里的文件移动到另一个子目录里
mv 文件名/* 另一个目录
- 移动当前文件夹下的所有文件到上一级目录
mv * ../
1.6 目录复制 – cp
cp命令是用于复制的。cp(copy) 复制文件或目录。
cp [选项] 源文件 目标文件
选项:
-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-i:询问,如果目标文件已经存在,则会询问是否覆盖;
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r:递归复制,用于复制目录;
-u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。
最常用的:
# 保留源文件属性复制
cp -a 源文件 目标文件
1.复制文件示例
#建立源文件
[root@localhost ~]# touch cangls
#1. 把源文件不改名复制到 /tmp/ 目录下
[root@localhost ~]# cp cangls /tmp/
#2. 改名复制
[root@localhost ~]# cp cangls /tmp/bols
如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,因为 cp 命令默认执行的是“cp -i”的别名,例如:
[root@localhost ~]# cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y
#目标位置有同名文件,所以会提示是否覆盖
- 复制目录示例
复制目录只需使用“-r”选项即可,例如:
#建立测试目录
[root@localhost ~]# mkdir movie
#目录原名复制
[root@localhost ~]# cp -r /root/movie/ /tmp/
- 复制软链接文件
如果源文件不是一个普通文件,而是一个软链接文件。
(1)如果在复制软链接文件时不使用 “-d” 选项,则 cp 命令复制的是源文件,而不是软链接文件;
(2)只有加入了 “-d” 选项,才会复制软链接文件。
(3)请大家注意,“-d” 选项对硬链接是无效的。
#建立一个测试软链接文件/tmp/cangls_slink
[root@localhost ~]# ln -s /root/cangls /tmp/cangls_slink
#1. 复制软链接文件,但是不加"-d"选项
[root@localhost ~]# cp /tmp/cangls_slink /tmp/cangls_t1
#2. 复制软链接文件,加入"-d"选项
[root@localhost ~]# cp -d /tmp/cangls_slink /tmp/cangls_t2
[root@localhost ~]# ll /tmp/cangls_t1 /tmp/cangls_t2
#会发现不加"-d"选项,实际复制的是软链接的源文件,而不是软链接文件
-rw-r--r-- 1 root root 0 6月 14 05:56 /tmp/cangls_t1
#而如果加入了"-d"选项,则会复制软链接文件
lrwxrwxrwx 1 root root 12 6 月 14 05:56/tmp/ cangls_t2-> /root/cangls
- 保留源文件属性复制
当我们使用 “-a” 选项时,目标文件和源文件的所有属性都一致,包括源文件的所有者,所属组、时间和软链接性。
#使用"-a"选项
[root@localhost ~]# cp -a /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
[root@localhost ~]# ll /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /var/lib/mlocate/mlocate.db
- 复制为软连接硬链接
“-l” 和 “-s” 选项的源文件只需是普通文件,目标文件就可以直接复制为硬链接和软链接。
(1)如果使用 “-l” 选项,则目标文件会被建立为源文件的硬链接;
(2)如果使用了 “-s” 选项,则目标文件会被建立为源文件的软链接。
[root@localhost ~]# touch bols
#建立测试文件
[root@localhost ~]# ll -i bols
262154-rw-r--r-- 1 root root 0 6月 14 06:26 bols
#源文件只是一个普通文件,而不是软链接文件
[root@localhost ~]# cp -l /root/bols /tmp/bols_h
[root@localhost ~]# cp -s /root/bols /tmp/bols_s
#使用"-l" 和"-s"选项复制
[root@localhost ~]# ll -i /tmp/bols_h /tmp/bols_s
262154-rw-r--r-- 2root root 0 6 月 14 06:26/tmp/bols_h
#目标文件 /tmp/bols_h 为源文件的硬链接文件
932113 lrwxrwxrwx 1 root root 10 6 月 14 06:27/tmp/bols_s -> /root/bols
#目标文件 /tmp/bols_s 为源文件的软链接文件
1.7 目录删除 – rm
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。
rm 【选项】 目录
选项说明:
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
-i 进行交互式删除。
-
rm -rf 目录
不管有多少级目录,一并强行删除 -
rm -if 目录
使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。
二、查看磁盘空间占用
2.1 查看磁盘状态 : df -h
如果不知道哪个目录占用大小的百分比,可以先查看哪个目录占用空间最大 df -h
,在Use% 列就可以看到现有磁盘占用的空间的百分比大小;
2.2 查看各个文件磁盘占用情况:du -sh /*
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh /*
发现 /dev目录占用空间为 52%,占用较大,进入 /dev目录下,查看该目录下面哪个文件占用较大,使用命令 du -sh /*
命令中的 / 表示跟目录,也可以试 /home 等,可根据情况自行修改。
du常用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
–apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小
-
du -h
-
du -a
使用此选项时,显示目录和目录下子目录和文件占用磁盘空间的大小。
可以看出,默认情况下du只显示./目录占用磁盘空间的大小,而使用-a选项后,它不仅显示了目录(最后一行),而且显示了目录下各个文件占用磁盘空间的大小。
3. du -s
使用此选项时,du只显示目录所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。
默认情况下,du不显示目录下文件占用磁盘空间的信息,但它会显示其下子目录占用磁盘空间的信息;而使用-s选项以后,只显示xx目录占用磁盘空间的大小。
4. du --apparent-size
显示文件或目录自身大小,而不是它们占用的磁盘空间大小。
5. du -c
使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
6. du -lh --max-depth=1
查看当前目录下一级子文件和子目录占用的磁盘容量。
2.3 查看inodes容量
当磁盘容量或inode容量任意一个不足时就都会提示 No space left on device。查看后进入占用率高的目录删除无用文件即可。
2.4 查看文件数量
inodes 爆满那就查看一下哪些地方文件数量过多。根据上边的信息 / 目录的 inodes 占用率为 100% 所以查看其下文件,将无用文件删除即可,进行删除即可。
for i in /*; do echo $i; find $i |wc -l; done
2.5 僵尸进程
若磁盘容量和 inodes 容量都正常但还是没有磁盘空间,则需查看是否存在已被删除的文件,状态为 deleted
lsof | grep deleted
根据进程号,将其 kill 掉即可。若不清楚该进程作用请勿随意 kill
原理:
在linux上被删除的文件仍被其他进程所使用,文件句柄没有完全释放出来,导致空间无法释放出来,在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
三、进程查看杀掉
3.1 查看进程方法 – ps
ps命令以简单列表的形式,报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
ps aux
#a:显示当前终端下的所有进程信息,包括其他用户的进程。
#u:使用以用户为主的格式输出进程信息。
#x:显示当前用户在所有终端下的进程。
- 当知道端口号的时候,使用 lsof -i:端口号查看进程号:
#比如查看1500端口的进程号
lsof -i:1500
2. 当不知道端口号,但是知道程序名称时,使用ps aux查看:
ps -aux | grep 程序名称
3.2 杀死进程 – kill
kill -9 PID
四、文件软链接硬链接
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net