Linux常用命令

目录

命令格式

ls命令

cd命令    

 pwd命令    

mkdir命令

 touch命令

cat命令

 more命令

head命令

 tail命令

echo命令

cp命令    

 mv命令    

rm命令    

which 命令

find 命令

grep 命令

wc命令

 | 管道命令

用户相关命令

切换用户和借调权限

用户组相关操作

权限相关图解

常用的快捷键

控制服务的开启关闭

软连接和硬链接

日期和时间

主机名和ip相关

网络相关命令

进程管理

系统资源

文件的上传和下载

压缩和解压缩


命令格式

#格式
command [-options] [parameter]

#格式解释
命令名 [-选项] [参数]        

#细节: 中括号中的内容是可选项.

ls命令

#来源于 list(列表), 用于查看当前目录下 所有的子级.
ls           #相当于 ls ./    即: 查看当前目录下所有的子级(不包括隐藏)
ls -l        #相当于 ll, 以行的方式展示当前目录下的子级
ls -a       #显示当前目录下所有的子级(包括隐藏)
ls -al      #以行的方式显示当前目录下所有的子级(包括隐藏)
ls -alh    #以行的方式, 人性化的显示当前目录下所有的子级(包括隐藏)
ls           #指定目录 # 查看指定路径下的子级.
ll            #是 ls -l的简写形式, 即: 语法糖.



cd命令    

#来源于 change directory, 改变目录
cd                   #回到用户主目录
cd test            #切换到当前目录下的test目录(相对路径) 
cd /root/test    #切换到指定目录(绝对路径)
cd ..                #回到上一级目录 
cd ../..             #回到上上一级目录
cd ../dir           #回到上一级的dir目录 
cd -                 #在最后两次目录之间切换


 pwd命令    

#来源于print work directory, 打印当前的工作目录.
pwd        # 打印当前所在的目录路径



mkdir命令

#来源于 make directory, 制作目录(文件夹)
mkdir [-p] 目录              #不加-p只能创建单级目录, 如果写了-p可以创建多级目录.
mkdir dir                       #创建单级目录 
mkdir -p aaa/bbb/ccc   #创建多级目录 


 touch命令

#制作文件
touch a.txt b.txt    #在当前目录,一次创建两个文件
touch /root/a.txt   #在/root目录创建文件a.txt


cat命令

#查看文件内容
cat 文件路径        # 一次性显示文件所有内容.         


 more命令

#查看文件内容, 支持翻页查看.
more 文件路径        # 空格: 下一页,  enter: 下一行.  b(back): 上一页, d(down): 下一页.

Linux常用命令_第1张图片


head命令

#查看文件(前边)内容, 格式为:  head -n 数字 文件路径
head -n 3 1.txt        # 查看1.txt文件的前3行.    
head 1.txt               # 默认查看前10行.


 tail命令

查看文件(后边)内容, 格式为: tail -nf 文件路径  n表示数字.
tail -3 1.txt        # 查看文件后3行
tail 1.txt            # 默认查看文件后10行.
tail -100f 1.txt    # 动态查看文件后100行, 一般用于查看: 日志信息. 


echo命令

#把结果输出到控制台上, 类似于Python的 print()语句.
echo 'hello world'

# 重定向,  > 覆盖,  >> 追加
echo 'hello world' > 1.txt        # 用hello world这个字符串, 覆盖1.txt文件中所有的内容.


cp命令    

#来源于copy, 拷贝的意思.
cp 1.txt 2.txt    # 拷贝1.txt的内容到2.txt中.
cp -r 目录路径A 目录路径B    # 拷贝文件夹. recursive(递归)


 mv命令    

#来源于move, 剪切的意思,该命令用来实现移动或者重命名

#移动
mv a.txt dir #如果a.txt 存在,dir是一个目录,则就是将a.txt移动到dir目录
mv dir1 dir2 #如果dir1存在,是一个目录,dir也是一个目录存在,则就是将dir1目录已移动到dir2目录

#重命名
mv a.txt a2.txt #如果a.txt存在,a2.txt不存在,则就是将a.txt重名为a2.txt
mv dir1 dir11 #如果dir1存在,是一个目录,dir11不存在,则就是将dir1重名为dir11


rm命令    

#来源于remove, 删除的意思.删除文件或目录

rm -f  a.txt #强制删除文件
rm -fr  dir  #强制删除目录
rm -fr  dir/*.txt  #删除dir下的所有.txt文件
rm -fr  ./*    #删除当前目录下的所有内容

#结论 
rm -rf 文件/文件夹


which 命令

#查找二进制脚本所在的目录.
which ls            # /usr/bin
which ifconfig        # /usr/sbin


find 命令

#查找命令, 主要是根据条件查找文件的. 
# 格式: find 目录路径 -size +数字K|M|G        根据大小筛选文件
find / -size +100M        # 查找所有大于100M的文件

# 格式: find 目录路径 -name 文件名           根据文件名进行查找
find / -name 'abc*'        # 查找所有以abc开头的文件
find / -name abc*         # 上述格式可以省略最后的引号,因为路径不涉及到特殊字符, 例如: 空格等.


grep 命令

#去文件中筛选出包含指定内容的所有行.
# 格式: grep [-n] 关键字 文件路径
grep 'hello' 1.txt             # 去1.txt文件中找所有包含hello的行.
grep -n 'hello' 1.txt        # 去1.txt文件中找所有包含hello的行, 并显示行号.


wc命令

#来源于word count单词, 做: 词频统计的. 
# 格式: wc [-c -m -l -w] 文件路径.
# 格式解释:
    -c     统计字节数 
    -m    统计字符数 
    -l    统计行数, line
    -w    统计单词数, word



 

 | 管道命令

#可以把前边命令的执行结果, 当做后边命令的数据源来处理. 

cat 1.txt    # 查看1.txt文件内容.
cat 1.txt | grep hello    # 查看1.txt文件内容, 并过滤出包含hello的行.
grep hello 1.txt    # 效果同上.


用户相关命令

# 背景
Linux系统和Mac系统, windows系统一样, 也是支持多用户管理的. 
为了更好的管理多用户, 就有了 用户组 和 用户的概念. 
Linux系统中, root账号拥有最高权限.

# 用户相关命令
# 增, 新增用户
useradd 用户名            # root用户在/root目录下, 普通用户在 /home/用户名下.
                      # 创建用户的时候, 如果不指定分组, 则默认会创建1个和该用户名一模一样的组.
                      # 然后把该用户放到这个组中...
# 改, 修改用户的密码
passwd 用户名            # 来源于: password单词
# 删
userdel [-r] 用户名    # 除了删除用户外, 还会删除 /home目录下, 该用户所有的内容.
                      # 如果该用户的主组是随着用户一起创建的, 则删除用户时, 该组也会被同步删除.
# 查, 即: 查询所有的用户.
cat /etc/passwd    
getent passwd        # 效果同上, 来源于: get environment, 获取环境
# 查看用户信息, 格式如下:
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash
# 格式解释:
用户名:密码(无):用户组id:用户id:描述信息(无):账号的家目录:使用何种Shell解析器


切换用户和借调权限

        

# 切换用户
su 用户名        # 切换到指定的用户, 如果是root => 其它账号, 无需输入密码, 否则都需要录入密码. 
# 登出, 例如: root => zhangsan,  登出后, 就又回到了 root账号
ctrl + d    # 快捷键
# (临时. 默认5分钟)借调权限
sudo 你要指定的命令


用户组相关操作

# 增, 新增用户组
groupadd 用户组名        
# 删
groupdel 用户组名    # 删除用户组, 细节: 如果没有用户用该组作为主组, 就可以删除该组.
# 查, 即: 查询所有的用户组.
cat /etc/group
getent group        # 效果同上, 来源于: get environment, 获取环境
# 查看用户组信息, 格式如下:
zhangsan:x:1000
# 格式解释:
用户组名:无密码:组id
# 查看用户的具体信息
id 用户名
# 创建新用户的时候, 直接指定分组
useradd 用户名 -g 组名        # 新增用户, 并添加到指定的组. 
# 设置已经存在的账号到指定的分组中.
usermod -aG 用户组名 用户名   # modify: 修改,  append group: 添加分组


权限相关图解

Linux常用命令_第2张图片

# 设置权限
chmod 777 1.txt          # 万金油命令, 满权限.
chmod +x 1.txt            # 给所有用户设置 执行权.
chmod u=rx,g=w,o=x  # 设置属主权限为:读,可执行, 属组权限为:只写, 其它用户权限为:可执行.
                                   # 注意多个权限之间, 没有空格.  user(属主), group(属组), other(其它)                    
chmod [-R] 777 目录路径    # 设置目录及其所有的子级为满权限.
# 设置拥有者, 即: 属主, 属组
chown [-R] [用户][:][用户组] 文件或者目录路径        # owner: 拥有者
chown zhangsan 1.txt        # 改变1.txt文件的 属主为: zhangsan
chown itcast 1.txt               # 改变1.txt文件的 属主为: itcast
chown :itcast 1.txt              # 改变1.txt文件的 属组为: itcast
chown lisi:itcast 1.txt          # 改变1.txt文件的 属主lisi, 属组为: itcast


常用的快捷键

# 清屏
ctrl + 字母l   或者 clear
# 结束执行
ctrl + c
# 登出
ctrl + d
# 回到行首
ctrl + a
# 回到行尾
ctrl + e


控制服务的开启关闭

# 命令格式, 来源于: system control, 系统控制
systemctl status | start | stop | restart | enable | disable 服务名
# 常用的服务
NetWorkManager    主网络服务
network            副网络服务
firewalld        防火墙
sshd            远程连接服务(协议)
# 示例
systemctl restart network     # 重启网络服务.


软连接和硬链接

# 格式:
ln -s 要被连接的文件或者目录路径 软连接方式        # 加-s是软连接, 相当于创建了快捷方式.
# 示例
ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ip
# 细节(扩展提高): 如果不加 -s 创建出来的是 硬链接, 目的: 提高容错率.
ln 1.txt 2.txt    # 两个硬链接文件, 内容会自动同步. 


日期和时间

# date命令, 查看时间.
date [-d] [+日期格式]
# 指定时间格式  %Y 4位数字的年, 例如: 2024 %y: 2位数字的年, 例如: 24 
# %m 月  %d 日   %H 小时   %M 分钟    %S 秒
date '+%Y-%m-%d'
# 修改时间.
date -d '1 day' '+%Y/%m/%d'              # 正数往后加, 负数往前推. 今天时间, 往后加一天.
date -d '-1 day' '+%Y/%m/%d'             # 正数往后加, 负数往前推. 今天时间, 往后加一天.
date -d '1 days ago' '+%Y/%m/%d'     # 效果同上.
date -d '1 year ago' '+%Y/%m/%d'     # 往前推1年
date -d '-1 day ago' '+%y-%m-%d'     # 负负得正, 往后推一天, 了解即可, 没人写.


主机名和ip相关

# 查看本机ip地址
ifconfig
# 查看本机主机名
hostname
# 修改主机名
hostnamectl set-hostname 主机名        # 立即修改.
vim /etc/hostname                                 # 改完之后记得重启虚拟机生效. 
# 如何修改虚拟机固定的ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"        # 改成static 或者 none, 不要dhcp(动态分配)
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="de94af21-8a97-48f0-bb1d-e6dcf21789bb"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.88.161"        # IP地址
PREFIX="24"                             # 子网掩码: 255.255.255.0
GATEWAY="192.168.88.2"        # 网关
DNS1="8.8.8.8"                          # DNS服务器1
DNS2="114.114.114.114"           # DNS服务器2
IPV6_PRIVACY="no


网络相关命令

# ping命令, 测试网络是否通畅.
ping [-c 数字] 目标ip        # 循环发包, 测试网络连接, 不指定次数, 就一直发送.
# wget 命令, 文件下载器, 可以根据URL下载数据
wget https://pic4.zhimg.com/v2-1d05d325d397080b921de6306dcf46d5_1440w.jpg
# curl 命令, 模拟浏览器, 向URL发出请求, 获取响应信息(html页面)
curl https://python.itcast.cn/?pythonzly                    # 结果打印到终端.
curl https://python.itcast.cn/?pythonzly >> my.txt    # 结果保存到文件
# IP介绍:     设备在网络中的唯一标识. 
# 端口号介绍:  程序在设备上的唯一标识. 范围: 0 ~ 65535, 其中0~1023已经被用作保留端口了, 尽量规避.
# 协议:       通信规则. 
netstat -anp | grep 具体的端口号        # all network port, 所有网络端口


进程管理

# 查看本机运行的所有进程
ps -ef
# 查看指定的进程信息
ps -ef | grep ssh
# 强制关闭指定的进程
kill -9 进程的pid
# 进程解释: 指的是可执行程序, 文件, 例如: *.exe


系统资源

# 查看内存使用情况
free -h        # -h 人性化的方式展示
# 查看磁盘使用情况
df -h          # 来源于: disk free     


文件的上传和下载

# 前提, 安装 lrzsz插件.
yum -y install lrzsz
# 上传
rz 然后敲回车, 选中要上传的文件即可.
# 下载
sz 要下载的文件名


压缩和解压缩

# 区分压缩协议好与坏的标准, 参考:

维度1: 压缩时间(写)
维度2: 解压时间(读)
维度3: 压缩比(压缩后文件大小)

# Linux中常用的压缩有: tar(tarball, 归档),  zip
# 方式1: tar命令
# 压缩格式: tar [-zcvf] 压缩包名.tar.gz 要被压缩的文件...
# 解压格式: tar [-zxvf] 压缩包名.tar.gz [-C] 要解压到的路径
# 参数解释:
    z    使用gzip协议, 压缩出来的文件较小.
    c    create, 表示: 新建, 压缩.
    x    表示解压
    v    verbose, 显示具体压缩或者解压的过程.
    f    file, 表示文件
    
# 方式2: zip
# 压缩格式: zip [-r] 压缩包名.zip 要被压缩的文件 文件夹...    # -r表示递归, 压缩是有文件夹必须写.
# 解压格式: unzip 压缩包名.zip -d 要解压到的路径              # 这个-d等价于tar的-C

你可能感兴趣的:(linux)