一。基础思想
一切皆文件。
两条权限原则:
- 权限分组原则
- 权限最小原则
su是切换用户,而sudo则是用root权限执行某操作( 普通用户+sudo=安全)
Linux目录
- 系统只存在一颗文件树、从==/==开始,所有的文件都挂载在这个节点上。 ( 树型目录 )
- Windows系统存在多颗文件树,以盘开始。如==C:\==D:\
- 注意:两者斜杆不一样,正反斜杆。Linix正斜杆,Windows反斜杠。
没有返回值就是成功:执行Linux命令,无返回值即成功,有反回值有可能成功也有可能失败。
关机前需要先同步数据
- 虽然如今Linux系统已默认执行sync。但是为了避免数据丢失,实现手动sync是好习惯。
sync #同步数据 shutdown -h now #立即关机 shutdown -h 1 #1分钟之后关闭计算机 reboot #立即重启
在众多Shell中,Linux系统中的文件系统因为不同的类别,颜色都是不一样的。
d:目录 -:文件 l:链接
r4、w2、x1:读写执行分别对应二进制111。
记住、用户目录 /etc/passwd
只有当要修改文件时才需要vim,其余时cat即可、或者head、less。
可执行文件是绿色的。
ping百度检查设备是否联网
ping baidu.com
tab提示很好用,单机或者双击的规则我已领悟。
-h在Linux中是非常重要的一个参数,其在绝大多数情况下都表示显示计量单位,即可以以人可以读懂的方式去显示。如:
ls -lh df -h #查看磁盘使用情况 du -h #查看指定的目录(默认是当前目录)下的文件占用空间情况
清空或者截断文件
> a.txt 或者 echo "" > a.txt
日常使用which来查询指令出处。
第三方软件安装应所在位置:/opt
二。基础操作
ls指令
ls -alh #隐藏文件、长列表、方便阅读 ls -R #递归子目录 ls -r #反序显示 ls -S #Size,以文件大小顺序输出 ls -t #按修改时间 '注意 -r:reverse -R:Recursive,常用于连续递归子目录
- 第2列:硬链接数或者子目录数
- 3/4:文件属主与属组
- 5:文件大小(单位:字节),如果是文件夹则显示4096字节,文件则显示其内容的实际大小。
- 6/7/8:最后修改日期
- 9:文件名
mkdir递归创建目录
mkdir -p demo/{ 1..100}
rmdir:仅能删除非空的目录。
rm详解
'技巧' rm -rf /tmp #删除这个目录 rm -rf /tmp/* #删除这个目录下的所有文件,但不包括这个文件本身
文件查看汇总
cat # 第一行开始查看文件 tac # 倒序 nl # 显示行号(相当cat -n) more # less #一页一页的显示,比more更好 head -5 #头 tail -10 #尾
cat、tac详解
- 优势:不会修改文件内容,安全。
cat -n txt '显示行号' cat a1 a2 a3 ... '拼接文本' cat > a.txt '等待输入,并且重定向至新文本' tac #反序cat
head与tail
head -5 txt tail -5 txt tail -f txt '实时查看文件末尾'
less指令
- 优势:**动态加载。**more的升级版,less在显示文件内容时并不会整个加载,而是会根据显示需要加载动态加载,在打开大文件时具备无可比拟的优势。
'less中查找文本' /abd "向下查找 ?abc "向上查找 n 下一条 N 上一条
sort与uniq
- uniq只能作用于连续且重复的行。
ls -l | sort ls -l | sort -r #倒序 sort a.txt | uniq -c '-c为--count,统计重复行数 uniq -d #只输出重复行 uniq -i #忽略大小写
cut详解
"参数:-f输出字段,-c输出范围字符" ls -lh | cut -d " " -f 1 | cut -c 2-10
- awk详解
- 代替cut(cut功能受限),但是远没有cut来的方便。
- awk实际上是三位创始人的名字首字母。
- awk只能使用单引号,支持C/C++的写法
'awk分割:以空格为分隔符( 连续空格都能算作一个 ),然后写awk表达式(支持C语言) ls -lh | awk -F ' ' '{ print $5,$9}' #或者 ls -lh | awk -F ' ' '{ printf("%s\t%s\n",$5,$9)}'
df与du磁盘查看
df -h 'df查看整个系统' df -hl '-l,将列表限制为本地文件系统 du -a -h 'du查看当前文件夹、局部' du -h /home '指定目录'
free内存使用情况查看
free -h '-h人性化
tree文件树显示
yum -y istall tree tree /tmp
==\==指令
- 允许命令换行,人性化操作。
ls -l \ -a
cp复制
- -u只更新、不复制重复的且同时间的项目,加快大文件复制
cp 1.txt 2.txt -i #交互,防止直接覆盖掉原有文件夹 -u #只更新,不复制重复的且同时间的项目--->加快大文件复制 -r #递归
ln软、硬链接
ln a b ln -s a b
history
history #显示全部历史记录 history 10 #只显示10条 !2022 #执行第2022条记录 !! #执行上一条指令
date与cal
date #显示当前时间 date "+%Y-%m-%d-%H-%M%-%S" #显示指定时间 date -s "9999-10-20" #修改系统时间 cal #正常显示日历 cal 2022 #显示年日历 cal 10 2000 #月份在前
which指令
which ls
find与locate(获取路径)
区别:
find:基于硬盘查找,会从指定的目录向下递归遍历所有子目录,速度慢。
locate:基于数据库索引查找,需要事先执行数据库建立索引语句,速度较快。
简单使用:
find /home -name hello.txt #正常查找 find /home -name *.txt #递归查找 find /home -user thinkstu #查找用户 find /home -size +100M #小于100MB find /home -size -100M #大于100MB
yum -y install mlocate updatedb locate xxx
范例:
find /etc -type d # 文件 find /etc -type f # 文件夹 find /etc -type l "但是其实grep确实也能实现这一点,方法多样" find / -type f -name "*.jpg" -size +1M |wc -l 'find指令扩展:直接删除搜索出来的文件 find find / -type f -name "*.jpg" -delete
grep
前景说明:常用来和cat进行管道的组合使用
参数含义:
-n '结果显示行号 -i '忽略大小写 -R '递归的在目录中查找 -v '只匹配不相符合的行
范例:
cat /tmp/1.txt | grep -in "yes" grep -in "yes" /tmp/1.txt
alias别名、unalias取消别名
alias #显示系统所有的别名 alias custom='ls -l'
- 持久化: /etc/profile
- 常与type一起使用,查看具体的命令别名而不是全部的
立即关机
sudo shutdown -h now
wc统计
- 输出文件中的行数、单词数、字节数
cat 1.txt | sort | uniq | wc -l -l #行数 -w #单词数 -c #字节数
file确定文件类型
file 具体文件 #事实上怕记也可以使用ls -l查看
type显示指令类别
- 如:shell内置的、还是alias别名定制的
type ls [t@VM-4-3-centos man-pages-zh-CN-1.5.2]$ type ls ls is aliased to `ls --color=auto' [t@VM-4-3-centos man-pages-zh-CN-1.5.2]$ type man man is hashed (/bin/man) [t@VM-4-3-centos man-pages-zh-CN-1.5.2]$ type type type is a shell builtin
uname显示系统信息
uname -a # 显示所有信息 uname -r # 显示系统内核版本 [root@VM-4-3-centos]~# uname -r 3.10.0-1160.59.1.el7.x86_64
stat指令
- 显示当前文件的所有信息和属性
[root@VM-4-3-centos ~]$ stat index.html File: ‘index.html’ Size: 730 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 397149 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-03-29 11:58:49.895527049 +0800 Modify: 2022-03-29 11:58:49.062502555 +0800 Change: 2022-03-29 11:58:49.062502555 +0800 Birth: -
netstat指令在网络配置中详解
mount挂载、unmount卸载
mount #不加任何参数 '显示所有的挂载情况,包括硬盘、网卡、音箱等设备 '格式:device on mount_point type filesystem_type
- lsblk查看系统挂载情况
[root@004 ~]$ lsblk 'lsblk即:list block NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 159.1M 0 rom vda 253:0 0 80G 0 disk └─vda1 253:1 0 80G 0 part /
fstab文件查看存储设备情况
cat /etc/fstab
top网络配置章节详细介绍。
iotop查看io读写情况
说明:io读写也是瓶颈,观察哪些用户正在疯狂的io,从而禁掉。
动态显示( 默认未安装&#x