Published at 2020-04-29 21:14
Author:zhixy
View:946
由于部分特殊符号markdown的html页面显示问题,文中采用了全角格式,包括*,$。请忽略符号前后形似的空格。
用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
常用参数:
# 列出目前工作目录下所有文件及目录,包括隐藏文件
[user@server ~]# ls -la
用于显示工作目录。
# 列车目前工作目录的绝对路径
[user@server ~]# pwd
用于切换当前工作目录至 dirName(目录参数)。
常用参数:
# 跳到 /usr/bin/
[user@server ~]# cd /usr/bin/
用于建立名称为 dirName 之子目录。
常用参数:
# 在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。
[user@server ~]# mkdir -p BBB/Test
用于连接文件并打印到标准输出设备上。
常用参数:
# 把 textfile1 的文档内容输出到屏幕
[user@server ~]# cat textfile1
# 把 textfile1 的文档内容加上行号后输入 textfile2
[user@server ~]# cat -n textfile1 > textfile2
# 把 textfile1 和 textfile2 的文档内容加上行号
# (空白行不加)之后将内容附加到 textfile3
[user@server ~]# cat -b textfile1 textfile2 >> textfile3
# 清空 test.txt 文档内容
[user@server ~]# cat /dev/null > test.txt
Note: dev/null:在类 Unix 系统中,/dev/null 称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据。
逐页的形式显示文件内容。
常用参数:
#逐页显示testfile文档内容,如有连续两行以上空白行则以一行空白行显示
[user@server ~]# more -s textfile
#从第20行开始显示testfile的内容
[user@server ~]# more 20 testfile
常用操作命令:
逐页的形式显示文件内容,与more类似。
用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
#使用指令"touch"修改文件"testfile"的时间属性为当前系统时间
[user@server ~]# touch testfile
#使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。
[user@server ~]# touch file
用于复制文件或目录
常用参数:
#使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下
[user@server ~]# cp –r test/ newtest
用于删除一个文件或者目录。
常用参数:
#删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r"
[user@server ~]# rm test.txt
[user@server ~]# rm -r homework
用来为文件或目录改名、或将文件或目录移入其它位置。
常用参数:
#将文件 aaa 更名为 bbb
[user@server ~]# mv aaa bbb
#将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。
[user@server ~]# mv info/ logs
用来在指定目录下查找文件。
常用参数:
#查找目前目录及其子目录下,扩展名为 c 的文件
[user@server ~]# find . -name "*.c"
#查找目前目录其下子目录中所有一般文件
[user@server ~]# find . -type f
用于比较文件的差异。
常用参数:
#比较两个文件
[user@server ~]# diff test1.txt test2.txt
#并排格式输出,列宽50
[user@server ~]# diff test1.txt test2.txt -y -W 50
在环境变量$PATH设置的目录里查找符合条件的文件(主要用于查找各执行程序)。
#查看指令"bash"的绝对路径
[user@server ~]# which bash
用于Linux之间(远程)复制文件和目录。
#复制local_file到远程主机remote_ip的目录remote_folder(全路径),用户名remote_username
[user@server ~]# scp local_file remote_username@remote_ip:remote_folder
#复制远程主机remote_ip的目录remote_folder下的remote_file,到本地目录local_folder,并存为local_file
[user@server ~]# diff remote_username@remote_ip:remote_folder/remote_file local_folder/local_file
用于备份文件。
常用参数:
# 压缩 a.c文件为test.tar.gz
[user@server ~]# touch a.c
[user@server ~]# tar -czvf test.tar.gz a.c
# 解压文件
[user@server ~]# tar -xzvf test.tar.gz
用于计算字数。
常用参数:
# 在默认的情况下,wc将计算指定文件的行数、字数,以及字节数
[user@server ~]# wc testfile
用于将一个文件分割成数个。
常用参数:
#使用指令"split"将文件"README"每6行切割成一个文件
[user@server ~]# split -6 README
用于将两个文件中,指定栏位内容相同的行连接起来。
[user@server ~]# cat testfile_1 #testfile_1文件中的内容
Hello 95 #例如,本例中第一列为姓名,第二列为数额
Linux 85
test 30
[user@server ~]# cat testfile_2 #testfile_2文件中的内容
Hello 2005 #例如,本例中第一列为姓名,第二列为年份
Linux 2009
test 2006
[user@server ~]# join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容
Hello 95 2005
Linux 85 2009
test 30 2006
用于显示每行从开头算起 num1 到 num2 的文字
常用参数:
#提取test.txt文件中,以制表符分割的,第2列
[user@server ~]# cut -f 2 test.txt
#提取test.txt文件中,以';'分割的,第2列
[user@server ~]# cut -f 2 -d ';' test.txt
用于合并文件的列。
常用参数:
[user@server ~]# cat pas1
ID123
ID345
ID456
ID789
[user@server ~]# cat pas2
come
back
hello
world
[user@server ~]# paste -d: pas1 pas2#间隔字符为“:”
ID123:come
ID345:back
ID456:hello
ID789:world
[user@server ~]# paste -s pas1 pas2
ID123 ID345 ID456 ID789
come back hello world
# paste命令还有一个很有用的选项(-)。即对每一个(-),从标准输入中读一次数据。
[user@server ~]# cat pas1 pas2 | paste - - -
ID123 ID345 ID456
ID789 come back
hello world
用于将文本文件内容加以排序。
常用参数:
用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
常用参数:
# 利用sort对行排序(让重复的行相邻),通过管道“|”,输入 uniq,并统计各行在文件中出现的次数
[user@server ~]# sort testfile1 | uniq -c
用于转换或删除文件中的字符。
常用参数:
# 大小写转换
[user@server ~]# cat testfile | tr a-z A-Z
查找文件里符合条件的字符串。该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等。
常用参数:
#利用grep命令查找文件linux.txt 中的字符串“you"
[user@server ~]# cat linux.txt
this is linux
how are you
fine thank you
#查找含有"you"的行
[user@server ~]# grep "you" linux.txt
how are you
fine thank you
#-v: 不包含,相当于取反
[user@server ~]# grep -v "you" linux.txt
this is linux
#-n:添加行号
[user@server ~]# grep -n "you" linux.txt
1:how are you
2:fine thank you
#-c :统计匹配的行数,不是匹配字符串的次数
[user@server ~]# grep -c "you" linux.txt
2
#通过正则表达式实现模糊搜索
[user@server ~]# ls -l / | grep -e '\s[SD]e' #查找在一个空格后出现一个S或D,之后又有一个e的行
用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
常用参数:
-n:关闭自动输出模式空间的内容;
-e:直接在命令行模式上进行sed动作编辑,此为默认选项;
-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作;
-i:就地编辑文件,如果指定了后缀,则备份源文件;
-r: 在脚本命令中使用扩展正则表达式.
常用命令:
a:新增 、c:取代 、d:删除 、i:插入、p:打印
[user@server ~]# cat testfile
Hello 2005
Linux 2009
test 2006
#在每一行后面增加字符串"kkk"
[user@server ~]# sed 'akkk' testfile
Hello 2005
kkk
Linux 2009
kkk
test 2006
kkk
#替换每行中出现的'2'为'1'
[user@server ~]# sed 's/2/1/' testfile # 仅替换第一个出现的'2', 's/2/1/g' 替换所有的'2'
Hello 1005
Linux 1009
test 1006
#删除以Li开头09结尾的行
[user@server ~]# sed '/^Li.*09$/d' testfile
Hello 2005
test 2006
是一种处理文本文件的语言,是一个强大的文本分析工具。
常用参数:
#ls -l 的结果通过管道交给awk逐行扫描处理
[user@server ~]# ls -l
total 4
-rw-rw-r-- 1 user user ...... linux.txt
#打印每1行的第1列
[user@server ~]# ls -l | awk '{print $1}'
total
lrwxrwxrwx
dr-xr-xr-x
drwxr-xr-x
drwxr-xr-x
....
#打印每1行的第6列
[user@server ~]# ls -l | awk '{print $6}'
Dec
May
Aug
Aug
Jan
Dec
[user@server ~]# cat linux.txt
this is linux
how are you
fine thank you
#整行输出
[user@server ~]# awk '{print $0}' linux.txt
this is Linux
how are you
fine thank you
#输出最后一列
[user@server ~]# awk '{print $NF}' Linux.txt
Linux
you
you
#一次输出多列,使用逗号隔开要输出的列
[user@server ~]# awk '{print $1, $3}' Linux.txt
this Linux
how you
fine you
#给文件加上自定义的列
[user@server ~]# cat message.txt
A 20 man
B 23 woman
C 21 man
[user@server ~]# awk '{print "name:" $1, "age:" $2, "sex:" $3}' message.txt
name:A age:20 sex:man
name:B age:23 sex:woman
name:C age:21 sex:man
#-F 参数可自定义分割列的字符,如:-F '\t' 用制表符分割列
[user@server ~]# awk -F '\t' '{print $1}' message.txt
#考察第1列,如大于50则输出整行
[user@server ~]# awk -F '\t' '{if($1>50){print $0}}' result.txt