grep命令:
grep命令是非常重要的命令,可以对文本进行查找和搜索
常用参数如下:
常用实例:
1、在多个文件中查找:
grep "file" file_1 file_2 file_3
2、输出除之外的所有行 -v 选项:
grep -v "file" file_name
3、标记匹配颜色 --color=auto 选项:
grep "file" file_name --color=auto
4、使用正则表达式 -E 选项:
grep -E "[1-9]+"
egrep "[1-9]+"
5、只输出文件中匹配到的部分 -o 选项:
echo this is a test line. | grep -o -E "[a-z]+."
line.
echo this is a test line. | egrep -o "[a-z]+."
line.
6、统计文件或者文本中包含匹配字符串的行数-c 选项:
grep -c "text" file_name
2
7、输出包含匹配字符串的行数 -n 选项:
grep "text" -n file_name
或
cat file_name | grep "text" -n
8、多个文件
grep "text" -n file_1 file_2
9、搜索多个文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
10、grep递归搜索文件
在多级目录中对文本进行递归搜索:
grep "text" . -r -n
11、忽略匹配样式中的字符大小写:
echo "hello world" | grep -i "HELLO"
hello
12、选项 -e 指定多个匹配样式:
echo this is a text line | grep -e "is" -e "line" -o
is
line
13、也可以使用 -f 选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。
cat patfile
aaa
bbb
echo aaa bbb ccc ddd eee | grep -f patfile -o
14、在grep搜索结果中包括或者排除指定文件:
只在目录中所有的.php和.html文件中递归搜索字符"main()"
grep "main()" . -r --include *.{php,html}
15、在搜索结果中排除所有README文件
grep "main()" . -r --exclude "README"
16、在搜索结果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelist
touch abc.txt 创建一个名为abc.txt的文件
touch -r 指定文件时间与参考文件相同
touch -t 201608012234.55[yyyymmddhhmm.ss] abc.txt 更改文件为指定的时间
touch temp 创建一个名为temp的文件
vi编辑器有三种模式,命令行模式、编辑模式、底行模式。
vi 文件名进入命令行模式,Insert进入编辑模式,编辑完成Esc退出编辑模式,:wq进入底行模式并保存修改,:q直接退出保存。
tar命令用于打包压缩文件,常用的压缩命令还有bzip2,gzip
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
bzip2 file1 压缩一个叫做 'file1' 的文件
gunzip file1.gz 解压一个叫做 'file1.gz'的文件
gzip file1 压缩一个叫做 'file1'的文件
gzip -9 file1 最大程度压缩
rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
which命令用于用户查找命令所有路径
命令格式
file命令用于获取文件属性
命令格式
file 文件名或目录名
命令示例:
使用说明
命令格式:cat [-AbeEnstTuv] [--help] [--version] fileName
cat file1 从第一个字节开始正向查看文件的内容
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
使用示例
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文档内容
cat /dev/null > /etc/test.txt
tac [filename]
从最后一行开始反向查看一个文件的内容,ac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写。
nl [-bnw] 文件
选项与参数:
-b: 指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
more file1 查看一个长文件的内容,支持一页一页翻动
运行的时候,支持以下几个按键:
空白键 (space):代表向下翻一页;
Enter :代表向下翻‘一行’;
/字串 :代表在这个显示的内容当中,向下搜寻‘字串’这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
less运行时可以输入的命令有:
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻‘字串’的功能;
?字串 :向上搜寻‘字串’的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
head [-n number]
head -2 file1 查看一个文件的前两行
tail [-n number]
tail -2 file1 查看一个文件的最后两行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容
文件权限列中三位为一组,分别代表相关的用户、组、其它用户的权限
权限列中三位为一组,分别代表相关的用户、组、其它用户的权限
所以修改权限可以分别修改或一同修改,系统中权限分为数字权限与字符权限
数字权限:r=4,w=2,x=1
字符权限:+ 增加 -去除 a取消所有加上给定的
修改权限的命令chmod,命令格式:
chmod 权限 文件名或目录名 修改权限格式
chmod -R 权限 目录名 递归将目录及其下面所有内容权限全部修改
chown 改变文件或目录的属主(所有者)
chown 用户名 文件名或目录名
chown 用户名.组名 文件名或目录名
修改所属组也可用chgrp 命令来完成
当你用ls -l 查看到文件的属主、属组为数字时,就表明该文件的创建用户已被删除。
文件的特殊权限
chattr +i(-i) 文件名 锁定文件(取消锁定)不可删除与清空
chattr +a(-a) 文件名 添加内容(只可添加内容)
使用lsattr 文件名 查看文件的特殊权限
由此可以看出
root用户默认创建的目录权限是755,文件权限是644
普通用户默认创建的目录权限是775,文件权限是664
这也是系统默认的比较安全的权限分配,其实这些默认权限全部都是由umask值来决定的
系统规定了
文件的权限值是从666开始计算(默认权限=权限值-umask值)
目录的权限值是从777开始计算(默认权限=权限值-umask值)
文件1的权限=444 (666-232=434——43(3+1)4)
② linux下怎么修改文件夹目录
具体操作如下:
一、目录创建
在/home/wwwroot目录下新建一个sinozzz123的文件夹
mkdir /home/wwwroot/sinozzz123
二、目录复制
1.把/home/wwwroot/sinozzz里面的文件和文件夹等复制到home/wwwroot/sinozzz123目录下
cp -rf /home/wwwroot/sinozzz/* /home/wwwroot/sinozzz123
2.把/home/wwwroot/sinozzz123/abc/下的文件夹和文件复制到home/wwwroot/sinozzz123目录下
cp -rf /home/wwwroot/sinozzz123/abc/* /home/wwwroot/sinozzz123
3.把/home/wwwroot/sinozzz目录复制到/home/wwwroot/sinozzz123目录下,即把sinozzz复制变成sinozzz123的子目录,变成/home/wwwroot/sinozzz123/sinozzz的路径
cp -rf /home/wwwroot/sinozzz /home/wwwroot/sinozzz123
三、目录剪切
1.使用mv命令剪切文件。
如需要将/home/wwwroot/sinozzz123/music/目录下的1.mp3文件剪切到/home/wwwroot/sinozzz123/abc目录下,执行下面的命令即可:
# mv /home/wwwroot/sinozzz123/music/1.mp3 /home/wwwroot/sinozzz123/abc
2.使用mv命令剪切文件夹。
把/home/wwwroot/sinozzz123/soft文件夹剪切到/home/wwwroot/sinozzz123/abc目录下
# mv /home/wwwroot/sinozzz123/soft /home/wwwroot/sinozzz123/abc
3.使用mv命令剪切文件夹和文件
把/home/wwwroot/sinozzz123/photo/下的文件夹和文件剪切到/home/wwwroot/sinozzz123/abc目录下
# mv /home/wwwroot/sinozzz123/photo/* /home/wwwroot/sinozzz123/abc
四、目录重命名
在linux下,移动文件跟重命名都是同一个命令,mv(就是move的意思)
命令: mv 源文件名 目标文件名
1.把/home/wwwroot/sinozzz123/index.htm重命名为/home/wwwroot/sinozzz123/index.html
# mv /home/wwwroot/sinozzz123/index.htm /home/wwwroot/sinozzz123/index.html
2.把/home/wwwroot/sinozzz123目录重命名为/home/wwwroot/sinozzz456
# mv /home/wwwroot/sinozzz123 /home/wwwroot/sinozzz456
五、目录删除
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf
即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
1.删除文件使用实例:
rm -f /home/wwwroot/sinozzz456/index.html
将会强制删除/home/wwwroot/sinozzz456/index.html这个文件
2.清空文件夹实例:
rm -rf /home/wwwroot/sinozzz456/abc/*
将会强制删除/home/wwwroot/sinozzz456/abc目录下所有文件、文件夹,保留/home/wwwroot/sinozzz456/abc目录
3.删除文件夹实例:
rm -rf /home/wwwroot/sinozzz456
将会强制删除/home/wwwroot/sinozzz456目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
当然,rm还有更多的其他参数和用法,man rm就可以查看了
③ linux系统中如何重命名文件和文件夹
linux重命名文件和文件夹可以使用mv命令来实现。
mv命令:
Linux mv 命令用来为文件或目录改名、或将文件或目录移入其它位置。
实例:
比如:before.txt是修改之前的文件名,after.txt是准备修改的文件名。
命令为:
注意:如果当前目录下也有个after.txt的文件的话,我们的这个文件是会将它覆盖的。
mv命令也可以移动文件和文件夹,例如将/a目录移动到/b下,并重命名为c。
命令为:
④ linux用什么命令修改目录名称
linux下修改主目录的方法:
第一,修改/etc/passwd文件 ;
第二,usermod命令;
具体方法:
第一种方法:vi /etc/passwd ;
找到要修改的用户那几行,修改掉即可,此方法建议慎用。
/etc/passwd文件格式 。
登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:shell程序 。
用此方法修改了用户宿主目录后,会出现某些异常,如:
bash环境异常,需要将用户原宿主目录下的隐藏文件拷贝到更改后的宿主目录即可 。
cp /原宿主目录/.* /目标目录。
第二种:usermod ;
usermod -d /usr/newfolder -u uid-u后面一定要接uid啊,不是username 。
补充说明:usermod可用来修改用户帐号的各项设定。
rmdir 命令
功能:删除空目录。
语法:rmdir [选项] dir-name
说明:dir-name表示目录名。该命令从一个目录中删除一个或多个子目录项。需要 特别注意的是,一个目录被删除之前必须是空的。rm - r dir命令可代替 rmdir,但是有危险性。删除某目录时也必须具有对父目录的写权限。
命令中各选项的含义为:
- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应 的信息。
cd 命令:
功能:改变工作目录。
语法:cd [directory];
说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory, 则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。
⑤ linux 怎样修改文件夹的名字
Linux在终端命令行修改文件夹名字用mv命令,命令的用法是这样:mv
原来的名字
修改后的名字;如果是在图形界面的文件管理器中,那就更简单了,直接点击右键选择“重命名”就可以了。
⑥ linux中用什么命令移修改文件夹名
linux的文件重命名非常简单。常用的是mv命令和rename命令。下面介绍一下这两个命令的用法,具体结节可以参考手册。
1、mv
mv fromfile tofile
如把文件a.txt得命名为b.txt,可以是mv a.txt b.txt。
mv一次只能重命名一个文件,而且,它是移动命令。如果tofile已经存在的话,会直接装原文件覆盖,从而造成文件的丢失。当然有选项可以对已存在的文件进行提示,但是,我表示,那个选项我还真不常用。综合这两点考虑,还是决定看看rename吧。
2、rename
rename frompart topart filename 或者 rename 's/frompart/topart/' filename
如把文件a.txt得命名为b.txt,可以是rename 'a' 'b' a.txt (这个没有试过,看网上别人说的,是这样子的。)还可以是:rename 's/^a/b/' a.txt
⑦ linux中修改文件名命令
linux 给文件改名的命令是mv命令
mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。命令详细介绍可参考 Linux命令大全
⑧ linux 给文件改名的命令
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
⑨ Linux下批量修改文件名
Linux下修改文件名有mv和rename。 其中mv命令只能对单个文件重命名 , 这是mv命令和rename命令的在重命名方面的根本区别。
linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:
输入man rename 看到第一行是:
RENAME(1) Linux Programmer’s Manual RENAME(1)
这个就是C语言版本的
而如果出现:
RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了
C语言版本格式:rename 原字符串 新字符串 文件名
Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名
rename支持正则表达式
例子:
字母的替换 rename "s/AA/aa/" * // 把文件名中的AA替换成aa
修改文件的后缀 rename "s//.html//.php/" * // 把.html 后缀的改成 .php后缀
批量添加文件后缀 rename "s/$//.txt/" * // 把所有的文件名都以txt结尾
批量删除文件名 rename "s//.txt//" * // 把所有以.txt结尾的文件名的.txt删掉
在文件夹shell下创建文件10个文件
touch tmp_{1..10}.txt
找到含有“_“”的文件夹。
find ./ -name "*_*"
读取id, 用mv改名,$为自己理解为赋值后的id,格式为