感觉linux基本命令好多都忘了, 今天简单的整理了一下. 如有不足还望指点!
1.基本命令
2.文件操作
3.用户以及用户权限
4.进程相关
查看centos版本信息: cat /etc/os-release(注意cat后面有个空格)
Linux磁盘管理常用三个命令为df、du和fdisk。
- df:列出文件系统的整体磁盘使用量
- du:检查磁盘空间使用量
- fdisk:用于磁盘分区
关机
sudo halt 立即关机
sudo poweroff 立即关机
shutdown -h now(root用户)
shutdown -h 60 表示60分钟后自动关机
重启
sudo reboot
shutdonw -r now(用户)
shutdown -r 60 (root) 表示60分钟之后重启
基本命令
1.cd --进入目录
cd 相对路径或者绝对路径
cd .. 进入上一级目录
cd - 回到上一次操作的目录
cd ~ 进入用户下面的根目录
2.pwd --查看当前目录路径
3.ls --查看目录或文件
-a 显示隐藏文件
-l 显示文件或者文件夹的详细信息
-R 递归显示,包括子文件或者子目录
-t 按时间排序
4.mkdir --创建目录
-m
-p 创建目录, 若无父目录则创建
5.rmdir --删除目录
-p 递归删除所有空目录
6.touch --创建空文件
-t 指定时间
-r 参考文件的时间作为当前创建文件的日期
7.cat --查看文件内容
-n 显示行号
-b
-s
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
8.find --查找文件或目录
find [搜索路径] [搜索关键词]
-a 逻辑与
-o 逻辑或
-name 文件名
-size 文件大小
-ctaime 文件修改时间
tail 查看文件内容
-f 常用于查看正在改变的日志文件
# 要实时监视apache访问日志文件并显示包含IP地址192.168.43.157的行
tail -f /var/log/httpd/access_log |grep 192.168.43.157
9.rm --删除文件或目录
-r 递归删除
-f 强制删除
-i
10.cp --复制
-r 递归复制
-f 覆盖复制
-i 提示是否覆盖
-p 保留文件夹的权限
11.mv --移动文件/重命名
-b
-f
-i
grep 查找文件里符合条件的内容
# 要实时监视apache访问日志文件并显示包含IP地址192.168.43.157的行
tail -f /var/log/httpd/access_log |grep 192.168.43.157
# 系统报警显示了时间,但是日志文件太大无法直接 cat 查看。(查询含有特定文本的文件,并拿到这些文本所在的行)
grep -n '2019-10-24 00:01:11' *.log
top 动态查看进程
ps 静态查看进程
kill 杀死进程/结束进程
netstat -anp | grep 端口号 查看某端口号 是否被占用 LISTEN 表示被占用
netstat -nultp 查看当前所有已经使用的端口号
文件操作
文件权限
ls -alh 文件 ---查看文件详情
ls -l --查看所有文件文件夹详情
第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
后面每三个为一组,总共为三组且均为‘’ rwx ‘’;分别代表着 ‘主权限’ , ‘组权限’ , ‘’其他用户权限‘’
- ' r '代表可读(read)
- ' w '代表可写(write)
- ' x '代表可执行(execute)
- ' - ' 代表无权限
(2中分别表示文件的创建者和拥有者)
变更文件拥有者
sudo chown zhuyalong iphone11 -- zhuyalong为变更后的所有者,iphone11为文件名
修改文件权限
chmod 777 test.py -- 777为文件权限级别,test.py为文件名
vim使用
sudo apt install vim --安装vim编辑器
vim三种模式:命令模式、插入模式、编辑模式。使用ESC 或 i 或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
打包压缩相关命令
gzip:
bzip2:
tar: 打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
用户以及用户权限
创建用户:
sudo adduser zhuaylong --创建名为 zhuyalong 的用户
创建用户组 :
groups zhuyalong -- 查看用户zhuyalong 属于哪个用户组
其中冒号之前表示用户,后面表示该用户所属的用户组。这里可以看到 zhuyalong 用户属于 zhuyalong 用户组,每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。
cat /etc/group --查看所有用户组
/etc/group 的内容包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:
group_name:password:GID:user_list
你看到上面的 password 字段为一个 x
,并不是说密码就是它,只是表示密码不可见而已。
将某用户加入sudo用户组
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:
sudo usermod -G sudo zhuyalong
删除用户和用户组
sudo deluser lilei -- 删除 'lilei' 用户
sudo deluser lilei --remove-home -- 使用 --remove-home
参数在删除用户时候会一并将该用户的工作目录一并删除。如果不使用那么系统会自动在 /home 目录为该用户保留工作目录。
groupdel
修改用户密码
sudo passwd 修改当前用户密码
sudo passwd 【用户】 修改用户密码
切换当前用户
su --切换root用户,su zhuyalong --切换为 zhuyalong 用户
进程相关
top 动态查看进程
我们看看第top显示的 第一排:
内容 | 解释 |
top | 表示当前程序的名称 |
15:39:50 | 表示当前的系统的时间 |
up 269 days,11:25 | 表示该机器已经启动了多长时间 |
1 user | 表示当前系统中只有一个用户 |
load average: 0.56,0.47,0.40 | 分别对应 1、5、15 分钟内 cpu 的平均负载 |
(#查看物理 CPU 的个数 cat /proc/cpuinfo | grep "physical id" | sort | uniq |wc -l
"physical id" | grep "0" | wc -l)
来看 top 的第二行数据,基本上第二行是进程的一个情况统计
内容 | 解释 |
Tasks: 26 total | 进程总数 |
1 running | 1 个正在运行的进程数 |
25 sleeping | 25 个睡眠的进程数 |
0 stopped | 没有停止的进程数 |
0 zombie | 没有僵尸进程数 |
来看 top 的第三行数据,这一行基本上是 CPU 的一个使用情况的统计了
内容 | 解释 |
Cpu(s): 1.0%us | 用户空间进程占用 CPU 百分比 |
1.0% sy | 内核空间运行占用 CPU 百分比 |
0.0%ni | 用户进程空间内改变过优先级的进程占用 CPU 百分比 |
97.9%id | 空闲 CPU 百分比 |
0.0%wa | 等待输入输出的 CPU 时间百分比 |
0.1%hi | 硬中断(Hardware IRQ)占用 CPU 的百分比 |
0.0%si | 软中断(Software IRQ)占用 CPU 的百分比 |
0.0%st | (Steal time) 是 hypervisor 等虚拟服务中,虚拟 CPU 等待实际 CPU 的时间的百分比 |
来看 top 的第四行数据,这一行基本上是内存的一个使用情况的统计了:
内容 | 解释 |
8176740 total | 物理内存总量 |
8032104 used | 使用的物理内存总量 |
144636 free | 空闲内存总量 |
313088 buffers | 用作内核缓存的内存量 |
来看 top 的第五行数据,这一行基本上是交换区的一个使用情况的统计了:
内容 | 解释 |
total | 交换区总量 |
used | 使用的交换区总量 |
free | 空闲交换区总量 |
cached | 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖 |
再下面就是进程的一个情况了
列名 | 解释 |
PID | 进程 id |
USER | 该进程的所属用户 |
PR | 该进程执行的优先级 priority 值 |
NI | 该进程的 nice 值 |
VIRT | 该进程任务所使用的虚拟内存的总数 |
RES | 该进程所使用的物理内存数,也称之为驻留内存数 |
SHR | 该进程共享内存的大小 |
S | 该进程进程的状态: S=sleep R=running Z=zombie |
%CPU | 该进程 CPU 的利用率 |
%MEM | 该进程内存的利用率 |
TIME+ | 该进程活跃的总时间 |
COMMAND | 该进程运行的名字 |
ps 静态查看进程
kill 杀死进程/结束进程
netstat -anp | grep 端口号 查看某端口号 是否被占用 LISTEN 表示被占用
netstat -nultp 查看当前所有已经使用的端口号