Linux常见命令及其操作
https://www.cnblogs.com/banjinbaijiu/p/9140460.html
top 动态产看进程
load average:0.471分钟的采样频率, 0.215分钟, 0.1515分钟
平均负载 系统的繁忙程度
free -h 查看内存具体大小
fdisk -l 查看磁盘
每一个扇区的大小是512字节
存放数据尽可能放在同一磁道上和连续扇区之上
当数据存入磁盘时,都会首先分配4k(4096字节)的空间去存储数据
df -h 查看磁盘的使用情况
du -h 查看实际占用的磁盘空间
硬链接:一个索引节点对应多个文件名
ln 原文件名 新文件名
rm只是在目录里面删除一项数据
软链接:快捷方式
ln -s 原文件名 新文件名
找到文件名对应的索引节点,读取文件保存的链接文件的文件名,然后通过链接文件的索引节点在数据区读取数据
ln -s 目标路径下的文件 链接名 :创建软链接文件;如果不加 "-s" 选项,则建立硬链接文件
-f:强制,如果目标文件已经存在,则删除目标文件后再建立链接文件
touch `date +%s`.log 创建一个时间戳文件
时间戳 -> 时间 date [email protected]
Cal指令
cal [参数][月份][年份]
用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
find指令
find 路径 -name "*.h" | grep "搜索字符串、文件"
从指定文件下找出我们想要的函数
find 路径 -name "*.h" | xargs grep "函数名"
zip/unzip指令
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项
-r 递归处理,将指定目录下的所有文件和子目录一并处理
将test2目录压缩: zip test2.zip test2/* 解压到tmp目录: unzip test2.zip -d /tmp
tar指令
tar -czvf xxx.tar.gz 要压缩的目录
tar -xzvf xxx.tar.gz 解压
bc指令
很方便的进行浮点运算
uname指令
uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息
常用选项
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
函数调用栈查看
bt 打印函数栈帧
info frame 查看当前栈帧信息
info registers 查看寄存器信息
set $寄存器=值
linux核心思想:一切皆文件
/root root的家目录
/home/用户名 普通用户目录
/etc 配置信息
/bin shell命令
/sbin 管理命令
/usr/bin
/usr/sbin
whoami 查看当前是谁
pwd 查看当前在哪
ctrl + shift + + 窗口和字体变大
ctrl + - 窗口和字体变小
ls 查看目录下的内容、选项、目录或文件
/ 根目录 ~ 家目录
- l 显示文件详细信息
- a 显示隐藏文件或目录
- R 递归显示每个子目录
- t 时间排序
- r 逆序排序
- d 只显示当前文件夹
- i 显示文件的i节点信息
tab 自动补全
cd 指定的路径
shell命令分为外部命令和内部命令
如果buffer == 外部命令,就去调用程序
buffer == "cd",实现cd的功能
man 查看帮助手册
/ 查找命令
n 下一个
N 上一个
cd 返回家目录
cd - 回到先前路径
cd.. 代表父目录
如何创建目录
mkdir
-p 如果父目录不存在,就创建
删除
rmdir 只能删除空目录
rm -r 会逐个访问每个目录进行删除
rm -rf 实际工作中禁止使用
拷贝
cp 拷贝
src 源文件或目录
cp -r 递归拷贝
移动 改名
mv src dst 从src移动到dst
touch 如果文件不存在就创建文件,如果文件存在就更新文件时间
通配符
- 0或多个
- ?一个任意字符
查看文件内容
cat 文件内容全部显示
more 分屏显示
空格键 向下翻屏
b 向上翻屏
head 显示文件的前n行
tail 显示文件的最后的n行
-f 可以实时观测进程
ctrl + c 结束正在运行的进程
vim文本编译器
[root]# vim filename
命令模式
按i 进入编辑模式
按ESC 返回命令模式
按:进入末行模式
按w 保存 q 退出 !强制执行
命令模式下
- i:插入,插入在光标所在位置
- I:插入在当前行的行首
- o:在当前行的下一行插入
- O:在当前航的上一行插入
- a:插入在光标的后方
移动
- k:向上
- j:向下
- l:向右
- h:向左
- H:顶端
- L:低端
- M:中间
复制
[n]yy 复制 [n]行
yw 从光标所在位置,到单词结尾
y$ 从光标所在位置,到行尾
$ 在linux中往往代表结尾
^ 往往代表开头
撤销
u
删除
[n]dd 删除n行
D删除从光标所在位置到当前行的行尾
d^ 删除光标所在的位置带当前行的行首
x 删除光标所在位置的字符
dw 删除单词
粘贴
p
恢复
ctrl + r
替换
R 替换 esc 退出替换
:s/old/new/g
:开始行号,结束行号s/old/new/g
:set nu 显示行号
:%s/old/new/g 全文替换
vim /etc/vimrc
创建用户
useradd 用户名
用户信息保存在/etc/passwd
用户密码信息保存在 /etc/shadow
id [username]看用户信息
passwd[username]:修改密码
userdel username (-r) 删除用户(包括家目录)
su - XXX 从当前拥护切换到XXX用户
创建组
groupadd
创建用户的同时加入组名
useradd -g 组名 用户名
usermod -g 组名 用户名
修改权限
chmod u + s 命令:用户设置位
chmod o + t 命令:粘贴位
当我们给一个组的 other用户权限设置了粘贴(t)位之后,这时,这个组的文件或子目录文件就会收到保护,每个用户可以进入这个组,修改自己和他人的文件,也可以写入自己的文件,但是不能随便删除他人(root用户除外),只能删除自己的文件
特别注意的是:粘贴位只对目录起作用
有效用户:一般来说等于实际用户
在用户设置位的条件下,有效用户等于可执行程序的拥有者
网路配置
ifconfig查看网卡信息
ens33 我们的网卡 PCI-E
eth0
改网卡名字,受两个参数的影响:
改为:
biosdevname = 0
net.ifnames = 0
更新grub
grub2-mkconfig -o/boot/grub2/grub.cfg
- rw-(文件拥有者)r--(组)r--(其他)
- - 说明是普通文件
- r读 w写 x可执行 root不受权限限制
- d 目录文件
- b 块设备文件
- c 字符设备
- p 管道文件
- l 软链接文件
- s socket文件
wc -l 统计从管道线取出数据的行数
l 管道:单向的,左边的命令将结果放入管道,右边的命令从管道里取数据执行
echo 改变输出去向,也就是对输出进行重新定向,也叫输出重定向
>> 追加输出重定向
echo "hehe" > 1.file
创建普通文件的缺省权限是666
但是,还要受到umask的影响
110 110 110
&~111 101 101 取反再与
110 100 100
chmod u + r 文件 user
g - w grop
o = x other
a all
八进制数字
目录权限
x:cd
r:ls
w:touch mkdir
init 6 重启
` 命令替换,将命令结果放在此处
# 注释