一、目录切换操作
- cd 切换目录
- 当前目录:cd .
- 上一层目录:cd ..
- 当前用户所在的家目录:cd ~
- 前一个工作目录:cd -
- 查看当前工作目录:pwd
二、系统相关命令
- 查看IP地址:(1)ip addr (2)ifconfig
- 清屏命令:clear ctr+r
- 重启机器:reboot
- 关闭系统:poweroff
- 查看登录用户信息:whoami
- 查看终端信息的命令:tty
- 更改密码:passwd root
- 更改linux主机名:hostnamectl set-hostname 主机名
- 查看当前的主机名称:hostname
- 查看系统内核版本信息:cat /etc/redhat-release
- 查看系统内核版本号:uname -r
- 查看系统内核的所有信息:uname -a
- 查看系统多少位:uname -m
三、文件和目录相关命令
linux下,文件是白色的,文件夹是蓝色的
- 创建文件和文件夹
- 创建文件夹:mkdir 文件夹名
- 创建文件:touch 文件名 注:touch -t 时间戳 可以更改文件或文件夹更改时间
- 递归创建:mkdir -p a/b c/d 在当前目录下创建a、c文件目录,在a、c下面创建bd文件
- 删除文件和文件夹
- 删除文件/文件夹:
参数:-r 向下递归,不管有多少级目录,一并删除 -f 直接强行删除,没有任何提示。- rm 文件名 删除文件
- rm -rf 文件夹 删除文件夹下所有的子目录和子目录中的文件
- 删除空文件夹r: rmdir
- 删除文件/文件夹:
- 移动或更改文件名
- 更改单个文件名:mv/rename 老文件名 新文件名 如果新文件名存在,则覆盖
- 批量更改文件名:rename foo foo1 foo* 将所有文件名开头为foo的文件更改为foo1...,
- 移动文件/文件夹:mv 文件名/目录名 目标路径或文件夹
- 查看文件和文件夹
- 查看当前目录下所有文件和文件夹:ls
- 显示文件下详细信息:ls -la -l显示详细信息,-a显示隐藏文件/文件夹
- 复制文件/文件夹
- 复制文件:cp 文件 复制的文件
- 复制文件夹:cp -r hu1 hu2 将文件夹hu1中所有的内容复制到hu2下 -r递归地复制子目录
- 编辑文件
- vi/vim 文件 打开文件
- 此时进入命令模式的状态,等待输入命令,一般会输入i/o/a,i是insert插入的意思;o是在光标所在行的下一行写入信息
- 输入i之后,进入编辑模式,就可以写入代码了
- 按下esc,退出编辑模式,此时回到了命令模式,输入:wq退出且写入文本信息。 :是进入底线命令模式的参数
:wq 写入文本并退出
:q 不保存退出
:q! 强制退出 - 常用操作
w 移动光标到下一个单词
b 移动光标到上一个单词
数字0/$ 移动到本行开头/结尾
gg/G 移动光标到文档的首行/尾行
/nihao 在整篇文档中搜索nihao字符,向下查找
?nihao 在整篇文档中搜索nihao字符,向上查找
复制,删除,粘贴
yy 拷贝光标所在行 3yy 拷贝光标坐在的3行
p 粘贴yy所复制的内容
x 删除光标所在的字符
dd 删除光标所在行 5dd 删除光标所在5行
D 删除光标到行尾的内容
dG 删除当前行到文档尾部的内容
u 撤销上一步的操作
- 查看文件或文件系统的状态
- state hu.txt 查看hu.txt文件的状态,显示文件大小、权限、修改创建时间等信息
- state -c %A hu.txt 用可读性较好的方式输出权限
- 文件加锁/解锁或查看文件是否加锁
- chattr + a test.txt 加锁,加锁以后,只能写入数据,不能删除文件
- chattr -a test.txt 解锁
- lsattr test.txt 查看文件是否加锁
- 查看文件/文件夹所占磁盘空间的大小
- 语法: du 参数 文件或目录
参数: - s 显示总计
- h 以k,M,G为单位显示,可读性强-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数
- 语法: du 参数 文件或目录
- 查看文件内容
- cat 查看文本文件内容(一般用于内容较少的)
cat -n 文件 查看文件显示行号
cat -E 文件 在每一行的结尾加上$符号2 - more 用于查看内容较多的文本,会以百分比形式告知已经看了多少
按空格 space 翻页、 按下b键是上一页、回车键向下读取内容
less - head -n 文件 显示文件内容前几行,默认前10行
tail -n 文件 显示文件内容后几行,默认后10行
tail -f 文件 持续刷新显示 - wc
- wc -l 统计行数
- wc -w 统计字数
- wc - c 统计字节数
- cat 查看文本文件内容(一般用于内容较少的)
四、用户管理和文件权限
- GID
- 为了方便管理属于同一组的用户,Linux系统中引入了用户组的概念。通过使用用户组号码,我们可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务。
- Linux管理员在创建用户时,将自动创建一个与其同名的用户组,这个用户组只有该用户一个人
- UID
(1)在Linux系统中,用户有自己的UID身份账号且唯一。
(2)系统管理员UID为0
(3)系统用户UID为1~999 Linux安装的服务程序都会创建独有的用户负责运行
(4) 普通用户UID从1000开始:由管理员创建。 - .创建普通用户
- 添加用户:useradd 用户名
- 设置密码:passwd 密码
- 注意:root用户可以修改其他所有人的密码,且不需验证,普通用户只能修改自己的用户
- 强制删除用户及家目录
- (1)语法:userdel -r 用户名 同时删除用户以及家目录
- userdel -f 用户名 强制删除用户
- su切换用户
- 语法: su - username - 号很重要,意味着完全切换到新的用户,即环境变量信息也更新为新用户信息
- 注意:一般情况下,生产环境避免直接用root用户,除非有特殊系统维护需求,使用完立刻退回普通用户
- 超级用户root切换普通用户无需密码,普通用户切换root,需要输入密码。
- $符号是普通用户命令提示符,#是超级管理员的提示符
- sudo命令
- (1)语法:sudo 参数 选项 用来以其他身份来执行命令,默认是root。需要在/etc/sudoer中设置可执行sudo指令的用户。否则会报错。用户使用sudo时,必须先输入密码,5分钟有效期,之后需要重新输入密码。
- 参数 - u 用户 以指定的用户作为新身份,不加此参数,默认root为新身份
- -v 延长密码有效期限5分钟
- Linux权限的目的是保护账户的资料
1.Linux权限的三种身份
(1)user/owner 属主,文件属于哪个用户
(2)group 属组,文件属于哪个组
(3)others 其他人,既不是users,也不是group,就是other
2.文件的类型
(1)- 一般文件
(2)d 文件夹
(3)l 软连接(快捷方式)
(4)b 块设备,存储媒体文件为主
(5)c 代表键盘,鼠标等设备
3.文件权限
(1)r read可读,可以用cat等命令查看
(2)w write写入,可以编辑或者删除这个文件
(3)x executable,可以执行,
4.目录权限
(1)r 可以对此目录执行ls 列出所有文件
(2)w 可以在这个目录创建文件
(3)x 可以cd进入这个目录,或者查看详细信息
5.权限与数字的转换
(1)r 4 (2)w 2 (3)x 1
6.修改文件权限的属组和属主
普通用户只能修改自己的文件名,时间与权限。修改其他用户权限,只能用root用户
(1)chown 用户名 对象(文件或文件夹) 修改属主,只能在root下面使用
(2)chgrp 用户名 对象(文件或文件夹) 修改属组,只能在root下面使用
7.修改文件/文件夹权限
(1)chmod u/g/o+rwx 文件 添加权限
(2)chmod u/g/o - rwx 文件 减少权限
(3)chmod 777/000 文件
五、防火墙和crond服务
- selinux功能(linux自带的防火墙)
- selinux是美国国家安全局(NSA)对于强制访问控制的实现,这个功能管理员又爱又恨,大多数生产环境也是关闭的做法,安全手段使用其他方法。大多数ssh连接不上虚拟机,都是因为防火墙和selinux阻挡了
- (1)getenforce 获取selinux的状态(2)setenforce 0 临时关闭selinux,重启后selinux又会生效(3)永久关闭selinux,写入到selinux配置文件:vim /etc/selinux/config,将SELINUX=disabled,重启后selinux永久关闭
- iptables防火墙
- 在企业环境中,一般只有配置外网ip的linux服务器才会开启防火墙,但是对于高并发流量的业务服务器仍然是不能开启的,会有很大性能损失,因此需要更nb的硬件防火墙
- (1)iptables -L 查看防火墙规则(2)iptables -F 清空防火墙规则
- 防火墙
- systemctl stop firewalld 永久关闭防火墙软件
- systemctl status firewalld #查看防火墙状态
- systemctl disable firewalld#关闭防火墙开机启动
- systemctl is-enabled firewalld.service#检查防火墙是否启动
- 后台运行,到了预定时间就会自动执行的任务叫做计划任务。
- crontab 参数 命令被用来提交和管理用户的需要周期性执行的任务。
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u(用户名):指定要设定计时器的用户名称 - crontab 配置文件
在/etc目录下有一个crontab文件,就是系统任务调度的配置文件 - crontab 任务配置基本格式
* * * * * command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
Ceontab 的符号含义
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围, 例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围, 例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率, 例如“0-23/2”表示每两小时执行一次。 同时正斜线可以和星号一起使用, 例如*/10,如果用在minute字段,表示每十分钟执行一次。 - 执行流程:
1. 先通过执行 crontab-e 进入当前用户的计时器则设置
2. 写任务计划书,命令必须加上绝对路径,否则会出现这种情况:从日志中看,确实触发了计划任务的执行,但是命令却没有执行成功,比如* * * * * reboot就会出现这种情况,需要将reboot写成/usr/sbin/reboot
3. 退出当前用户的计时器设置,通过crontab-l进行查询,查询写入的计划任务
4. 再开启一个服务,切换到指定的目录下面,等待计时任务的执行
5. 查看计划任务的执行:tail -f 路径
- crontab 参数 命令被用来提交和管理用户的需要周期性执行的任务。
六、其他常用命令
- 搜索命令-grep
- 一种强大的文本搜索工具,他能使用正则表达式搜索文本,并把匹配的行打印出来。
- 语法: grep 参数 --color=auto 字符串 filename
-i :忽略大小写
-n :输出行号
-v :反向选择,即排除我输入的内容
--color=auto:给关键词部分添加颜色
- 别名命令-alias
- alias 查看系统别名
例: alias rm = 'echo do not use rm' 设置rm别名
alias rm = ‘rm -i’ 把别名设置为初始的样式
- alias 查看系统别名
- 跨机拷贝命令
- scp 用于Linux之间复制文件和目录,远程文件拷贝命令
(2)语法: scp 参数 本地源文件 远程文件标记
参数: -r :递归复制整个目录
-v :详细方式输出
-q :不显示传输进度条
-c :允许压缩
例子:scp root@192.168.1.11:/home/test.txt/ /tmp/hu.txt 复制远程文件到本地
scp /tmp/chao.py root@192.168.1.11:/home/test.txt/ 传输本地文件到远程地址
- scp 用于Linux之间复制文件和目录,远程文件拷贝命令
- linux时间同步
- (1)date 显示当前时间
date + ‘%Y-%m-%d %T’格式化输出时间
date +%F 按照年月日格式输出
(2)Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。
(3)hwclock 查看硬件时间
hwclock -w 以系统时间为基准,修改硬件时间
hwclock -s 以硬件时间为基准,修改系统时间
- (1)date 显示当前时间
- top命令 --用于动态得监视进程活动与系统负载等信息
- wget:(1)语法: wget 参数 下载地址 用于在终端下载网络文件
- df命令
- df命令用于显示磁盘分区上的可使用磁盘空间。默认单位为KB,可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息
- df 参数
-h 以可读性较高的方式来显示信息。
-k 指定区块大小为1024字节
- kill命令
- kill命令用来删除执行中的程序或工作。
- kill 进程号 杀死进程以及相关进程信息
kill -9 进程号 强制杀死进程,无论进程运行在什么状态,一定会杀死。
- tar解压命令
- Linux的文件打包工具最出名的是tar。tar命令用来压缩和解压文件。tar本身不具有压缩功能,他是调用压缩功能实现的。
- 语法:tar -xf 压缩文件 ->解压文件
例:tar -cf ./oldboy.tar oldboy.txt
tar -cf 压缩路径 被压缩的文件 ->压缩文件 - tar -tf 压缩文件 查看缩文件里面的内容
- ps -ef查看进程状态
- ps -ef 查看系统中的进程状态
-a 显示所有进程
-u 用户以及其他详情信息
- ps -ef 查看系统中的进程状态
- netstate:(1)netstat -tunlp 用于打印Linux中网络系统状态和端口信息
- 软链接
- 软连接也叫作符号链接。类似于windows的快捷方式,常用于安装软件的快捷方式配置,如python,nginx等。
- 语法: ln -s 目标文件 软链接名 设置软连接之后可以直接通过软连接名访问
- 软连接只是一个别名,删除软连接不会影响源文件,但删除了源文件,软连接就没用了
- tree命令: tree 目录名 以树状图列出目录的内容
- free命令
- free 令会显示内存的使用情况
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。
- free 令会显示内存的使用情况
- find命令 -在目录结构中根据指定条件查找文件
- 基本用法
- 列出当前目录和子目录下的所有文件: find .
- 查找特殊的目录或路径
- find ./test 列出./test目录和子目录下的所有文件
- find ./test -name abc.txt 或者 find ./test -name "*.txt" 查找指定名称的文件
- 限制目录查询的深度
- find ./test -maxdepth 2 -name "abc.txt"
- 反向查找-查找不满足条件的文件
- find ./test -not -name abc.txt 其中-not 可以用!代替,
- 结合多个条件查找
- find ./test -name "abc*" ! -name"*.php"
- find ./test -name "abc*" -o ! -name"*.php" OR操作符可以用-o代替
- 只查找文件或目录
- 只查找文件:find ./test -type f -name "abc*"
- 只查找目录:find ./test -type d -name "abc*"
- 同时在多个目录中查找
- find ./test ./dir2 -type f -name "abc*"
- 基于文件权限和属性的查找
- find . -type f -perm 0664 查找所有具有0664权限的文件
- find . -maxdepth 1 -perm /u=r 查找只读文件
- 基于文件拥有者和用户组的查找
- find . -user hsj 查找属于hsj用户的文件
- find . -group ddd 查找属于ddd用户组的文件
- 基本用法
- awk命令
awk是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序。
它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,
awk
可能是最方便的工具。 - sed命令
- 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。