- Linux是一套免费使用和自由传播的操作系统。
- 特点如下:
- 开源免费
- 安全稳定
- 可移植性好
- 高性能
-
- Linux常见的发行版本
- Debian
- Kali Ubuntu
- Redhat
- Fedora CentOS(企业版) Oracle Linux(企业版)
- OpenSUSE
-
-
- Linux使用领域
- 应用服务器
- 数据库服务器
- 网络服务器
- 虚拟化云计算
- 嵌入式领域
- 个人PC
- 移动手机
Linux是树形结构的文件系统,其中/是系统的根目录,其他所有目录都是它的子节点。
重要文件目录
- ll= ls -l
-
- ls -al /home
- 在linux中以 . 开头的文件都是隐藏的文件
- 查看/home目录下所有文件或目录(包含隐藏的文件,隐藏文件都是.xxx)
- -a:(all)全部⽂件,包含隐藏⽂件
- -l: (list)以列表的形式显示,可以看⽂件类型、权限、⼤⼩、修改⽇期
-
- ls -al /usr/bin/ | more 分屏查看
-
-
- 常用通配符:
- *代表任意字符。如:ls *.txt
- ? :表示一个任意字符
- [abcd] :表示可以匹配a、b、c、d中的任何一个字符 例如:ls 1[ab]h.txt
- [a-f] :匹配从a到f范围内的的任意一个字符 例如:ls 1[a-b]h.txt
文件类型
- 普通文件(-)
- 目录(d)
- 符号链接(l)
- cd:(change directory)
- 快速回家: cd ~
- /home/用户名
touch 234.txt 345.txt 创建多个文件
- mkdir -p 1/2/3 创建多级目录
- mkdir -p /data/mariadb/{logs,conf,data} 创建多个文件夹
rm -rf 文件或文件夹
- cp -rf 源文件 目标文件
- cp -rf /home/admin/123.txt /home/admin/124.txt
- cp -rf /home/admin/123.txt /home/admin
- -r: 复制文件夹下所有的内容
- -f: 强制性复制及覆盖
- mv 源文件 移动的目标地址
- mv也可以重命名 如:mv 文件1 文件2
- mv /home/admin/123.txt /home/admin/124.txt
- cat:一次打开文件全部内容(适合查看少量内容)
-
- head: 从头开始查看指定行数内容
- 默认显示日志文件前10行内容。
- 参数:-n 指定行数
- head -15 xx.log 显示日志文件的前15行内容
-
- tail: 从尾部指定 行数查看日志
- 默认显示日志文件最后10行内容
- -n:读取的行数
- -f:动态查看内容
- tail -10 /etc/passwd 查看后10行数据
- tail -n 100 logs/catalina.out 看Tomcat尾部最近100行
- tail -f catalina.log 实时显示日志的文件信息
-
- 查看一个log文件后300行有关error的错误?如何将这些错误下载下来
- tail -300f xx.log | grep error > error.log
more/less:分屏查看(查看比较大的文件)
more命令用于分屏显示文件内容,每次显示一页内容
适用于查看文件内容较多的文件
查询脚本SQL总数
- vi 或 vim
- 命令模式:输⼊命令(删除、打开插⼊模式、打开末⾏模式)
- dd:删除光标所在⾏内容
- 插⼊模式:
- i、a、o 任意⼀个键就可以打开插⼊模式
- 退出插⼊模式:按esc键->回到命令模式
- 末⾏模式:
- 从命令模式按下:冒号键盘(shi!+;)
- 退出保存: :wq w->保存 ;q->退出;
-
- 显示行号
- vim打开文件之后输入:set nu
-
- 文件中查找关键字
- 通过 /关键字 查找出现多个结果,使用 n 字符切换到下一个
- grep 是一个强大的文本搜索工具,允许对文本进行模糊查找(正则表达式)
- grep -n 内容 xxx.log
- grep -n error p2p.log
- -v :显示不包含匹配文本的所有行(相当于取反)
- -n:显示匹配的行及行号
- -i:忽略大小写
-
- grep 常用正则表在式:
- ^a : 搜索行首内容以a文本开头的行。 例如: grep –n '^a' 1.txt
- ke$: 搜索行尾内容以ke文本结尾的行。例如: grep –n 'ke$' 1.txt
- [Ss]igna[Ll]: 匹配[]中的任意一个字符,搜寻匹配单词为 SignaL、Signal、signaL、signal的行; 例如: grep –n ' [Ss]igna[Ll] '
- find 搜索路径 -iname "⽂件名关键字"
- find / -iname "abc.txt"
- -i:忽略⼤⼩写
- 路径省略掉表示在当前目录下查找文件
- 文件名可以通过通配符来表示
- find . -name test.sh 查找当前目录下所有名为test.sh的文件
- find . -name '*.sh' 查找当前目录下所有后缀为.sh的文件
- 赋权字⺟法
- chmod u+r ⽂件
- u:表示文件所属用户
- g:表示文件所属的用户组
- o:其他⽤户
- a:所有⽤户
-
- r->读,w->写,x->执行,-->空
- 4->读,2->写,1->执行,0->空
-
- chmod 变更文件或目录的权限
- chmod u=rwx,g=rx,o=rx a.txt
- u代表所有者,x代表执行权限。 + 表示增加权限。
- chmod a+x /etc/init.d/nginx 赋予所有用户执行的权限
- 权限设置说明: + : 增加权限 - : 撤消权限 = : 设定权限
-
-
- 数字法
- chmod 777 ⽂件 授最高权限
- chmod 755 a.txt 数字755代表上面属主 属组 其他用户数字加起来代表的权限
- chmod 000 a.txt 授最低权限
-
- chown 变更文件或目录改文件所属用户和组
- chown u1:public a.txt :变更当前的目录或文件的所属用户和组
- chown -R u1:public dir :变更目录中的所有的子目录及文件的所属用户和组
- chown mysql.mysql -R /usr/local/mysql :修改权限为 mysql组 mysql用户
- 软链接
- 软链接只是指向源文件的一个链接,类似于windows的快捷方式
- 说明:快捷⽅式,源⽂件删除,快捷⽅式不能⽤。
- 语法: ln -s 源⽂件 链接文件
- 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
- 软链接可以链接目录
- 选项:-s 建⽴软连接选项
- ln -s webapp_20201222 last
-
- 硬链接(和软连接类似,这个是复制了一份)
- 说明:复制源⽂件,源⽂件删除不影响使⽤。
- 语法: ln 源⽂件 ⽬标⽂件
-
- 删除软连接
- rm -rf last
- 压缩(tar)
- 命令: tar -zcvf 压缩⽂件名.tar.gz 要压缩的⽂件
- 示例: tar -zcvf tpshop.tar.gz /home/admin/tpshop/*
- 选项
- z:调⽤gzip压缩⼯具
- c:创建打包文件
- v:列出归档解档的详细过程,显示进度
- f:指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
- t:列出档案中包含的文件
-
- 解压(tar)
- tar -zxvf 压缩包.tar.gz
- tar -zxvf tpshop.tar.gz
- tar -zxvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /root/mysql 解压到指定目录
- 选项:x:解包
-
- 压缩与解压(zip)
- 压缩: zip ⽂件名.zip ⽬录/*
- 解压 :unzip ⽂件名.zip
- 提示 :如果要解压到指定⽬录使⽤ -d 路径⽬录;如: unzip -d /home/test ⽂件.zip
-
- 压缩与解压(xxx.tar.bz2)
- 实际应用是在tar 选项中增加一个-j选项来调用biz2实现打包和压缩的过程
- 压缩文件: tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径
- 解压缩文件: tar -jxvf 打包文件.tar.bz2
- 将左侧执行结果保存到文件
- >:向文件写入内容,如果文件中已有内容,会进行覆盖。
- >>:向文件追加内容,不会覆盖原有内容
- ls -l /home > a.txt
-
- 例如
- ip a > ip.txt
- echo 哈哈哈 > ip.txt echo是显示的意思,回显到控制台。
- ls -al /usr/bin/ > bin.txt 将目录下文件写入到文本。
- tail -20 ping.log | grep 30 > 1.txt
- 作用:将左侧命令执行结果 通过管道符 作为右侧命令数据的来源
- 提示:管道符,通常配合grep命令使用
- 示例:tail -20 ping.log | grep 30
- ls -al /usr/bin/ | more 分屏查看
- 重启
- reboot 执行命令后立即重新启动操作系统。
- shutdown -r now 重新启动操作系统,shutdown会给别的用户提示
- 关机
- shutdown 执行命令后,提示一分钟后关闭操作系统。
- shutdown -h now 立刻关机,其中now相当于时间为0的状态
- shutdown -h 20:25 :系统在今天的20:25 会关机
- shutdown -h +10 :系统再过十分钟后自动关机
-
-
- 显示当前所在目录:pwd
- 清屏:clear
- 帮助:--help 例如:ls --help
- ⼿册: man 命令 例如:man ls 退出:q
- who或者w:显示目前登入系统的用户信息
- -q或--count : 只显示用户的登录账号和登录用户的数量
- -u或--heading : 显示列标题
- hostname 查看当前主机名
- cat /proc/version 查看当前操作系统版本信息
- cat /etc/issue 查看版本当前操作系统发行信息
- uname 显示系统信息
- uname -a 显示本机详细信息
- 依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称
-
- date 显示当前系统时间
- date -s “2014-01-01 10:10:10“ 设置系统时间
-
- df -h:查看磁盘使用率,友好显示大小
- free 显示内存状态
- free –m 以mb单位显示内存情况
- top命令
- top命令用于实时动态查看系统进程相关信息
- top:相当于windows中的任务管理器,可以查看瞬时进程情况及CPU、内存情况。
- 常⽤:性能测试使⽤
- 参数:
- p: 根据CPU使用率大小降序显示进程信息
- m:根据内存的大小降序显示进程信息
- q: 退出top命令或者按 ctrl+c也可以退出
-
-
- which: 查找⼯具-查找应⽤程序或命令所在位置
- 例如:which mysql、which ls;
- 不可找⽂件
-
-
- du -sh * 看日志文件的大小(进入到logs下)
- du –h 显示当前目录的大小
- du 显示目录或文件的大小。
-
-
- 远程连接: ssh ⽤户名@服务器ip地址
- 切换登陆: ssh -l test -p 22 192.168.19.128
- 远程上传⽂件: scp 要上传⽂件的本地路径及⽂件 服务器登录⽤户名@服务器IP:上传的位置
- mysql -uroot -p123456 -h 172.17.18.14:mysql限制了本机登录:只能登录别的机器的
- 查进程
- ps -aux
- ps -ef
- 以上两个没有区别
- 常用选项说明:
- -a : 显示终端上的所有进程,包括其他用户的进程
- -u : 显示进程的详细状态
- -x :显示没有控制终端的进程
-
- ps 正在运行的某个进程的状态
- ps -ef(相当于查看window进程) | grep java寻找进程中包含java关键字的,grep的不算。
- jps 查看进程,jdk中的命令,Bootstrap就是Tomcat的进程。
- jps -l信息会全一点
-
-
- 杀进程
- kill 进程PID
- 强制删除: kill -9 进程PID
- -9:强制删除选项
-
- 如何使⽤⼀条命令来完成杀java进程
- ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
- 思路:
- 1、获取JAVA进程pid
- 2、使用kill -9 pid
- 查看系统中开放哪些端⼝
- netstat 可以查看当前系统网络状态及对应软件使用的端口
- netstat -anput 想要知道系统中有哪些端⼝已被使⽤,就使⽤此命令
- netstat -ntulp | grep 端口号 查询指定端口
- netstat -lanp | grep 6379 根据端口号得到其占用的进程的详细信息
- netstat –anopt|grep sshd 查看ssh的端口
- ss -anp | grep 21 查看端口
- 常用选项说明:
- -a : 显示所有已打开的端口
- -p : 显示对应的进程id
- -n : 用数字显示对应的端口,不用别名显示
- -t : 显示所有tcp协议端口
- -u : 显示所有udp协议端口
-
- lsof查看系统监听端口
- lsof(list open files)是一个列出当前系统打开文件的工具,可以查看系统中正在使用端口的详细信息
- lsof -i :如果不给出条件,则默认显示所有进程打开的所有
- lsof -i:端⼝号 列出使用端口3306的进程信息,此命令必须在root账户下使⽤
- 添加账户
- useradd -g 组 ⽤户名
- useradd -g root user01
- useradd test 添加test用户
- useradd test -d /home/t1 指定用户home目录
-
- 删除用户
- userdel test 删除test用户(不会删除home目录)
- userdel –r test 删除用户以及home目录
-
- 修改密码
- passwd 账户名 用于设置指定用户的密码 (执行命令的用户必须为root)
- passwd user01,为user01用户设置密码
-
- 切换⽤户
- su ⽤户名
- su - : 切换到root用户
- su root --> 需要填写root的密码
- 由普通用户切换到其他用户时,需要输入密码
命令: exit
多⽤户退出原理:
- 将nginx服务加入chkconfig管理列表:
- chkconfig --add redis
- chkconfig --add /etc/init.d/nginx
-
- 设置开机自动启动
- chkconfig nginx on
-
- service redis start 启动redis
- service redis stop 关闭redis
-
-
- 开机自启文件配置位置
- /etc/init.d 指向-> /etc/rc.d/init.d
- mysqld
- nginx
- redis
- 安装包在线下载
- wget http://download.redis.io/releases/redis-5.0.7.tar.gz
-
-
- rpm查找命令
- rpm -qa | grep openssl
- rpm查找安装位置
- rpm -ql keepalived
- 安装rpm包
- rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
-
- gem包安装
- gem install redis-3.0.gem
-
行转列
- 获取linux操作系统ip地址: ip a
- ifconfig eth0 up 启用eth0网卡(相当于网络设置里边的开启和关闭网卡)
- ifconfig eth0 down 停用eth0网卡(在客户端停用网卡,客户端就连不上了,需要到服务器开启网卡才能连接)
- ping 192.168.0.1 探测网络是否畅通。
- ip add show eth1 从eth1网卡中查看当前IP情况