Linux 常用命令(持续更新中)

  1. 当前路径
  2. 定位到用户主目录
  3. 主机名查看
  4. 重启
  5. 主机名设置
  6. 主机名与IP的映射
  7. 查看当前文件夹内文件信息, 可搭配过滤
  8. 文件权限/归属
  9. 权限及拥有者和所属组的修改
  10. 链接
  11. 文件内容追加
  12. 文件的拷贝/移动/重命名/删除
  13. 创建多级目录
  14. 用户与用户组操作
  15. 软件包的管理方式. rpm 和 yum
  16. 查看端口与进程
  17. 使用 scp 将文件/目录分发到其他主机
  18. 使用 rsync 进行远程同步
  19. grep过滤与管道符
  20. 追加和覆盖
  21. grep 结合正则表达式使用
  22. 统计有多少文件和目录
  23. 系统信息
  24. 防火墙设置
  25. 设置普通用户的 sudo 权限
  26. 压缩和解压缩
  27. 更换镜像源

1. 当前路径

pwd

2. 定位到用户主目录

cd ~

3. 主机名查看

hostname

4. 重启

reboot

5. 主机名设置

vim /etc/hostname (centOS 7, 需重启)

6. 主机名与IP的映射

vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.64.130(虚拟机IP) zyq.com(主机名)

7. 查看当前文件夹内文件信息, 可搭配过滤

ll  //列出来的结果详细,有时间,是否可读写等信息 ,像 windows 里的详细信息, ll 不是命令,是 ls -l 的别名, ls 命令可以说是linux下最常用的命令之一。
ls  //只列出文件名或目录名 就像 windows 里的列表
-t //降序,
-tac //升序
-a //列出目录下的所有文件,包括以 . 开头的隐含文件
-d 将目录象文件一样显示,而不是显示其下的文件
-e 输出时间的全部信息,而不是输出简略信息。

-f -U 对输出的文件不排序。

-g 无用。

-i 输出文件的 i 节点的索引信息。

-k 以 k 字节的形式表示文件的大小。

-l 列出文件的详细信息。

-m 横向输出文件名,并以“,”作分格符。

-n 用数字的 UID,GID 代替名称。

-o 显示文件的除组信息外的详细信息。

-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通

文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。

-q 用?代替不可输出的字符。

-r 对目录反向排序。

-s 在每个文件名后输出该文件的大小。

-t 以时间排序。

-u 以文件上次被访问的时间排序。

-x 按列输出,横向排序。

-A 显示除 “.”和“..”外的所有文件。

-B 不输出以 “~”结尾的备份文件。

-C 按列输出,纵向排序。

-G 输出文件的组的信息。

-L 列出链接文件名而不是链接到的文件。

-N 不限制文件长度。

-Q 把输出的文件名用双引号括起来。

-R 列出所有子目录下的文件。

-S 以文件大小排序。

-X 以文件的扩展名(最后一个 . 后的字符)排序。

-1 一行只输出一个文件。

–color=no 不显示彩色文件名

–help 在标准输出上显示帮助信息。

–version 在标准输出上输出版本信息并退出。

8. 文件权限/归属

drwxrwxr-x. 7 root root    
-rw-r--r--. 1 root root 

d 开头表示是目录, -开头表示是文件.
后面是文件权限

  • r 可读
  • w可写
  • x 可执行(脚本,比如shell 脚本 )
  • - 表示没有任何权限

以上面为例, 每三位代表一个权限.

  • 第一个三位表示当前所属用户的权限.
  • 第二个三位表示所属组拥有的权限.
  • 第三个三位表示所有用户的权限.

权限后面的数字意义

  • 如果当前是目录, 那么表示下面有几个子目录. (文件不算目录)
  • 如果是文件, 那么表示硬链接数量有几个.

root root 表示文件/目录所属用户及用户组.

9. 权限及拥有者和所属组的修改

首先需要了解权限的数字表示法.

  • r = 4
  • w = 2
  • x = 1
-rw-r--r--. 1 root root 

以这个为例, 将对应的权限按照数字表示法就为
rw-r--r-- = 644
解读:
当前所属用户权限有读和写就为 4+2.
当前所属组权限只有读, 就为 4.
其他人的权限也只有读, 就为 4.
这个权限表示, 除了 root这个用户可以读写外, 其他人和组都只有只读权限.

修改权限命令

chmod 666 filename, 或者 chomd r+x, chmod r+w, 可以以数字的形式, 也可以 rwx的形式

改变文件/目录的拥有者和所属组

  • 改变文件拥有者命令:chown
    • chown userName(要改变为新拥有者的名称) fileName(要改变拥有者文件的名字 )
  • 改变文件所属组命令: chgrp
    • chgrp groupName(要改变为新所属组的名称) fileName(要改变所属组文件的名字 )
  • 改变文件夹拥有者命令: chown -R
    • chown -R userName(要改变为新拥有者的名称) fileName(要改变拥有者文件的名字 )
  • 改变文件夹的所属组命令: chgrp -R
    • chgrp -R groupName(要改变为新所属组的名称) fileName(要改变所属组文件的名字 )
  • 一条命令同时改变拥有者和所属组
    • chown userName:groupName filePath

10. 链接

软链接

  • 相当于windows 的快捷方式
  • 改变源文件时,软连接创建的文件也会改变
  • 删除链接后,源文件还在
  • 删除源文件后,链接指向错误

硬链接

  • 相当于拷贝一个文件
  • 改变源文件时,软连接创建的文件也会改变
  • 删除链接后,源文件也还在
  • 删除源文件时,硬链接所创建的文件不受影响

软连接命令格式:   ln  -s file/dir linkName 
例:             ln -s readme.txt   rm.txt   //rm.txt 为快捷方式的名字
硬链接命令格式:   ln file/dir linkName

修改符号连接的owner

$>chown -h centos:centos xxx //-h:针对连接本身,而不是所指文件.

修改符号链接

$>ln -sfT index.html index //覆盖原有的连接。

11. 文件内容追加

echo 追加内容 >> 要追加的文件名
  • 几种查看文件的方式
  • cat filename 全部内容
  • more filename 翻页查看
  • tail filename 末尾内容,通常与 -f 参数连用,适合于查看服务实时动态日志信息
例:  tail -f xxxx.log
    tail -200f yyy.log  查看末尾200行的信息 
  • head filename 开头文件,适合查看,文件格式,内容模板样式等

12. 文件的拷贝/移动/重命名/删除

  • 拷贝
cp fileName path         //拷贝一个文件到一个目录中
cp fileName newFileName  //拷贝一个文件的内容至一个文件中(新文件)
cp -r dir newDir         //拷贝一个目录到另外一个目录去 -r 是递归拷贝
  • 移动和重命名
mv fileName path //移动(fileName与Path不在同一目录下就是移动)
mv fileName path //重命名(当fileName 与path同一个目录下的时候就是重命名)
  • 删除
rm -rf fileName     //递归强制删除, file 最好是绝对路径,  -r 递归 ,-f 强制

13. 创建多级目录

mkdir -p path    //-p 有就执行,没有就创建

14. 用户与用户组操作

查看所有用户与用户组 ID

cat /etc/password

查看用户组根据用户名

id username

将x用户添加到yy组

usermod -a -G yy x

创建普通用户

useradd zhangsan  //创建一个用户
passwd  刚才创建的用户名 //添加密码 这种模式会默认创建group组

创建用户组

groupadd zhangsan

切换用户

//带  - 的是完全切换用户以及环境变量,
//不带 - 的仅仅只是切换用户
//一般建议使用 su - 用户名的方式切换
su - zhangsan 或者  su  zhangsan  

删除用户

userdel -r zhangsan   // -r 表示删除用户的时候删除该用户的主目录

切换到管理员用户

su 或者 sudo -s

15. 软件包的管理方式. rpm 和 yum

有两种方式 rpmyum
RPM, 依赖比较严重, 必须一一安装所依赖的包.
RPM 常用的命令

  • 查询
rpm -qa q表示查询,a表示所有
//相关参数
-》 表示查询套件的相关信息
-i 表示显示套件的相关信息
-v 表示显示指令执行过程
-h 表示套件安装时列出标记
  • 检查某个软件是否安装
rpm -qa | grep 软件名
选项 --nodeps: 不检测依赖性,一般建议在试验环境使用
  • 卸载已安装的软件
rpm -e --nodeps xxxxxx
rpm -e httpd-manual-2.2.15-26.e16.centos.noarch.rpm //错误,需要去掉后缀名
rpm -e httpd-manual-2.2.15-26.e16.centos.noarch //正确
  • 安装软件
rpm -ivh xxx.rpm
rpm -ivh httpd-manual-2.2.15-26.e16.centos.noarch.rpm

yum
yum 会自动安装所依赖的包.
常用命令

  • 查询
#查询已经安装好的包
yum list
#查询指定安装的包
yum list | grep 'httpd'
yum list installed | grep ssh
  • 安装
#选项 -y :安装过程中无须确认,直接安装依赖包
yum -y install httpd-devel.x86_64
  • 卸载
yum -y remove httpd-devel.86_64
  • yum 仓库: 地址 /etc/yum.repos.d/
  • gpgkey 校验码: gpgcheck = 1 开启校验, 0 是关闭

16. 查看端口与进程

netstat -an | grep 端口号

netstat -lntp

ps -Af | grep 进程名

ps -ef | grep nginx

#也可以使用防火墙的命令来查询指定端口是否开放
firewall-cmd --query-port=要查询的端口/tcp

17. 使用 scp 将文件/目录分发到其他主机

scp -r ./hadoop-2.7.3/ [email protected]:/opt/app
#复制哪个目录,到哪台主机的哪个目录下

18. 使用 rsync 进行远程同步

使用 rsync远程同步,可以处理符号链接问题, scp 处理不了符号链接, 同时速度也更快.

rsync -lr dirOrfile [email protected]:/path
#-l copy符号链接过去后仍为符号链接
#-r 递归

19. grep过滤与管道符

grep 过滤

-c   只输出匹配行的计数
-i    查询多文件时不显示文件名
-l    查询多文件时只输出包含匹配字符的文件名
-n   显示匹配行及行号
-s   不显示不存在或无匹配文本的错误信息
-v   显示不包含匹配文本的所有行
-B   before 前
-A   after 后
--color    搜索出来的关键字变色
例1:
grep -i --color '关键字' 文件名 
#搜索关键词的前五行和后五行
grep --color '关键字' 文件名 -B5 -a -A5
例2: 过滤出当前目录下带有 `t` 关键字的信息并变色.
ll |  grep --color 't'

管道符, 用竖线表示 |, 表示将前一个命令的输出结果传递给后面的命令处理,两边都是命令.

例 cat /etc/passwd | more

筛选过滤

例 cat /etc/passwd | grep 'root'
例 head -5 文件名 | grep 关键字 #搜索前五行中 包含关键字的行

过滤条件

例 ls /dev | grep 'odrom '

20. 追加和覆盖

追加 >> 以追加的方式将命令正确的结果输出到文件或设备中

#从student 中读取包含zhangsan 的行,追加到name.txt 中,name.txt 存在则直接追加,不存在则先创建文件再进行追加
grep 'zhangsan' student >> name.txt

覆盖符号为>

21. grep 结合正则表达式使用

  • ^ 表示起始
  • $ 表示结束
  • . 表示单个字符
  • * 表示所有字符

#找出包含一个数字的信息 
grep '[0-9]' /etc/xxxx        
#找出包含三个数字的信息 
grep '[0-9][0-9][0-9]' /etc/xxx        
#找出包含三个数字后面以:7结尾的信息
grep '[0-9][0-9][0-9]:7' /etc/xxx        
#搜索以txt 结尾的文件
ls | grep .txt$
#搜搜以r开始,以n结尾,中间为任意字符  .*联合起来使用表示 任意字符
grep '^r.*n$' /etc/xxx                

22. 统计有多少文件和目录

ll | wc -l

23. 系统信息

uname #系统类型
uname -r #内核版本
cat /proc/cpuinfo #CPU信息
cat /proc/meminfo #内存信息
date #系统日期
date -R #系统时区
cal 2023 #日历表
date -s 2023-10-31 #设置系统时间(需要root)
date -s 15:45:25
df -lh #查看磁盘信息(需要root)
fdisk -l #查看磁盘信息(需要root)
mount #查看磁盘挂载信息(需要root)
mount 把什么挂载到什么地方 #挂载磁盘(需要root)
umount /xxx/sdb1 #卸载磁盘(需要root)
du -sh /home/xxx/ #查看某个目录的大小
du -h /home/xxx/
fsck /dev/xxx #修复磁盘
free -m #看系统内存的使用情况
top #各个进程内存的使用情况
top 按下 M 显示详细

24. 防火墙设置及开放端口

CentOS7中防火墙改变为 firewalld

  • 查看防火墙状态
firewall-cmd --state
  • 关闭防火墙
systemctl stop firewalld.service
  • 启动防火墙
systemctl start firewalld.service 
  • 重启防火墙
firewall-cmd --reloadl
  • 禁止firewall开机启动
systemctl disable firewalld.service 
  • 开放指定端口
firewall-cmd --zone=public --add-port=要开放的端口/tcp --permanent
  • 关闭指定端口
firewall-cmd --zone=public --remove-port=要关闭的端口/tcp --permanent
  • 查看指定端口是否开放
firewall-cmd --query-port=要查询的端口/tcp

25. 设置普通用户的 sudo 权限

切换到root账户。
执行 vi /etc/sudoers 或者 visudo
在最上面插入

账户名 ALL=(root)NOPASSWD:ALL
yzhang ALL=(ALL) NOPASSWD: ALL

26. 压缩和解压缩

解压

  • .tar结尾的 tar -xvf xxx.tar
    • 解压到当前目录 tar -xvf xxx.tar
    • 解压到指定目录 tar -xvf xxx.tar -C dirPath
  • .tar.gz 结尾的
    • 解压到当前目录tar -zxvf xxx.tar.gz
    • 解压到指定目录tar -zxvf xxx.tar.gz -C dirPath

-C 意思是重定向. 这个选项用在解压缩,若要在特定的目录解压缩,可以使用这个选项
压缩

  • .tar 结尾的
    • tar -cvf test.tar test #打包完成之后在压缩
    • gzip test.tar #使用gzip直接压缩,源文件会被删除
  • .tar.gz结尾的
    • tar -zcvf zzz.tar.gz dir/file #要打包的文件或者目录

27. 更换镜像源

选择一个好的镜像源加快Centos7系统的更新升级或者安装软件的速度

  • 更换阿里的镜像源
    • 先备份原来的 yum
      • sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    • 设置阿里云的yum
      • sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    • 添加 EPEL源
      • EPEL 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上 EPEL后,可以像在 Fedora 上一样,可以通过 yum install package-name,安装更多软件。
      • sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
    • 清理缓存并生成新的缓存
      • sudo yum clean all
      • sudo yum makecache
  • 安装完成后执行 sudo yum list 查看
[yzhang@zyq01 ~]$ sudo yum list
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com

你可能感兴趣的:(Linux 常用命令(持续更新中))