赞
踩
cd
cd : change directory 改变目录
cd /dir : 切换到指定的目录中
注意:绝对路径和相对路径
cd /dir 和 cd dir 完全不同的,前者是根目录下找dir , 后者是在当前目录下找dir
cd .. : 切换到上一级目录
ls
ls - list directory contents
列出当前目录或指定的目录下所有文件
ls 直接查看当前目录下的文件
ls /dir : 查看指定目录下的文件
ls -a : 查询当前目录下所有的文件包括隐藏文件
ls -l dir : 查询列出指定目录dir 下所有文件的详细信息。
ll
等价于 ls -l
ll /usr 列出/usr 目录下文件信息
cat filename : 查看指定文件的内容
head -5 filename : 查看指定文件中的前 5 行内容
tail -5 filename : 查看指定文件中的后 5 行内容
more filename : 分部分查看文件内容的。按百分比提示已经显示的内容,可以使用 空格键 来切换下一屏内容
rm : remove files or directory 删除文件或目录
- [root@wang dir]# rm *.txt # 默认会提示删除,匹配,* 表示任意个任意字符
- rm: remove regular empty file ‘Test2.txt’? y
- rm: remove regular empty file ‘Test3.txt’? y
- rm: remove regular empty file ‘Test4.txt’? y
- rm: remove regular empty file ‘Test5.txt’? y
- [root@wang dir]# ls
- java Test2.java Test3.java Test4.java Test5.java x
- [root@wang dir]# rm -f *.java # -f force 强制无提示删除
- [root@wang dir]# ls
rm Test.java : 直接提示删除文件
rm -i Test.java :提示删除
rm -f Test.java : 无提示直接删除
rm -r dir : 递归删除目录。 删除目录 必须带 -r
rm -rf dir : 递归无提示直接删除目录
rm -rf * : 把当前目录下所有的文件和目录删除
创建文件、查看文件、复制文件、移动文件、重名文件、删除文件
- [root@zhangpeng opt]# mkdir zhang
- [root@zhangpeng opt]# ls
- rh zhang
- [root@zhangpeng opt]# cd zhang
- [root@zhangpeng zhang]# ls
- [root@zhangpeng zhang]# pwd
- /opt/zhang
- [root@zhangpeng zhang]#
上面只能创建一级目录,如果需要创建多级目录,使用选项 -p
- [root@zhangpeng zhang]# mkdir -p a/b/c ## 注意:多级目录 使用 -p
- [root@zhangpeng zhang]# ls
- a Test.java
- [root@zhangpeng zhang]# ls a
- b
- [root@zhangpeng zhang]# ls a/b
- c
- [root@zhangpeng zhang]#
- [root@zhangpeng zhang]# touch Test.java ## 创建一个空的文件,命名为 Test.java
- [root@zhangpeng zhang]# ls
- Test.java
touch命令有两个功能:
一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;
二是用来创建新的空文件。
touch:创建共10个文件
- touch java{1..10}
- [root@zhangpeng wang]# touch user{1..10}.java //创建多个文件,名字变量
- [root@zhangpeng wang]# ls
- a Test{2-10} user10.java user2.java user4.java user6.java user8.java
- dir Test.java user1.java user3.java user5.java user7.java user9.java
- [root@zhangpeng wang]#
cp - copy files and directories
- [root@wang dir]# ls
- dir test Test.java
- [root@wang dir]# cp Test.java Test.txt 同目录下单文件复制
- [root@wang dir]# ls
- dir test Test.java Test.txt
- [root@wang dir]# ls dir
- [root@wang dir]# cp *Test* dir # 拷贝当前目录下文件名包含Test 字符串文件 复制到 dir 目录下
目录拷贝:
- [root@wang dir]# ls dest
- [root@wang dir]# cp dir dest # 默认 文件夹不能直接复制的
- cp: omitting directory ‘dir’
- [root@wang dir]# cp -r dir dest # 使用-r 拷贝。表示递归拷贝
- [root@wang dir]# ls dest
mv - move (rename) files
当前目录下的文件重命名,不能实现文件夹的重命名
移动文件或多个文件到指定目录下
移动目录或多个目录到指定目录下
- [root@wang dir]# ls
- dest dir test Test2.jva Test3.jva Test4.jva Test5.jva Test.java Test.txt
- [root@wang dir]# mv Test.txt TT.txt # 重命名 当前目录下做的文件移动
- [root@wang dir]# ls
- dest dir test Test2.jva Test3.jva Test4.jva Test5.jva Test.java TT.txt
- [root@wang dir]# mkdir a
- [root@wang dir]# ls
- a dest dir test Test2.jva Test3.jva Test4.jva Test5.jva Test.java TT.txt
- [root@wang dir]# mv *.jva a # 把指定后缀的类型文件 全部移动到指定的目录 a 下
- [root@wang dir]# ls
- a dest dir test Test.java TT.txt
- [root@wang dir]# ls test
- Test.java
- [root@wang dir]# mv test dest # 把目录test 直接整个移动到目录 dest下
- [root@wang dir]# ls
- a dest dir Test.java TT.txt
- [root@wang dir]# ls dest
- dir test

rename
rename old new filename : 重命名文件或文件夹(目录)
old 表示原文件名中包含的字符串
new 表示更换后的字符串
filename 表示原有文件名
- [root@wang dir]# ls
- dest dir myfile.txt T.java TT.txt xyz
- [root@wang dir]# rename myfile testfile myfile.txt #把myfile.txt 文件名中的myfile字符串换为 testfile
- [root@wang dir]# ls
- dest dir testfile.txt T.java TT.txt xyz
- [root@wang dir]# rename dir newdir dir # 重命名文件夹
- [root@wang dir]# ls
- dest newdir testfile.txt T.java TT.txt xyz
- [root@wang dir]#
vi
(全称:Visual Editor)是一种基于命令行的文本编辑器
Vim
是一款基于终端的文本编辑器,它是vi(Visual Editor Improved)的改进版本,由 Bram Moolenaar 开发
三种模式:命令模式、底行模式、编辑模式
进入默认是命令模式,
Ctrl+u: 向上翻半屏 Ctrl+d:向下翻半屏 Ctrl+f: 向下翻一屏 Ctrl+b: 向前翻一屏
dd : 删除当前光标所在的一行
shift+d : 删除当前光标所在的行,光标之后的此行内容
切换到编辑模式:
在当前光标位置前插入:i
在当前光标位置后插入:a
在当前行尾插入:A
新建一行并插入:o
(在当前行下方新建),O
(在当前行上方新建)
保存并退出:
先按 ESC
键回到命令模式,然后输入以下命令:
:wq
:wq!
:q!
编辑模式切换到命令模式:esc 进入命令模式
底行模式:
命令模式进入底行模式:
在命令模式下,输入冒号:":"
:wq 保存并退出
:q 直接不保存退出
:q! 强制不保存退出
:set nu 设置行号的
:set nonu 取消行号的
:/string 搜索文件中的string 字符串,区分大小写的
替换指定字符串:%s/hadoop/mongoDB
注意:%s 后面都没有空格,如果有空格,表示匹配的字符
%s/String /int :因为有空格,所以匹配时,找到所有String后有空格才会被替换。
:?str 文件内容中搜索指定的字符串str ,n 向上指向下一个,shift+n 向后找下一个
NAME find - search for files in a directory hierarchy
SYNOPSIS find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
- [root@wang dir]# find /opt -name "*txt*" #在指定的目录下搜索 文件名中包含指定字符串的所有文件(包含目录及子目录)
-
- [root@wang dir]# find -name "*txt*" #在当前目录下搜索
按类型搜索 文件或目录 类型
- [root@wang dir]# find -type d # 搜索当前目录下所有的目录。 -type 表示文件类型 d表示目录 f 表示文件
- .
- ./dest
- ./dest/dir
- ./dest/test
- ./xyz
- ./newdir
- [root@wang dir]#
-
- [root@wang dest]# find -type f # 搜索所有文件 不包含目录
- ./dir/Test2.jva
- ./dir/Test3.jva
- ./dir/Test4.jva
- ./dir/Test5.jva
按类型和名字搜索
- [root@wang dir]# find -type d -name "*t*" # 按类型 找出名字中包含t的所有目录
- ./dest
- ./dest/test
按类型&名字&大小搜索
-size 表示按文件大小
+50M : 大于50M
50M : 等于50M
-50M : 小于50M
- [root@wang dir]# find /opt -type f -name "*.rpm" -size +50M
- /opt/soft/jdk-11.0.12_linux-x64_bin.rpm
- /opt/soft/mysql/mysql-community-server-8.0.26-1.el7.x86_64.rpm
- /opt/soft/mysql/mysql-community-test-8.0.26-1.el7.x86_64.rpm
按大小 字节来搜索,注意使用 c
- [root@wang dir]# find -type f -size 8c # 搜索文件大小正好是8字节的文件
- ./dest/dir/Test.java
- ./dest/dir/Test.txt
find -type f -size 2 : 注意:没有指定单位的,默认0.5k , 默认单位是 b。
-size +2b: 一个b 表示512字节,2b 表示1024个字节
linux下的find命令用来查找文件,-size 表示大小 -size n[cwbkMG] File uses n units of space. The following suffixes can be used:
- b for 512-byte blocks (this is the default if no suffix is used)
-
- c for bytes
-
- w for two-byte words
-
- k for Kilobytes (units of 1024 bytes)
-
- M for Megabytes (units of 1048576 bytes)
-
- G for Gigabytes (units of 1073741824 bytes)
stat filename 查看文件详细属性
- [root@zhangpeng mydir]# stat Test.java
- File: ‘Test.java’
- Size: 106 Blocks: 8 IO Block: 4096 regular file
- Device: 803h/2051d Inode: 3658000 Links: 1
- Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
- Context: unconfined_u:object_r:usr_t:s0
- Access: 2021-08-14 17:56:52.709614840 +0800
- Modify: 2021-08-14 17:56:52.709614840 +0800
- Change: 2021-08-14 17:56:52.710614834 +0800
- Birth: -
- File:显示文件名 - Size:显示文件大小 - Blocks:文件使用的数据块总数 - IO Block:IO块大小 - regular file:文件类型(常规文件) - Device:设备编号 - Inode:Inode号 - Links:链接数 - Access:文件的权限 - Gid、Uid:文件所有权的Gid和Uid。
Linux下的三个时间:
Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
1)du 查看指定文件大小
查看指定文件的字节数 -b
- [root@zhangpeng mydir]# du -b Test.java
- 106 Test.java
查看指定文件的大小 默认为 k
- [root@zhangpeng mydir]# du -k Test.java ## 等价于 du Test.java
- 4 Test.java
- [root@zhangpeng mydir]# du -h Test.java ## -h 使用易读的方式显示大小 带单位
- 4.0K Test.java
注意和提醒: 默认单位K。如果文件大小不足4K时,显示4K 。
原因是:占用空间取决于文件系统的块(block)的大小,linux一般默认是4k(4096) ,因此,一个大小为1个字节的文件,最小也要占用4k
- [root@zhangpeng mydir]# du -sh /usr ### -s 表示--summarize,仅列出总量,而不列出每个目录和文件的大小
- 3.8G /usr
2)wc (Word Count)
wc - print newline, word, and byte counts for each file
命令的功能为统计指定文件中的字节数、字数、行数 -c 统计字节数。 -l 统计行数。 -m 统计字符数。这个标志不能与 -c 标志一起使用。 -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。 -L 打印最长行的长度
- [root@zhangpeng mydir]# wc Test.java
- 7 11 106 Test.java
- [root@zhangpeng mydir]# wc -c Test.java
- 106 Test.java
- [root@zhangpeng mydir]# wc -w Test.java
- 11 Test.java
- [root@zhangpeng mydir]# wc -l Test.java
- 7 Test.java
- [root@zhangpeng mydir]# wc -L Test.java
- 43 Test.java
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。