文件处理命令
命令语法:命令 [-参数选项] [文件或路径]
注解:1个别命令使用不遵循此格式
2档有多个项目时,可以写在一起
3简化选项与完整选项
4[]代表可选
5参数选项表示同一个命令的不同功能
目录处理命令:ls 选项[-ald] [文件或目录]
显示目录文件 ls –lh /etc l详细 a所有 d属性 h以k,m等显示,R递归显示
[root@localhost ~]# ls -ld /tmp/japan/duobo
drwxr-xr-x 2 root root 4096 3月 8 15:46 /tmp/japan/duobo
-rw-r--r--
文件类型 -文件d目录,l软连接文件
rw- r-- r--
u g o
u所有者 g所属组 o其他人
r读 w写 x执行
创建目录命令:mkdir -p递归创建 [目录名]
实例:mkdir -p /tmp/japan/duobo
mkdir /tmp/japan/longze /tmp/japan/cangjing
Windows下的路径样式为c:\data ,而linux底下路径样式为/data,windows是\,而linux底下是/ .WINDOWS底下有d盘 c盘等盘符概念,而linux底下没有只有文件路径
切换目录命令:cd [目录路径]
记住一个概念;相对路径,绝对路径
绝对路径: Windows而言 :从头(盘符)开始的路径 linux而言:从/开始的路径
实例:H:\linux运维架构学习笔记\linux基础与系统管理总结
[root@localhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
相对路径:不从/开始的路径,不头开始的路径
实例:[root@localhost sysconfig]# cd network-scripts
实例:cd /tmp/japan/boduo 到指定目录
[root@localhost ~]# cd /tmp/japan/duobo
[root@localhost duobo]#
cd ..上一级目录
[root@localhost ~]# cd /tmp/japan/duobo
[root@localhost duobo]#
cd 当前主目录下
[root@localhost japan]# cd
[root@localhost ~]#
显示当前目录:pwd 打印工作目录
实例: pwd
[root@localhost ~]# pwd
/root
删除空目录:rmdir [目录]
实例:rmdir /tmp/janpan/boduo
[root@localhost duobo]# rmdir /tmp/japan/duobo
[root@localhost duobo]# ls
[root@localhost duobo]# cd ..
[root@localhost japan]# ls
[root@localhost japan]# cd
[root@localhost ~]# cd /tmp
[root@localhost tmp]# ls
can japan test1 test2 test3
创建空文件:touch [文件名] 如果文件不存在,就建立新文件,如果存在,就改变文件的访问时间atime等时间戳信息
实例:touch japan.txt
创建有规则的多个文件
touch beidaqinniao{1..10}
[root@localhost tmp]# ls
can japan test1 test2 test3
[root@localhost tmp]# touch japan.txt
[root@localhost tmp]# ls
can japan japan.txt test1 test2 test3
创建有规则的多个文件
[root@localhost tmp]# touch beidaqinniao{1..10}
[root@localhost tmp]# ls
beidaqinniao1 beidaqinniao3 beidaqinniao6 beidaqinniao9 japan.txt test3
beidaqinniao10 beidaqinniao4 beidaqinniao7 can test1
beidaqinniao2 beidaqinniao5 beidaqinniao8 japan
Echo输出命令
语法echo [选项] [输出内容]
选项 -e: 支持反斜线控制的字符转换
实例:
[root@localhost ~]# echo -e "ab\bc"
Ac
[root@localhost ~]# echo -e "a\tb\tc\nd\te\tf"
a b c
d e f
[root@localhost ~]# echo -e "\e[1;33m luliechu is good boy \e[0m"
输出颜色的命令
\e[1;代表开启颜色输出
\e[0m代表关键颜色输出
echo -e "\e[1;33m a\t \e[1;31m b\n \e[1;32mc\t \e[1;34m d \e[0m "
标准输入输出
标准输入 0 键盘
标准输出 1 显示器
标准错误输出 2 显示器
输出重定向 >覆盖 >>追加
标准输出重定向 命令>文件 命令>>文件
标准错误输出重定向 错误命令 2>文件 错误命令2>>文件
正确输出和错误输出同时保存 命令 >> 文件 2>&1 以追加的方式,把正确的输出和错误的输出都保存到同一文件当中
命令&>>文件 以追加的方式,把正确的输出和错误的输出都保存到同一文件当中
命令>>文件1 2>>文件2 把正确的输出到文件1中,错误的输出到文件2中
输入重定向:命令<文件
没有输出重定向有用,知道就行了,演示案例 wc命令
Wc 选项 文件名
选项 -c 统计字节数
-w 统计单词数
-l 统计行数
链接多个命令顺序执行符号
; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系 ,只是简化操作,实际用于文件对拷命令 dd
实例:
Dd if=输入文件 of=输出文件 bs=字节数 count=个数
选项 if=输入文件 指定源文件或源设备
of=输出文件 指定目标文件或目标设备
bs=字节数 把这些字节看做一个数据块
count=个数 指定输入/输出多少个数据块
实例:创建一个100m的文件大概需要多少时间
&& 命令1&&命令2 逻辑与 命令1正确才会执行命令2
|| 命令1||命令2 逻辑或 命令1不正确才会执行命令2,命令1正确,就不会执行命令2
脚本长用&& ||结合用法,来判断条件成立与否
管道符| 将命令1的正确输出作为命令2的操作对象
命令1 |命令2
实例:监听正常连接
Grep [选项] “搜索内容” 文件名
选项:
-i 忽略大小写
-n 输出行号
-v 方向查找
--color=auto 搜索出的关键字用颜色显示
复制目录或文件:cp -rp [源文件或目录] [目标目录]
-r递归复制整个目录树
-p保持源文件属性不变
-f强制覆盖目标同名文件或目录
-i需要覆盖时提醒
实例cp -r /tmp/japan/cangjing /root 将目录/tmp/japan/cangjing复制到目录/root下
cp -rp /tmp/japan/duobo /tmp/japan/longze /root 将目录/tmp/japan目录下的duobo和longze复制到目录/root下,保持目录属性
文件移动,剪切,改名:mv [源文件或目录][目标目录]
实例:mv test.txt /home 将文件test.txt移动到/home 下
删除文件:rm -fr [文件或目录]
-r递归删除整个目录树
-f强制删除文件或文件
-i删除时提醒
实例:rm /tmp /yum.log 删除文件/tmp/yum.log
rm -rf /tmp/japan/longze 删除目录/tmp/japan/longze
一次性显示文件内容:cat -n [文件名]
-n显示行号
实例:cat /etc/issue
cat -n /etc/services
反向显示文件内容:tac [文件名]
实例:tac /etc/issue
分页显示文件内容:more [文件名]
空格或f 翻页
enter 换行
q或Q 退出
实例:more /etc/passwd
分页显示文件内容:less [文件名] 必须按q退出
实例:less /etc/passwd
显示文件前面几行 head -n [文件名] 不加行数默认是10行
-n 指定行数
实例:head -20 /etc/passwd
[root@localhost public]# head -n 2 test.txt
test
liyao
显示文件后面几行 tail -n [文件名] 不加行数默认是10行
-n 指定行数
-f 动态显示文件末尾内容
实例:tail -2 /etc/passwd
已知/tmp目录下已经存在text.txt文件,如果执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt
答案:\cp /mnt/test.txt /tmp //覆盖文件不提示
生成软链接:ln -s [源文件] [目标文件]
-s创建软链接
实例:ln –s /etc/sysconfig/network-scripts /a 创建软链接
ln /etc/issue /tmp/issue.hard 创建硬链接
软链接类似:windows快捷方式
软链接文件权限都为777
文件大小只是符号链接
箭头指向原文件 /tmp/issue.soft ->/etc/issue
硬链接特征:
拷贝cp -p +同步更新
echo "this is a test">>/etc/motd
可通过I节点识别
不能跨分区
不能针对目录使用
改变文件或目录权限chmod [{ugoa}{=+-}{rwx}] [文件或目录]
[mode=421] [文件或目录]
-R 递归修改
权限的数字表示r=4 w=2 x=1 如rwxrw-r-- 等于764
实例:chmod g+w testfile 赋予文件testfile所属组写权限
chmod -R 777 testdir修改目录testfile及其目录下文件为所有用户具有全部权限
文件目录权限总结
代表字符权限对文件的含义对目录的含义
r 读可以查看文件内容可以列出目录中的内容
w 写可以修改文件内容可以在目录中创建,删除文件
x 执行可以执行文件可以进入目录
改变文件或目录的所有者:chown [用户][文件或目录]
实例:chown shenchao fengjie 改变文件fengjie的所有者为shenchao
改变文件或目录的所属组:chgrp [用户组][文件或目录]
实例:chgrp lam fengjie 改变文件fengjie的所属组为lam
显示,设置文件的缺省权限:umask [-S]
-s以rwx形式显示新建文件缺省权限
实例:umask -S
文件搜索:find [搜索范围] [匹配条件] 五星级别命令
-name按名称找
-size按大小找使用+ -设置超过还是小于指定大小,单位k,M,G
-user 属于目标用户查找
- type文件类型查找 f普通文件 d目录文件 b设备文件 c字符设备文件
实例:find /etc -name passwd 在目录/etc中查找文件passwd
find /etc -size +2M 在目录/etc中查找大于2M的文件
find /home -user test 搜索/home目录下由test创建的文件及目录列表
find /etc -cmin -5 在/etc下查找5分钟内被修改过的属性的文件和目录
-amin 设置时间 access
-cmin 文件属性 change
-mmin 文件内容 modify
find /etc -size +80M -a size -100M 在/etc下查找大于80M小于100M的文件
-a两个条件同时满足
-0两个条件满足任意一个即可
find /etc -name inittab -exec ls -l {}\ 在/etc下查找inittab文件并显示其详细信息
-exec/-ok 命令 {}\;对搜索结果执行操作
面试题:删除一个目录下的所有文件,但保留一个指定文件
解答:
假设这个目录是/xx/,里面有file1,file2,file3..file10 十个文件
[root@oldboy xx]# touch file{1..10}
[root@oldboy xx]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
方法一:find
[root@oldboy xx]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
[root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f
[root@oldboy xx]# ls
file10
[root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;
[root@oldboy xx]# ls
file10
这两种一个通过xargs传参,一个通过find的-exec执行命令参数来完成,都算作find吧
find /tmp -type f -name "*.txt" -exec rm {} \;
路径 类型 名字 把find的结果传参 动作
Find /log -type f -name “*.log” -mtime +15 |xargs rm -f //查找log目录,删15天以前修改过得文件
Find /log -type f -name “*.luliechu” -mtime +30 |xargs rm -fr //查找log目录,删30天以前修改过得的并且以luliechu名称结果的目录
[root@localhost /]# mv `find /tmp -type f -name "*.txt"` /tmp/public
[root@localhost /]# cd /tmp/public
[root@localhost public]# ls
1.txt 4.txt luliechu1.txt luliechu4.txt luliechu7.txt
2.txt 5.txt luliechu2.txt luliechu5.txt luliechu8.txt
3.txt luliechu10.txt luliechu3.txt luliechu6.txt luliechu9.txt
在文件资料库中查找文件:locate 文件名
实例:locate inittab
搜索命令所在目录及别名信息:which 命令
实例:which ls
搜索命令所在目录及帮助文档路径:whereis 命令名称
实例:whereis ls
在文件中搜索字符串匹配的行并输出:grep -iv [指定字串] [文件] 五星命令三剑客之一
-i不区分大小写
-v排除指定字串
实例:grep mysql /root/install.log
grep root /etc/passwd
假设一个文本中包含luliechu,现在要求打印此文本中去除luliechu
模拟创建文本
[root@localhost public]# cat >>test.txt<<eof //创建多行文本
> test
> liyao
> luliechu
> eof
[root@localhost public]# cat test.txt
test
liyao
luliechu
答案:
[root@localhost public]# grep -v luliechu test.txt grep筛选过滤 -v排除
test
Liyao
[root@localhost public]# grep luliechu test.txt 不加-v就是包含查找这东西
Luliechu
Alias查看和设置别名
[root@localhost public]# alias
alias cp=‘cp -i‘
alias l.=‘ls -d .* --color=auto‘
alias ll=‘ls -l --color=auto‘
alias ls=‘ls --color=auto‘
永久生效别名
[root@localhost tmp]# vi /root/.bashrc
1 # .bashrc
2
3 # User specific aliases and functions
4
5 alias rm=‘rm -i‘
6 alias cp=‘cp -i‘
7 alias mv=‘mv -i‘
8 alias vi=‘vim‘
9 # Source global definitions
10 if [ -f /etc/bashrc ]; then
11 . /etc/bashrc
12 fi
删除别名 unalias 别名
uniq去重命令 -c 计算有多少次重复的
实例:
创建测试数据:
[root@localhost ~]# echo 123 >test
[root@localhost ~]# echo 123 >>test
[root@localhost ~]# echo 123 >>test
[root@localhost ~]# echo 123 >>test
[root@localhost ~]# cat test
123
123
123
123
[root@localhost ~]# uniq test
123
[root@localhost ~]# uniq -c test
4 123
sort对文本行进行排序
[root@localhost ~]# cat test
121
122
123
123
124
125
126
[root@localhost ~]# sort test
121
122
123
123
124
125
126
-n数字排序 -r倒序
[root@localhost ~]# sort -rn test
126
125
124
123
123
122
121
-t分隔符 -k指定第几个字段
-k3,3从第三个字段开始排序,到第三个字段结束
-k4.1,4.3 从第四个字段第1个字符开始排序,到第四个字段第3个字符结束
[root@localhost ~]# sort -t " " -k 2 test
121 a
123 b
122 c
123 d
124 e
125 f
126 g
[root@localhost ~]# sort -n -t "." -k3,3 -k4,4.2 test
192.168.0.1
192.168.0.2
192.168.0.15
192.168.1.2
192.168.1.3
192.168.1.11
192.168.1.12
192.168.2.1
192.168.2.10
192.168.2.11
192.168.3.1
192.168.3.2
192.168.3.3
192.168.10.1
192.168.10.2
面试题:处理以下内容,并将域名取出并根据域名进行计数排序处理
对应:分析网络连接里,正在连接的所有ip地址,计数
分析http服务,日志ip的访问次数,计数
创建测试数据
[root@localhost tmp]# cat >>test <<eof
> http://www.baidu.com/index.html
> http://www.kuparts.com/index.html
> http://post.etian.org/index.html
> http://www.baidu.com/index.html
> http://www.baidu.com/index.html
> http://www.jingdong.com/index.html
> http://kuparts.com/index.html
> eof
[root@localhost tmp]# cat test
http://www.baidu.com/index.html
http://www.kuparts.com/index.html
http://post.etian.org/index.html
http://www.baidu.com/index.html
http://www.baidu.com/index.html
http://www.jingdong.com/index.html
http://kuparts.com/index.html
[root@localhost tmp]# cat test |awk -F "/" ‘{print $3}‘|uniq -c |sort -rn -k1
2 www.baidu.com
1 www.kuparts.com
1 www.jingdong.com
1 www.baidu.com
1 post.etian.org
1 kuparts.com
只查看ett.txt文件(100行)内第20到30行的内容
Seq打印序列号命令
[root@localhost public]# seq 5
1
2
3
4
5
[root@localhost public]# seq 1 3 10
1
4
7
10
答案:seq 100 >ett.txt //模拟创建文件
第一种方法:head -30 ett.txt|tail -11
第二种方法:sed -n ‘20,30‘p ett.txt
第三种方法:awk ‘NR>19&&NR<31’ ett.txt
Sed 流编辑器,用来将数据进行选取,替换,删除,新增的命令
root@localhost ~]# sed [选项] ‘[动作]’ 文件名 五星命令
选项:
-n: 一般sed命令会把所有数据都输出到屏幕 , 如果加入此选择,则只会把经过sed命令处 理的行输出到屏幕。
-e: 允许对输入数据应用多条sed命令编辑
-i: 用sed的修改结果直接修改读取数据的文件, 而不是由屏幕输出
动作:
a \: 追加,在当前行后添加一行或多行。添加多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。
c \: 行替换,用c后面的字符串替换原数据行,替换多行时,除最 后一行外,每行末尾需用“\”代表数据未完结。
i \: 插入,在当期行前插入一行或多行。插入多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。
d: 删除,删除指定的行。
p: 打印,输出指定的行。
s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范 围s/旧字串/新字串/g”(和vim中的替换格式类似)。
sed -i ‘s#□#△ #g‘ //sed替换
#是定意符,‘’□能用正则表达式 △不能用
sed -i ‘s#wenxue#huangxiaoche#g‘ test2
Find /public -type f -name “*.sh”|xagrs sed -i ‘s#wenxue#huangxiaoche#g‘ test2
行数据操作
[root@localhost ~]# sed ‘2p‘ student.txt
#查看文件的第二行
[root@localhost ~]# sed -n ‘2p‘ student.txt
[root@localhost ~]# sed ‘2,4d‘ student.txt #删除第二行到第四行的数据,但不修改文件本身
[root@localhost ~]# sed ‘2a hello‘ student.txt #在第二行后追加hello [root@localhost ~]# sed ‘2i hello \ world‘ student.txt #在第二行前插入两行数据
# sed ‘2c No such person‘ student.txt
#数据替换
字符串替换
# sed ‘s/旧字串/新字串/g’ 文件名
# sed ‘3s/74/99/g‘ student.txt
#在第三行中,把74换成99
#sed -i ‘3s/74/99/g‘ student.txt
#sed操作的数据直接写入文件
# sed -e ‘s/Li//g ; s/lin//g‘ student.txt
#同时把“Li”和“lin”替换为空
帮助命令:man [命令或配置文件]
实例:man ls 查看命令ls的帮助信息
man services 查看配置文件services的帮助信息
获得sheel内置命令的帮助信息:help 命令
实例:help umask 查看umask命令的帮助信息
添加新用户:useradd 用户名
实例:useradd luliechu
设置用户密码:passwd 用户名
实例:passwd luliechu
查看登录用户信息:who
查看登录用户详细信息:w
压缩命令: gzip [文件]
Gzip压缩扩展名为.gz的文件
实例: gzip test.txt
解压缩.gz的压缩文件:gunzip [压缩文件]
实例:gunzip boduo.gz
归档打包命令:tar 选项[-czf] [压缩后文件名] [目录]
-c创建一个新包文件
-x解开.tar格式的包文件
-f使用文件归档
-z调用gzip压缩或解压
-j调用bzip2压缩或解压
实例:常用组合:tar xzf tar xjf
Tar czvf 创建一个压缩包格式的包文件,显示执行的详细信息
Tar czf etc.tar.gz /etc 将目录/etc打包并压缩为.tar.gz文件
Tar xzvf 解开一个压缩格式的包文件,显示执行详细信息
Tar xzf etc.tar.gz –C /home
Tar tzvf 临时解开一个压缩格式的包文件,查看内部的列表
压缩文件或目录:zip 选项[-r][压缩后文件名][文件或目录]
-r 压缩目录
实例:Zip test.zip test.txt Zip生成zip格式的压缩文件
zip -r japan.zip japan 压缩目录
解压缩zip格式的压缩文件:unzip [压缩文件]
Unzip test.zip –d /home
Bzip 压缩扩展名为.bz2 bzip test.txt
Gzip –d 解压扩展名为.gz的文件 gzip –d text.txt.gz
Bzip2 -d解压扩展名为.bz2的文件 bzip2 –d text.txt.gzfa
给用户发信息:write <用户名>以ctrl+d保存结束
实例:write luliechu
发送广播信息:wall [message]
实例:wall hello,word!
测试网络连通性:ping 选项 ip地址
-c指定发送次数
实例: ping 192.168.1.1
查看网卡信息和ip地址:ifconfig 网卡名称 ip地址
实例:ifconfig eth0 192.168.1.2 设置ip地址为192.168.1.2
查看发送电子邮件:mail [用户名]
实例:mail root
列出目前与过去登入系统的用户信息:last
检查某特定用户上次登录时间:lastlog
实例:lastlog -u 502
显示数据包到主机间的路劲:traceroute
实例:traceroute www.baidu.com
查看网络相关信息:netstat [选项]
-t :tcp协议
-u :udp协议
-l :监听
-r :路由
-n :显示ip地址和端口号
实例:netstat -tlun查看本机监听的端口
netstat -an 查看本机所有的网络连接
netstat -rn 查看路由表
配置网络:setup
挂载命令:mount [-t文件系统] 设置文件名挂载点
实例:mount -t iso9660 /dev/cdrom /mnt/cdrom
关机命令:shutdown [选项] 时间
-c 取消前一个关机命令
-h 关机
-r 重启
实例:shutdown -h now
其他关机命令:halt ,init 0,poweroff
其他重启命令:reboot,innit6
Linux七种运行级别
0:关机
1:单用户模式相当于windos中安全模式
2:字符界面的多用户模式(不支持网络)
3:字符界面的多用户完整模式
4:未分配使用
5:图形界面多用户模式
6:重启
查看linux系统当前运行级别 runlevel
要修改默认的运行级别可改文件 /etc/inittab的id:5:initdefault这一行的数字
退出登录命令:logout
命令于文件补全 tab
本文出自 “快乐学习” 博客,请务必保留此出处http://983865387.blog.51cto.com/9838888/1917731
原文地址:http://983865387.blog.51cto.com/9838888/1917731