目录
一、Shell
二、LINUX命令的分类
1、内部命令与外部命令的区别
三、linux基础应用
1、切换用户
2、查看当前主机的完整名称
3、临时设置主机名
4、永久设置主机名
5、查看当前系统版本信息
6、查看当前内核版本
7、临时修改网卡IP
8、永久修改网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
9、重启网卡
10、查看网卡地址
11、重启系统
12、关机
13、关闭防火墙软件
四、linux常用命令
1、内部命令
2、命令行格式
3、Linux命令行的辅助操作
4、获得命令帮助的方法
5、查看当前工作目录:pwd
6、切换工作目录:cd (相对路径、绝对路径)
7、ls——列表显示目录内容(常用选项、可结合通配符)
1.显示目录中内容,包括子目录和文件相关属性信息
2.常用选项l、-a、-A、-d、-h、-R、–color
3.结合通配符
4.ls的常用选项
8、扩充
9、设置别名-alias
10、统计目录及文件空间占用-du
11、创建新目录mkdir
12、创建空文件-touch
13、创建链接文件-ln(软链接、硬链接)
14、复制文件或目录-cp
15、删除文件或目录-rm
16、移动文件或目录/改名mv
17、查找命令/文件存放目录which
18、查找文件或目录-find
18.1 Find工具-name参数案列:
18.2 Find工具-size参数案列
18.3Find工具-type参数案列:
18.4 查找存在的用户的文件
一、Shell
●Linux系统中运行的一种特殊程序
●在用户和内核之间充当“翻译官”
●用户登录linux系统时,自动加载一个Shell程序
●Bash是Linux系统中默认使用的Shell程序
文件位于/bin/bash
接收用户输入的命令
解释命令
传递给系统内核执行
二、LINUX命令的分类
1、内部命令与外部命令的区别
内部命令 |
外部命令 |
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 |
Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 |
属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 |
每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 |
必须知道其对应的文件位置,由Shell加载后才能执行/bin,/usr/bin,/usr/local/bin等 |
区别
1、内部命令属于shell的一部分,外部命令属于shell程序之外的命令。内部命令直接调用,外部命令会调用一个独立文件,内部命令比外部命令快
2、内部命令属于shell的一部分(/bin/bash)没有单独的文件,外部命令一般由脚本文件或者二进制文件组成。
3、内部命令自动加载,可以直接使用,外部命令系统必须要知道对应的文件位置(命令的环境变量),由shell进行加载后,系统才能识别该命令
三、linux基础应用
[root@localhost ~]#
[当前登录系统的用户@主机名称 当前所在的目录]#
# 表示为管理员登录
$ 表示为普通用户登录
1、切换用户
su 用户名 #切换后所在目录不变
su - 用户名 #切换后所在目录变成用户家目录
2、查看当前主机的完整名称
hostname
3、临时设置主机名
hostname 主机名
4、永久设置主机名
hostnamectl set-hostname 主机名
5、查看当前系统版本信息
cat /etc/redhat-release
cat /etc/*release
6、查看当前内核版本
uname -r
7、临时修改网卡IP
ifconfig ens33 192.168.80.3/24
ifconfig ens33 192.168.80.3 netmask 255.255.255.0
8、永久修改网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #设置网卡类型,“Ethernet”表示以太网
DEVICE=ens33 #设置网卡的名称
ONBOOT=yes #设置网卡是否在 Linux 操作系统启动时激活
BOOTPROTO=static #设置网卡的配置方式,“static”表示使用静态IP地址
“dhcp”时表示动态获取地址
IPADDR=192.168.80.3 #设置网卡的 IP 地址
NETMASK=255.255.255.0 #设置网卡的子网掩码
GATEWAY=192.168.80.2 #设置网卡的默认网关地址
DNS1=114.114.114.114 #设置DNS服务器的 IP 地址
9、重启网卡
systemctl restart network #重启所有的网卡
ifdown ens33 #关闭某个网卡
ifup ens33 #启动某个网卡
ifconfig ens33 down #临时禁用某个网卡
ifconfig ens33 up #重新激活某个网卡(不会更新IP地址)
10、查看网卡地址
Ifconfig-a (查看当前系统中所有状态的网卡系统)
或
ip a 【ip address】查看活跃网卡
11、重启系统
reboot
init 6
shutdown -r now
12、关机
poweroff
init 0
shutdown -h now
shutdown -c
13、关闭防火墙软件
1. 临时关闭命令: systemctl stop firewalld.service
2. 查看服务状态 :systemctl status firewalld.service
3. 永久关闭(下次开机不自启动): systemctl disable firewalld.service
Stenforce 0 核心防护关闭
四、linux常用命令
1、内部命令
type #查询内部外部指令
enable-n + 指令 #禁用内部指令
enable + 指令 #开启指令
help #帮助
ls --help #外部命令查询帮助
help cd #内部命令查询帮助
echo #shell内嵌/也可以是外部指令(给出具体命令所在)
hash #可以直接调取缓存中的指令
which + 指令 #查询指令所在路径与别名
2、命令行格式
命令字 选项 参数
命令字:唯一确定一条指令,是整条命令中最关键的部分
选项:长格式:使用“- -”符号引导;短格式:使用“-”符号引导
参数:用来处理对象;可以是文件名、目录(路径)名或者用户名等内容;个数可以是0到多个
3、Linux命令行的辅助操作
1.Tab键:自动补齐/按两下帮忙查询相同前缀的目录或文件(cd会显示目录,vim会显示文件)
2.反斜杠“\”强制换行(在长命令的情况下使用便于排错,更加工整)
3.Ctrl+U组合键:清空至行首
4.Ctrl+K组合键:清空至行尾
5.Ctrl+L组合键:清屏,或者clear
6.Ctrl+C组合键:取消本次命令编辑
7.Ctrl+A组合键:切换到行首
8.Ctrl+E组合键:切换到行尾
4、获得命令帮助的方法
命令帮助help
显示命令的帮助信息,命令的参数和用法等
命令“-help”选项
适用与大多数的Linux的外部命令
man命令的使用
- 可以使用方向键滚动文本
- 使用Page Up和Page Down键翻页
- 按Q或q键退出阅读环境
- 按“\”键查找内容
例如:lman ls | col -b > lshelp.txt
在这个例子中,col 是一个命令程序,用于过滤文本中的一些特殊控制字符;另外还使 用了“|”和“>”符号,这是 Shell 环境中的两种特殊功能应用,分别称为管道、重定向输出。其 含义及作用如下所述。
管道:用竖杠符号“|”表示,用于将前面命令的屏幕输出结果作为后面命令的操作对 象(输入)。就好像一根管道一样,从这头塞入内容,从另一头出来。
重定向输出:用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将 保存到“>”号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向。
5、查看当前工作目录:pwd
[root@localhost ~]# pwd #显示用户当前所在工作目录位置
/root
6、切换工作目录:cd (相对路径、绝对路径)
cd /home #后面跟绝对路径,切换到home目录
cd ./home #后面跟相对路径,切换到home目录
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家目录
cd ~user #切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd - #切换到上一次执行操作的目录
cd .. #切换到上一层目录(父目录)
绝对路径:以根开头的都是绝对路径 (/home/etc)
相对路径:以非根开头的都是相对路径
7、ls——列表显示目录内容(常用选项、可结合通配符)
1.显示目录中内容,包括子目录和文件相关属性信息
ls【文件】【文件或目录…】
2.常用选项
l、-a、-A、-d、-h、-R、–color
3.结合通配符
“?”:代表任意一个字符,且至少一个
“*”:代表任意数个字符,可以是0个或者1个或者多个
4.ls的常用选项
-l #将文件信息属性详细列出,通常直接使用ll,因为设置了别名
-R #递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d #查看目录本身信息,不显示目录下的内容
-i #显示inode值
-h #友好显示文件大小
-a #遍历所有文件及目录(ls内定将文件名或目录名称开头为""的视为隐藏档,不会列出)
-A #跟-a唯一的不同是不列出当前目录和上一层目录
颜色区别
白色: 数据文件 txt
深蓝色:目录
白色(黑色):一般文件
绿色: 可执行的文件(脚本/程序)
黄色: 块设备文件
红色: 压缩包
淡蓝色:链接文件/快捷方式
8、扩充
普通文件
d 目录文件 directory
b 块设备文件block
p 管道文件pipe
s 套接字文件 socket
l 符号链接文件link
9、设置别名-alias
通过别名机制简化常用的、比较长的命令
alias 命名别名 = 命令
alias dh=‘du-sh’
命令:
alias #查看系统当前所有可用别名
alias ll=‘ls-lt’#设置别名
unalias #删除别名
vim /root/.bash 永久生效
10、统计目录及文件空间占用-du
统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录…]
常用选项
-a :统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h:以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s:只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
示例:
统计出/var/log目录所占用空间的大小
du - sh /var/log/
11、创建新目录mkdir
mkdir /opt/sj #创建目录,注意:父目录必须存在
-p:创建一个已有的目录会报错,加-p则不会报错/当父目录不存在时,递归创建
rmdir 删除一个空目录
12、创建空文件-touch
①文件存在:修改文件或者目录的时间属性,包括存取时间和更改时间。
②文件不存在:创建新文件
touch [文件名]
touch [文件名] [文件名] 创建两个文件
13、创建链接文件-ln(软链接、硬链接)
ln 命令用于为文件或目录建立链接文件(类似于 Windows 系统中的快捷方式)
链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同
ln -s 创建软链接,相当于创建一个快捷方式
ln 创建硬链接,相当于复制了一份副本
硬软链接的区别
硬链接不能跨分区建立连接 无法对文件夹创建
删除硬件连接可以继续访问硬链接
软连接可以跨设备 可以支持文件夹
软连接删除源文件不能访问
注:相对路径与绝对路径 建议绝对路径
例:root@localhost ~]# mkdir /bin/wx
[root@localhost ~]# ln -s /bin/bzip2 /bin/wx/
[root@localhost ~]# ls -lh /bin/wx/bzip2
14、复制文件或目录-cp
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录...
-p:连属性一起复制
-a:保留权限,复制软链接本身,递归复制
-r:递归复制
-f:强制复制,不与用户交互
-i:提醒覆盖
cp的高级用法:cp -v file1.txt{,.bak}常用于备份
15、删除文件或目录-rm
删除指定的文件或目录
rm【选项】要删除的文件或目录
常用选项
-f:删除文件或目录时不进行提醒,而直接强制删除
-i:删除文件或目录时提醒用户确认
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。
常见用法:rm -rf /
删除空目录:rmdir
16、移动文件或目录/改名mv
用法:mv [文件名] [目录名]
mv [文件名] [文件名]
-i:若指定目录已有同名文件,则先询问是否覆盖旧文件
-f:在 mv 操作要覆盖某已有的目标文件时不给任何指示
当在同一目录下用mv就是改名,如果是跨目录使用mv的话就是移动,相当于剪切的操作
17、查找命令/文件存放目录which
which 命令用于查找 Linux 命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量 PATH 决定(可以执行“echo $PATH”命令查看),这个范围也是 Linux 操作系统在执行命令或程序时的默认搜索路径。
which 命令|程序名 #默认当查找到第一个目标后不再继续查找
which -a 命令|程序名 #在所有搜索路径中查找
示例
which is
which cd
18、查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
-name 按名称查找:
-size 按大小查找:
-user 按文件属主:
-type 按类型查找:普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)、链接(l)
多条件查找
-a表示 而且(and)
-o表示 或者 (or)
设置find命令的查找条件时,若需要使用或通配符,最好将文件名用双引号括起来
find /boot -size+1024k-a/-o-name"vmlinuz*"
使用"-a”-o”组合两个条件,前者表示两个条件必须同时满足,后者表示只需满足其中任何一个条件即可
18.1 Find工具-name参数案列:
find /etc -name "resol*.conf"
find /data/ -name "*.txt" #查找/data/目录以.txt结尾的文件;
find /data/ -name "[A-Z]*" #查找/data/目录以大写字母开头的文件;
find /data/ -name "test*" #查找/data/目录以test开头的文件;
18.2 Find工具-size参数案列
find /data/ -size +1M #查文件大小大于1Mb的文件;
find /data/ -size 10M #查文件大小为10M的文件;
find /data/ -size -1M #查文件大小小于1Mb的文件;
-size +4M 表示4M 以上 不包括 4M
-size 4M 表示3M 到4M 且不包括3M
-size -4M 表示3M 以内 包括3M
1G 1024 代表1023M - 1024M 不包括1023M
18.3Find工具-type参数案列:
find /data/ -type d #查找/data/目录下的文件夹;
find /data/ ! -type d #查找/data/目录下的非文件夹;
find /data/ -type l #查找/data/目录下的链接文件。
find /data/ -type d|xargs chmod 755 -R #查目录类型并将权限设置为755;
find /data/ -type f|xargs chmod 644 -R #查文件类型并将权限设置为644;
18.4 查找存在的用户的文件
find /home -user 用户名
find /home -user 用户名 -group 组名
扩展 xargs
可以和管道配合
find ./ -maxdepth 1 -type f -print0 | xargs -0 ls -lh-atime -- 访问时间
Linux中日志放在/var/log sylog
-mtime -- 文件内容修改时间
-ctime -- 文件属性修改时间
ctime ##以天为单位
cmin ##以分钟为单位
find ./ -name "syslog.*.gz" -mtime -5 -exec ls -lh {} \;
# +5是五天以前 #-5天以内
在当前目录下(包含子目录),删除所有txt文件
find ./ -name "*.txt" -exec rm {} \;
在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行
find ./ -name "*.txt" -exec grep "bin" {} \;