阿里云Linux学习笔记3

在这里插入图片描述
我在阿里云学习Linux,下面是我的学习笔记:

区不区分大小写和文件系统有关,和操作系统无关。标准的Linux文件系统(如ext4),对大小写敏感。
文件有两个类型的数据:
元数据 metadata (文件属性)
数据 data (文件数据)
文件名filename最多255字节
touch filename 建立新文件filename
Linux文件类型:
(不完全固定,可以根据后缀改变,)
蓝色:目录 绿色:可执行文件
红色:压缩文件
浅蓝色:链接文件(快捷方式)
灰色:其他文件

  • 普通文件
    d 目录文件
    b 块设备
    c 字符设备
    l 符号链接文件
    p 管道文件pipe
    s 套接字文件socket

pwd 显示工作目录
pwd -P 显示真实路径(对于软链接,即快捷方式)
cd -P 前往真实路径(对于软链接,即快捷方式)
cd ~homename 去到某人的家目录
cd - 回到刚刚来的目录(因为系统里面有一个变量存储了刚刚来的目录。echo $OLDPWD
basename 取出基名
dirname 取出目录名
ls -r 反向排序
ls -S 按文件大小排序,从大到小
ls -Sr 从小到大排序
ls -t 按文件修改时间排序
ls -X 按文件后缀排序
ls ~- 查看刚才的目录文件
man 7 glob 查看通配符
[:lower:] == a-z(小写)
[[:lower:]] == [a-z](小写)
ls -I pattern 忽略符合pattern的文件
ls -.[^.]* -d / ls -aI "[^.]*" 查看当前目录隐藏文件
关防火墙的命令:

centos7 
systemctl stop firewalld (关掉)
systemctl disable firewalld(开机不启动)
centos6 
service iptables stop (关掉)
chkconfig iptables off (开机不启动)

touch filename 对于已有文件file,touch可以用来刷新文件时间戳(atime,ctime,mtime)
touch -c filename 如果file文件不存在,则不创建

cp的使用:
cp source dest 把source源文件复制成dest文件,例如:

cp /etc/fstab /data/fstab.bak

cp source... dir 把多个源文件复制到一个文件夹dir里面,例如:
cp /etc/fstab /etc/profile /root/anaconda-ks.cfg .(.是指当前文件夹)
cp -t dest source 和上一个命令功能想同

cp filename 把已经存在的文件覆盖
cp filename -f 把已经存在的文件强制覆盖(因为权限不足,普通覆盖会失败)
cp -i 在覆盖文件时出现提示是否真的覆盖
cp -n 不执行覆盖
cp --backup[=numbered] 在覆盖文件的时候制作一份备份(备份出来的文件名为原文件名加上~)
cp -r 源文件夹 目标文件夹(目标路径) 把源文件夹里面的文件复制成目标文件夹(到目标路径),成为子目录(r是递归的意思)
如果目标文件夹存在,那就会复制到目标文件夹里面成为子目录
cp -a 文件归档(想当于把源文件完全一致的备份)
cp -v 可以看到拷贝过程
cp不能复制特殊文件(比如设备文件sd)

mv的使用:
mv f1 f2 如果f1和f2在同一目录下,则是把f1改名为f2,在不同目录下,则是移动(可改名)

rm的使用:建议不要用rm
rm不能直接删文件夹,需要加上递归-r
rm -rf /* 在删除的时候不会提醒用户!!!建议把alias rm=mv
例如,用一个/data文件放要删除的文件,alias rm=‘mv -t /data’ 这样就可以执行rm的时候其实在执行mv了

> file 把已有文件清空,变成0字节(即覆盖已有文件file)
>> file 建立空文件,如果文件已存在,则什么也不变。(而touch对于已存在文件,会刷新时间戳)

rename 可以批量改名,例如:

rename conf conf. bak *.conf

把conf替换成conf.bak,文件列表为*.conf

tree:显示目录树
-L level 显示指定的level层级数目
-d 只显示文件夹
-P pattern 只显示pattern规定格式的文件

mkdir:创建文件夹
-p 可以建立多层目录
rmdir:删除空文件夹
-p 删除最里面的目录以后如果上级目录为空,会自动删除上级目录并继续查看上上级目录。

索引节点inode:
在分区中唯一,属于文件的源数据
ls -i 查看节点编号
df -i 查看各个分区最多存放的节点编号。
节点编号用光和硬盘满了报错提示是一样的。(面试常考)

硬链接:
对一个文件起多个名称。
ln f1 f2 给f1文件起一个硬链接f2(f2不能与当前目录文件重名),之后改任意一个文件,另一个文件也会改变。(可以类比Python命名变量的规则)
(可以跨文件夹命名硬链接,但是不能跨分区,因为硬链接共用一个节点编号,跨分区相同节点编号代表文件不一样)(硬链接不支持目录)
文件的链接数大于1是因为 . 或者 子文件夹的 … 产生的。

软连接:
快捷方式
ln -s f1 f2 创建f1的软链接f2
软连接不会增加链接数,节点号也不同。
软连接支持文件夹。也支持跨分区。
注意:在新建软链接时,使用相对路径,是相对于创建出来的软连接的路径,不是相对于当前目录。

硬链接和软连接的区别(面试常出):
1 是否是同一文件
2 是否能跨分区
3 是否会使链接数增长
4 节点编号是否一样
5 原始文件删除是否影响链接文件
6 原始文件与链接文件大小是否一样
7 是否支持目录
8 相对路径写法不同
…………

file 确定文件内容:
用cat看文件要求被看的文件为文本文件,如果看的不是文本文件,可能会导致之后输入的命令为乱码,只能重启(或者reset命令),应该先用file看文件类型。(file通过看文件的头部信息魔数magic number看出文件类型的)
-b 只显示查看结果,不显示文件名
-L 查看软链接指向的文件的文件类型
-f file 通过在file里面写多个链接,一次性把里面的链接类型都输出

标准输入和输出:
打开的文件都有一个fd:
file descriptior(文件描述符)
Linux给程序提供三种I/O设备
标准输入 -0 默认接受来自键盘的输入
标准输出 -1 默认输出到终端窗口
标准错误 -2 默认输出到终端窗口

重定向I/O (redirect):(重新设置输入输出设备)
假如有两个窗口 1 /dev/pts/0,2 /dev/pts/1 则可以通过 command > window 的命令把输出设备换到window上,例如:
ls > /dev/pts/1 (在1窗口上输入,在2窗口输出)
command > file 如果file不存在,则创建file,并把command运行结果存入file里面,如果存在,则覆盖file;command >> file 则不会覆盖而把新内容追加到file里面)(>只会把标准输出重定向到文件里面,不会重定向错误信息,如果要重定向错误信息可以这么做: errorcommand 2> file
/dev/null 是存放不需要的文件的地方,放进去就找不回来了。
把某次指令的对的信息放在一个文件里,错的信息放在另一个文件里面,例如:

ls /data /error > /root/f1 2> /root/f2

如果把对的错的信息放一起,则可以这样:

ls /data /error &> /root/all.log

或者

ls /data /error > /root/all.log 2>&1

或者

ls /data /error 2> /root/all.log 1>&2

把多个命令重定向到文件中:

(command1;command2) > file

对于某些有输出到命令,如果不想让别人知道可以把口令重定向到/dev/null

command &> /dev/null

用文件代替标准输入:
现有一个f1.txt文件,里面的内容是2*3
通过bc < f1.txt 用文件代替标准输入。
(使人工输入变成了自动化文件输入)
用cat实现内容复制:

cat < f1 > f2 
tr inset outset

把键盘输入的内容中inset字符集的内容转换成outset字符集对应内容输出
如: tr 'a-z' 'A-Z'
可以通过tr把文件内容进行转换
字符集未一一对应:

tr 'abc' '1234'
abcdef
>123def
tr 'abcd'  '123'
abcdef
> 1233ef
tr -t 'abcd' '123'
abcdef
>123def

tr -d set 删除set字符集里面的内容
tr -c/-C set 取反(配合-d可以删除除set字符集以外的内容,如果字符集里面没有回车,那么要通过Ctrl+D表示结束输入,不能通过回车)
tr -s 压缩,把input中连续的字符集里面的字符压缩为一个
压缩文件里面的空格:

tr -s ' ' < file

压缩加替换:
tr -s ' ' + < file (把空格替换成加号(只能替换成单字符))

面试题:通过命令实现1加到100

echo {1..100} > cal1
tr -s ' ' + < cal1 > cal2
bc < cal2

set -C 禁止覆盖操作,可追加
set +C 允许覆盖操作
>| 强行覆盖,例如:

command >| file
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值