Linux基础命令(三)
目录:
文件类型
- - 表示文件
- d表示目录
- l 表示链接
- b 块设备
- c 字符设备
- s 表示socket套接字
mkdir 创建文件夹
语法:
mkdir 文件夹名称 # 创建一个文件夹 mkdir -p 文件夹名称/文件夹名称/... # 递归创建文件夹 mkdir -pv 文件夹名称/文件夹名称/... # 递归创建文件夹并显示创建过程 -p # 递归创建 -v # 显示创建过程
示例:
[aze@bogon ~]$ mkdir test [aze@bogon ~]$ mkdir -pv test1/test2/test3 mkdir: created directory ‘test1’ mkdir: created directory ‘test1/test2’ mkdir: created directory ‘test1/test2/test3’ [aze@bogon ~]$
rmdir 删除空文件夹
只能删除空目录
mkdir -p s15/s16/s17/s18
rmdir -p s15/s16/s17/s18
tree 目录树
yum install -y tree tree name -L 控制显示的层数 -b 只显示目录
链接
- 硬链接
- ln 源文件 目标文件
- 源文件发生改变,目标会发生改变
- 将硬盘的引用次数+1
- 删除
- 将磁盘上的引用次数-1
- 源文件删除对目标不会受影响
- 不能对目录做硬链接
- 不能跨越分区
- 软链接
- 相当于windows的快捷方式
- ln -s 可以生成软链接
- 链接大小就是制定的源文件的字符数
- 源文件发生改变,目标会发生改变
- 删除
- 源文件删除目标会收影响
- 可以对目录做软链接
- 可以跨域分区
文件权限
[aze@bogon ~]$ ll total 0 drwxr-xr-x. 2 aze aze 6 Jan 31 14:48 Desktop 权限 在磁盘链接次数 属主 属组 访问时间 文件名(目录名)
输入 输出
输入
标准输入:接收来自键盘的输入 stdin 0
输出
标准输出:默认输出到终端 stdout 1
错误输出:默认输出到终端 stderr 2
i/o重定向
把输出和错误信息重定向到文件或者别的地方
> 覆盖
- > 把stdout的数据重定向到文件里面
- 2> 把stderr信息重定向到文件里面
- &> 把所有的输出都同事重定向到文件
>> 追加
- >> 把标准的数据追加到文件中
- 2>> 把错误输出追加到文件中
- &>> 把所有的输出都同时追加到文件里面
分文件输出
[aze@bogon ~]$ ls Desktop/ dafa > info.log 2>error.log
这句话的意思是:
查看Desktop目录和dafa目录
如果结果正常输出到info.log文件中
如果有错误信息输出到error.log文件中
合并输出
- &>
- &>>
- command > info.log 2>&1
- command > info.log 2>>&1
- /dev/null 无线接收的无底洞
- ()多个合并
tr 替换或者删除字符
tr 'a-z' 'A-Z' </etc/issue [root@localhost ~]#tr ab 12 # ab代表要替换的字符,12代表替换后的字符 ab # 手动输入后回车 12 # 系统自动替换生成 [root@localhost ~]#tr abc 12 # 如果后面的位数不足的话,则用最后一位补齐 abc 122 tr -d abc < issue > issue2 从定向不能为原来的文件,如果说为原来的文件,则文件情况 ### -t 用来截断 [root@localhost ~]#tr -t abcd 12 abcd 12cd cd cd ### -s 压缩 去重 [root@localhost ~]#tr -s abc abc abc aaabbbccccccccccccccccccccccccccccc abc ### -c 取反 [root@localhost ~]#tr -sc abc aaaaaaaabbbbbbbbbbbcccccccc aaaaaaaabbbbbbbbbbbcccccccc aaaaaaabbbbbbbbbbcccccccddddddddddeeeeeeeffffffffff aaaaaaabbbbbbbbbbcccccccdef aaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbccccccccc111111111111222223333333 aaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbccccccccc123 ### -d 删除 [root@localhost ~]#tr -dc abc aaaaabbbbbbbccccccdddddddddddddddwqweqweqwqeqwqwqwq aaaaabbbbbbbcccccc ### ctrl+d 结束 [root@localhost ~]#tr -dc "abc\n" adsada aaa sadasdcxzczx [root@localhost ~]#seq 1 10 >f1 [root@localhost ~]#tr -d "\n" <f1 [root@localhost ~]tr "\n" " "<f1 [root@localhost ~] tr " " "\n" <f2
禁止覆盖
set -C 禁止覆盖 set +C 允许覆盖 当cp文件时有相同名称的文件夹不能覆盖
多行输入
示例:
方式一: [aze@bogon ~]$ cat > error.log <<EOF > 1 > 2 > 3 > EOF [aze@bogon ~]$ 方式二: [aze@bogon ~]$ cat > f1 dafadf 1 2 3 [aze@bogon ~]$
ctrl+d结束 ctrl+c也可以
两者区别:
第一种方式输出结束,文件才会产生
第二方式,回车一次就会写入文件
EOF 约定俗成
管道
使用“|”来连接多个命令
命令1|命令2|命令3|。。。。
- 将命令的stdout发送给命令2的stdin,将命令2的stdout命令发送给命令3的stdin。。。。。
- stderr默认是不能通过管道传递
示例:
[aze@bogon ~]$ ls /dafdfdf | tr -s "a-z" ls: cannot access /dafdfdf: No such file or directory [aze@bogon ~]$ ls | tr "a-z" "A-Z" DESKTOP DOCUMENTS
查看当前的登录的用户信息
who am i # 获取登录的用户 w # 可以查看当前登录的所有用户
示例:
[aze@bogon ~]$ who am i aze(用户) pts/0(登陆的终端) 2020-03-31 18:40(登录时间) (192.168.19.1(登录的ip地址)) [aze@bogon ~]$ w 20:27:09 up 1:58, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT aze pts/0 192.168.19.1 18:40 5.00s 0.19s 0.03s w
文件权限
chown (change owner)
Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE... or: chown [OPTION]... --reference=RFILE FILE... chown aze d # 修改d文件属主 chown aze:aze d # 修改d文件属主和属组 chown root.root d # 修改d文件属主和属组 chown :aze d # 只修d文件改属组信息 chown -R aze a # 递归修改a目录下的所有文件 chown --reference=b f3 # 指定f3文件属性与文件b一致
chgrp
chgrp aze b
chgrp --reference=b f3 指定源文件
权限
权限介绍:
rwxr-xr-x
三位为一组
属主 属组 其他
u g o
r read 可以读这个文件或者文件夹
w write 可以对这个文件或者文件夹有写的权限
x excut 执行的权限
文件
- r 可以查看
- w 可以修改内容
- x 可以直接执行
目录:
- r 可以使用ls查看 可以cd进去
- w 可以在其中创建文件或者目录,可以删除目录中的文件或者是文件夹
- x 可以cd,如果没有x权限的话,w权限不会生效,r权限可以查看有哪些文件
chmod
-
可以直接用+-来操作
- 可以用[u|g|o]+ - = r w x
- 可以什么都不写,表示全部 +-
-
示例[aze@bogon ~]$ chmod o+x f1 # 为f1文件的其他人设置可执行权限 [aze@bogon ~]$ chmod g+w f1 # 为f1文件的属组设置可写权限 [aze@bogon ~]$ chmod u+r f1 # 为f1文件的属主设置可读权限 [aze@bogon ~]$ chmod o-x f1 # 为f1文件的其他人设置 不 可执行权限 [aze@bogon ~]$ chmod g-w f1 # 为f1文件的属组设置 不 可写权限 [aze@bogon ~]$ chmod u-r f1 # 为f1文件的属主设置 不 可读权限
-
还可以用数字表示
---
r-- 100 4
-w- 010 2
--x 001 1
r:4
w:2
x:1
-
建议:
- 不要给文件或者文件夹设置成777权限
- 不要给文件或者文件夹设置成777权限
- 不要给文件或者文件夹设置成777权限
特殊权限
chattr +i 不能删除、改名、不能修改内容 chattr +a 只能追加,不能删除,不能改名 lsattr 查看属性
示例:
[root@bogon aze]# chattr +i f1 [root@bogon aze]# lsattr ----i----------- ./f1 [root@bogon aze]# mv f1 f2 mv: cannot move ‘f1’ to ‘f2’: Operation not permitted
文本处理工具
cat
Usage: cat [OPTION]... [FILE]... -E 显示行的结束符号$ -n 显示每一行的行号 -b 给非空行编号 -s 折叠空行为一行
tac 倒叙显示文件内容
less 分屏显示
- 可以分屏显示
- 空格一屏 回车一行
- /来搜索
- n 向下搜索 N 向上搜索
- q来退出
more
- 可以分屏显示
- 空格一屏 回车一行
- -d 显示翻页和推出信息
- 输出自己退出
head 显示前多少行 默认是10行
- -# 显示前多少行的数据
tail 显示后面多少行 默认是后10行
- -# 显示后多少行的数据
- -f 追踪显示文件新加入的内容,常用于日志的跟踪
- tailf 相当于tail -f 命令
cut 抽取文件
-d 用来指定切割符号 -f 执行显示哪一个数据 # 显示指定的数据 #,#,#,# 离散数据 #-# 连续数据 cut -d: -f3 passwd cut -d: -f1,3-7 passwd cut -d: -f3,4,5,6 passwd cut -d: -f3-6 passwd -c 按照字符切割 cut -c2-5 passwd
paste 合并文件
-d 用来指定合并的符号,默认的是tab
-s 把所有的行合并成一行显示
分析文本的工具
wc (word count)
[root@localhost aze]#wc passwd 44 87 2301 passwd 行数 单词个数 字节数 文件 -l 统计行的个数 -w 统计单词的个数 -c 统计字节的个数 -m 统计字符的个数 -L 显示最长一行的长度
sort 排序
默认按照字母 -n 按照数字来排序 -r 按照倒叙来排序 -R 随机排序 sort -t: -nk4 passwd 切割以后在排序 -t 指定切割符号 -k 指定按照第几行排序
uniq 删除紧邻重复的行
-c 显示重复出现的次数 -d 只显示重复的行 -u 只显示不重复的行 连续且完全一样的才是重复 ss -tnp|cut -d: -f2|tr -s " "|cut -d" " -f2|sort -n|uniq -c
diff 对比两个文件
[root@localhost aze]#echo "abc" >b [root@localhost aze]#echo "abcd" >d [root@localhost aze]#diff b d 1c1 < abc --- > abcd [root@localhost aze]#echo "abcde" >b [root@localhost aze]#diff b d 1c1 < abcde --- > abcd [root@localhost aze]#echo "abcde" >> b [root@localhost aze]#diff b d 1,2c1 < abcde < abcde --- > abcd [root@localhost aze]#echo "abcd" >> b [root@localhost aze]#diff b d 1,2d0 < abcde < abcde

浙公网安备 33010602011771号