Linux常用命令

Linux常用命令

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 端口号:查看网络端口号占用情况
相关推荐
PcVue China2 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
皮锤打乌龟5 小时前
(干货)Jenkins使用kubernetes插件连接k8s的认证方式
运维·kubernetes·jenkins
钰@5 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
wanhengwangluo5 小时前
云服务器和物理服务器的区别有哪些?
运维·服务器
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
yaosheng_VALVE7 小时前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
看山还是山,看水还是。7 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
扣得君7 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go8 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell