Linux常用命令
- 0.前言
- 1.文件目录类
-
- [Linux中 文件没有后缀名](#Linux中 文件没有后缀名)
- cd
- [cd -](#cd -)
- [./ 和 ../](#./ 和 ../)
- [mkdir和mkdir -p创建目录/文件夹](#mkdir和mkdir -p创建目录/文件夹)
- rmdir(只能删除空目录)
- touch创建文件
- cp复制文件或者文件夹(目录)
- rm删除文件或者文件夹(目录)
- mv移动文件以及重命名
- cat展示文件全部内容
- more展示文件一屏内容
- [less(好用 还带查找 还能退出就清屏)](#less(好用 还带查找 还能退出就清屏))
- echo
- head和tail
- >和>>
- [可以用tail -f追踪日志的更新](#可以用tail -f追踪日志的更新)
- ln软链接
- 2.用户管理
-
- 如何查看当前有哪些用户
- useradd添加用户
- [添加新用户到某个组 useradd -g](#添加新用户到某个组 useradd -g)
- id查看用户信息
- [su和su - 的区别](#su和su - 的区别)
- userdel
- whoami
- sudo设置普通用户具有root权限
- [修改用户所属组usermod -g](#修改用户所属组usermod -g)
- 3.用户组管理
-
- 如何查看当前有哪些组
- [增/删/改用户组 groupadd/del/mod -n](#增/删/改用户组 groupadd/del/mod -n)
- 修改用户/组
- 4.文件权限类
-
- 前提
- ll所展示的文件信息
- rwx权限类型
- 对文件的rwx操作有哪些指令
- 对目录/文件夹的rwx操作有哪些指令
- 如何确定当前登录用户对某个文件/目录的操作权限
- chmod修改文件/目录权限
- 收回权限
- 使用数字整体修改权限
- [chown改变文件/目录所有者(就是u 也就是所属用户)](#chown改变文件/目录所有者(就是u 也就是所属用户))
- chgrp改变文件/目录所属组
- 5.搜索查找类
- 6.压缩和解压缩
- 7.进程线程类
-
- 进程和线程的概念
- [ps 查看当前系统进程状态](#ps 查看当前系统进程状态)
- kill杀死进程
- top查看系统健康状态
- netstat显示网络统计信息和端口占用情况
0.前言
本文归纳了部分Linux中常用的命令 并不全面
更全面的指令大全参考:Linux 命令大全(看这一篇就足够)
1.文件目录类
Linux中 文件没有后缀名
不像Windows那样 后缀名区分不同的文件
Linux是依据-(文件) d(文件夹) l(软连接) 作区分
并没有后缀名
但是我们平时touch出一些test.txt test.sh
其实是为了规范
就算我touch出的是test001 我也能vimtest001
cd
cd -
回到上一次所在的目录
./ 和 .../
./ 当前目录
.../ 上一级目录
一般使用相对路径会用到
mkdir和mkdir -p创建目录/文件夹
注意 ll查看信息前面的d表示文件夹/目录 -表示文件
mkdir创建的就是目录/文件夹
-p表示能够直接创建多层文件夹
rmdir(只能删除空目录)
一个是要空 的 一个要是目录 不能是文件
touch创建文件
可以加上路径 不然默认在当前目录创建
cp复制文件或者文件夹(目录)
建议不管复制文件还是目录 都加上个-r递归 一步到位
rm删除文件或者文件夹(目录)
总之 以后不管要删文件还是文件夹 就用rm -rf(文件也支持递归)
但是rm -rf /*一定要慎用 这把根目录的东西全删了 系统会崩溃
mv移动文件以及重命名
cat展示文件全部内容
more展示文件一屏内容
less(好用 还带查找 还能退出就清屏)
它的功能与more指令类似,但是比more指令更加强大
支持查找
而且q退出只有 more不会垃圾回收
而less会
echo
head和tail
head:
tail:
>和>>
可以用tail -f追踪日志的更新
注意 只有echo追加才能监控到
如果我用vim去编辑test.txt 是监控不到的
Ctrl+C退出监控
ln软链接
- Linux里的软链接就类似Windows的快捷方式
- Linux中 软链接有自己的数据块 相当于是原始文件的一份备份
- 软链接目录下的数据 和 原始文件里的数据是同步的 修改任一方 另一方就会同步更新
- ln -s [原文件或目录] [软链接名]:给原文件创建一个软链接
- 删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/
如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉 注意不要加这个斜杠! - 查询:通过ll就可以查看 列表属性第1位是l 尾部会告知软链接指向了哪个原文件
- 进入软链接的实际原文件的路径:
ln -s xiyou/dssz/ ./dssz
cd -P dssz/
2.用户管理
如何查看当前有哪些用户
cat /etc/passwd 存了用户相关的信息
cat /etc/group 存了组相关的信息
cat /etc/shadow 存了用户密码相关的信息
useradd添加用户
添加新用户到某个组 useradd -g
id查看用户信息
su和su - 的区别
su切换的话 当前用户的环境变量不会生效
而su - 会生效
所以建议使用su -
userdel
- userdel 用户名 删除用户 但保存用户主目录 也就是/home/还有
- userdel -r 用户名 用户和用户主目录都删除
whoami
sudo设置普通用户具有root权限
去root用户下 配置一下sudoers
vim /etc/sudoers
修改用户所属组usermod -g
usermod -g 组名 用户名
3.用户组管理
如何查看当前有哪些组
cat /etc/group 存了组相关的信息
cat /etc/passwd 存了用户相关的信息
cat /etc/shadow 存了用户密码相关的信息
增/删/改用户组 groupadd/del/mod -n
- groupadd 组名 新增一个组
- groupdel 组名 删除一个组(只能删一个没有任何用户的空组)
- groupmod -n 新组名 老组名 修改组名
- 要删组 首先要把该组下面的用户安顿好(用usermod -g修改到别的组) 才能删除
修改用户/组
修改用户:是修改用户所属组 而不是改名字(Linux中用户名创建之后无法修改)
修改组:就是改组名
4.文件权限类
前提
一切权限的修改
或者对文件/目录所有者之类的修改
都要来到root用户下来操作
ll所展示的文件信息
d:文件夹/目录
-:文件
l:软链接
rwx权限类型
权限所针对的是当前登录用户
- 第1-3位确定属主(该文件的所有者 )拥有该文件的权限 ---User
- 第4-6位确定属组(所有者的同组用户 )拥有该文件的权限 ---Group
- 第7-9位确定其他用户 拥有该文件的权限 ---O ther
对文件的rwx操作有哪些指令
r:cat,less,more,head,tail...
w:vi,vim,>,>>
x:执行一个shell脚本
对目录/文件夹的rwx操作有哪些指令
r:ls,ll
w:mkdir,rmdir,touch
x:cd
如何确定当前登录用户对某个文件/目录的操作权限
1.确定登录用户是谁 假设是zcy
2.看ll信息 确定文件所属用户是谁
3.如果就是zcy 那么看123
4.如果不是zcy 但是是同一个组的 那么看456
5.否则看789
案列:
chmod修改文件/目录权限
案例1:让root对test.txt有执行的权限
这里有一个注意点:
其实 下面是u还是g还是o 是我分析出来的
这里root对text.txt的权限本来看的就是u 所以我改u才有意义
案例2:让张三对test.txt有rwx的操作修改权限的时候 还要去root下改 才能成功
收回权限
就是-
使用数字整体修改权限
-
第一种方式变更权限:chmod [{ugoa}{±=}{rwx}] 文件或目录
-
第二种方式变更权限:chmod [mode=421] 文件或目录
-
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
-
r=4 w=2 x=1 rwx=4+2+1=7
-
只要使用数字 三个数字就能确定九位权限 比如674-唯一对应rw- rwx r--
chmod u-x,o+x houge.txt
chmod 777 houge.txt
chown改变文件/目录所有者(就是u 也就是所属用户)
也要来到root用户才能修改
chown -R lisi abc 才能把所有子目录/文件的所有者都改成lisi
chgrp改变文件/目录所属组
chgrp -R lisi abc 才能把所有子目录/文件的所属组都改成lisi
下面这样可以把所属组+所有者一步到位
5.搜索查找类
locate
locate只能查找到索引库里有的东西
自己中途加进去的东西要么重启一下系统
要么使用updatedb 指令更新一下索引库
才能检索到
注意:/tmp目录下所有内容都不会更新到索引库里
grep
常规用法(不常用)
管道符,"|",表示将前一个命令的处理结果输出传递给后面的命令处理(常用)
6.压缩和解压缩
zip/unzip
- zip [选项] 自定义名字.zip 将要压缩的文件/目录(如果是目录 需要加一个-r)
- unzip [选项] 自定义名字.zip
案例
tar打包(打包的过程中发生了压缩)
tar [选项] XXX.tar.gz 将要打包进去的内容
直接记住
打包zcvf:
tar -zcvf houma.tar.gz houge.txt bailongma.txt(压缩多个文件)
tar -zcvf xiyou.tar.gz xiyou/(压缩目录)
解包zxvf:
tar -zxvf houma.tar.gz(解压到当前目录)
tar -zxvf xiyou.tar.gz -C /opt(解压到指定目录)
7.进程线程类
进程和线程的概念
参考博客线程与进程,你真得理解了吗
ps 查看当前系统进程状态
ps -aux | grep xxx
ps -ef | grep xxx
如果想查看进程的CPU占用率和内存占用率 可以使用aux
如果想查看进程的父进程ID可以使用ef
ps -aux
ps -ef
kill杀死进程
- kill [选项] 进程号:通过进程号杀死进程 选项可以选择加上-9 暴力强迫且一定能杀死该进程
- killall 进程名称:通过进程名称杀死进程 支持通配符 这在系统因负载过大而变得很慢时很有用
top查看系统健康状态
netstat显示网络统计信息和端口占用情况
- netstat -anp | grep 进程号:查看该进程网络信息
- netstat --nlp | grep 端口号:查看网络端口号占用情况