Linux学习

一、基础指令     1.ls指令         ../    上级目录         ./    当前目录         ls -al                      -l 表示list,一详细列表的形式显示             -a 表示显示所有目录和文件     2.pwd指令     3.cd指令         cd~    回到家目录     4.midir指令         mkdir 路径         mkdir -p 路径    创建多层目录         5.touch指令         创建文件     6.mv指令         剪切命令         mv 需要移动的文档路径 需要保存的位置路径         可以移动文件夹     7.rm指令         -f    强制删除         -r    递归删除文件夹     8.vim指令     9.cp指令         cp 被复制的文档路径 文档被复制到的路径         当使用cp命令对文件夹进行复制的时候,需要添加"-r"(表示递归)     10.输出重定向         有时候需要将一些命令的执行结果保存到文件中,进行后续的分析,则需要用到输出重定向技术。     11.cat指令     12.tail         tail -F a.txt    可以实时改变 二、进阶指令:     1.df -h(换算单位) :查看磁盘空间     2.free -m:以MB为单位查看内存剩余         swap:临时内存     3.head -3     4.tail -3       tail -f 文件路径:可以查看一个文件的动态变化     5.less  :查看文件,以较少的内容     6.wc:统计文件内容信息       wc -l  查看行数,-w 单词数,-c 字节数     7.date       查看时间日期  date +%F   (等价于date "+%Y-%m-%d")       date "+%F %H-%M-%S(%T)"       设置日期         date -s 字符串时间             date -s "2018-10-10 11:22:22"         时间与网络时间一致         ntpdate 0.asia.pool.ntp.org     8.cal        cal -1  当前月份       cal -3  上月,本月,下月       cal -y 年份:某一年月份的日历     10.clear  ==  Ctrl+L      11.grep          grep [] 关键词 文件路径             -i 忽略大小写             -c 计算个数             -n 输出所在行数和内容             -v 输出不包含该内容的其他东西     12 which whereis         查找命令在哪里 三、高级指令:     1.hostname:主机名     2.id:当前用户的基本信息     3.whoami:显示自身的用户名称     4.ps -ef:查看当前服务器的进程信息    System V 展示风格         -e:列出全部的进程         -f:显示所有列        ps -aux    BSD分格         如果想查看进程的CPU占用率和内存占用率,可以使用aux          如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef     5.top:查看服务器进程所占的资源。         load average 平均负载             单核:小于等于1代表正常,大于1代表负载过高,大于2 需要增加配置             多核:*核数     6.du -sh:查看目录所占的磁盘空间     7.find 范围 -type/-name         ? 一个占位符    * 多个占位符     8.service  :控制一些软件的服务启动、停止、重启         service 服务名 start/stop/restart     9.kill:杀死进程         kill 进程PID         killall [] 进程名称             -9 强制杀死     10.管道 |         过滤:ls / | grep *.txt     11.ifconfig:用于操作网卡     12.reboot:重启         reboot -w 模拟重启,但不重启(写日志)     13.shutdown:关机 init 0/halt/poweroff         shutdown -h now         shutdown -h 12:30   shutdown -c取消关机     14.uptime:输出计算机的持续在线时间     15.uname:获取操作系统的类型        uname -a 表示获取全部的信息     16.netstat -atnlp        网络端口占用情况        netstat:查看网络连接状态        -t:只列出tcp协议的连接        -n:将地址从字母组合转化成ip地址        -l:过滤出"state(状态)"列中值为Listen(监听)的连接        -p:显示进程pid和进程名称     17.man(manual):包含全部Linux命令的手册。     18.Ctrl+u 快速删除命令行中光标前的内容。        Ctrl+k 光标后      19.文件权限         -rwxr--r--  1 root root        61 Jul 27 22:54 a.c         第一位:-:文件    d:文件夹             权限:读写执行         u    所有者         g    用户组         o    其他人         a    所有人         chmod a+x 文档路径         chmod a = rwx    设置权限         r = 4    w = 2    x = 1    - = 0         chmod    777 文档路径         chmod -r 777 目录路径        表示对当前目录及目录下所有的文件执行     20.安装命令        yum install -y tree     四、vim     1.vim三种模式         命令模式:快捷键操作(删除行,复制行,移动光标,粘贴)         编辑模式:编辑文件         末行模式:输入命令操作(搜索,替换,保存,退出,撤销,高亮)     2.vim打开文件的方式         #vim         #vim +数字 文件的路径    :打开指定的文件,并且将光标移动的指定行         #vim +/关键词 文件的路径  :打开指定的文件,并且高亮显示关键词         #vim 文件路径1 文件路径2 问阿金路径3   :同时打开多个文件     3.命令模式         3.1 光标移动             ①光标移动到行首    shift+6或^             ②光标移动到行尾    shift+4或$             ③光标移动到首行    gg             ④光标移动到尾行    G             ⑥翻屏                               向上 ctrl+b                    向下 ctrl+f         3.2 复制             ①复制光标所在行        yy     粘贴(p)             ②从光标所在行开始,向下复制指定的行数    数字yy             ③可视化复制            Ctrl+v  移动方向键选中需要复制的块 按yy  按p         3.3剪切/删除             ①剪切/删除 光标所在行                    dd(删除之后,下一行上移)             ②剪切/删除 光标所在行开始,向下多行        数字dd             ③剪切/删除 光标所在位置后边的(删除之后,下一行不上移)    D         3.4撤销/恢复             ①撤销    :u  或  u  (undo)             ②恢复    ctrl+r   取消之前的撤销操作         3.5扩展--光标的快速移动             ①快速将光标移动到指定的行数    数字G             ②以当前光标为准,向上/向下移动n行    数字 ↑/↓             ③以光标为准 想左/向右                数字←/数字→             ④末行模式下,  输入: 数字  回车     4.末行模式         进入方式             在命令模式下,输入:         退出方式             ①按一下esc    ②按两下esc    ③将末行内容全部删除         4.1保存操作                     输入":w"        保存文件             输入":w 路径"    另存为         4.2退出操作             输入":q"         4.3保存并退出             输入"wq"             输入":x"    写入文件并退出         4.4强制             输入"q!"    强制退出,刚才做的修改不操作。         4.5调用外部命令             输入":!外部命令"         4.6搜索/查找             输入"/关键词"                 切换搜索结果  N/n             如果需要取消高亮  输入":nohl"         4.7替换             :s/搜索关键词/新的内容            替换光标所在行的第一处符合条件的内容             :s/搜索关键词/新的内容/g        替换光标所在行的全部符合条件的内容             :%s/搜索关键词/新的内容            替换整个文档中所有行的第一处符合条件的内容             :%s/搜索关键词/新的内容/g        替换整个文档中所有符合条件的内容             %表示整个文档     g表示全局         4.8显示行号             输入":set nu"        下次进入就没了             取消":set nonu"         4.9扩展  打开多个文件操作             输入":files"    查看现在打开了哪几个文件             %a 表示当前打开的文件             # 表示上一个打开的文件             输入":open 文件名"    打开文件             输入":bn" 切换到下一个文件 back next             输入":bp" 切换到上一个文件 back prev     5.编辑模式         进入编辑模式:             在命令模式下               按 i 在光标所在前面插入              按 a 在光标所在后面插入     6.vim的实用功能         6.1代码着色             打开颜色显示 ":syntax on"             关闭颜色显示  ":syntax off"         6.2计算器的使用             当在编辑文件的时候,突然需要使用计算器去计算一些公式,则此时需要用计算器。             此时,用vim集成的计算器                 a.进入编辑模式                 b.按"ctrl + r",然后输入"=",此时光标变到最后一行                 c.输入需要计算的内容,按下回车。     7.扩展功能         7.1vim的配置             ①在文件打开的时候在末行模式下输入的配置(临时)             ②个人配置文件(~/.vimrc)  如果没有,可以自己创建             ③全局配置文件(vim自带,/etc/vimrc)         7.2异常退出             在编辑文件后没有正常退出,突然关闭终端或断电。             解决办法 : 将交互文件(.swp)删除即可。         7.3别名机制             创建一些属于自己的自定义的命令             依靠一个别名映射文件:~/.bashrc             修改之后,需要重新登录当前用户         7.4退出方式             :wq 文件若没有修改,但是使用了wq,则文件的修改时间会更新。             :x 文件没有被修改,则时间不会被更新。             :X 对文件进行加密 五、Linux自有服务     1.运行模式         也称之为运行级别         在Linux 中存在一个进程:init(initialize,初始化),进程id是1.         查看进程:ps -ef|grep init         该进程存在一个对应的配置文件   inittab(系统运行级别配置文件,位置/etc/)                     0---关机级别                     1---单用户模式             init    2---多用户模式,不带NFS                     3---多用户模式,完全的多用户,命令行模式                     4---被保留模式                     5---X11,完整的图形化界面模式,图像界面模式                     6---表示重启级别 六、用户管理     1.用户管理         1.1添加用户             #useradd 选项 用户名                 选项: -g:表示指定用户的用户主组,id 或 组名                         -G:表示用户附加组,id 或 组名                          -u:uid , 用户的id             查看用户的主组 可以查看passwd文件             查看用户的附加组可以查看group文件         1.2修改用户             #usermod 选项 用户名             选项: -g:表示指定用户的用户主组,id 或 组名                     -G:表示用户附加组,id 或 组名                      -u:uid , 用户的id                     -l:修改用户名         1.3设置密码             前面创建的用户都处于锁定状态,需要设置密码后才能登陆计算机。             #passwd 用户名             输入密码         1.4删除用户             #userdel 选项 用户名             选项:                 -r; 表示在删除用户的同时,删除其家目录         1.5切换用户             #su 用户名   (不写用户名默认为root)             输入密码    (切换普通用户不需要输入密码;切换root需要输入密码)         提示:所有跟用户操作的命令,(除passwd外,)都需要root才能执行。     2.用户组管理         涉及用户组的添加、删除和修改。组的增加,删除和修改实际上就是对/etc/group文件的更新         文件结构:         用户组名:密码:用户组ID:组内用户名          密码x表示占位符         2.1用户组添加             groupadd    选项    用户组名             选项 -g  用户组id         2.2用户组编辑             groupmod 选项    用户组名             选项:-g 修改用户组id                 -n 修改用户组名         2.3用户组删除             groupdel    用户组名             如果需要删除一个组,但是这个组是某个用户的主组,则不允许删除;             如果确实要删除,需要将用户移走或删除。     3.网络设置         网卡配置路径:/etc/sysconfig/network-scripts/         ifcfg-ens33         ifcfg-lo         3.1重启网卡:service network restart                   /etc/init.d/network restart         3.2创建快捷方式             ln -s 原始文件路径  快捷方式路径         3.3重启单个网卡             停止某个网卡:#ifdown    网卡名             开启某个网卡:#ifup    网卡名     4.ssh服务         ssh(安全外壳协议),该协议有2个常用的作用:远程连接协议,远程文件传输协议。         4.1协议使用端口号:默认 22             如果需要修改,则需要修改配置文件  /etc/ssh/ssh_config                 端口号范围  0~65535         4.2服务启动/停止/重启                 service sshd start/stop/restart         4.3终端工具             PuTTY             Xshell             secureCRT         4.4SSH服务文件传输工具             可视化的界面传输工具  filezilla工具                 通过命令行工具传输    pscp(通过cmd打开) 七、补充     7.1快捷方式         硬连接        ln    原路径    现路径         软连接        ln    -s    原路径    现路径         删除软连接    rm -rf 路径(后面不带/)         ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;     7.2history         查看已经执行过的历史指令,执行已经执行过的指令         ①history    显示所有的历史指令         ②histort 10    显示10个历史指令         ③!编号        执行历史编号的指令     7.3搜索查找命令         ①find             find [搜索范围] [选项]                 find /home hello.txt                 find /opt -user nobody    按文件拥有者查                 find / -size +20M    查大于20M的文件。(+n大于 -n小于 n等于)         ②locate             快速定位文件路径,利用locate数据库实现快速定位。             第一次运行前,必须使用updatedb指令创建locate数据库             locate 搜索文件         ③grep 和 管道符号|             grep,过滤查找;"|"前一个命令的处理结果交给后面的命令处理             grep [选项] 查找内容 源文件                 [选项] -n 显示匹配及行号    -i 忽略字母大小写                 cat hello.txt | grep -ni yes     7.4压缩和解压缩         ①gzip/gunzip(.gz)             gzip 文件        (压缩后,不会保留原文件)             gunzip 文件         ②zip/unzip             zip [选项] XXX.zip 将要压缩的内容    (压缩文件和目录)                 -r 递归压缩目录             unzip [选项]XXX.zip                 -d<目录> 指定压缩后的文件目录         ③tar(打包指令 .tar.gz)             tar [选项] XXX.tar.gz 打包文件        :打包目录,压缩后的格式为 .tar.gz                 -c 产生.tar打包文件                 -v 显示详细信息                 -f 指定压缩后的文件名                 -z 打包同时压缩                 -x 解压.tar文件             压缩    tar -zcvf a.tar.gz a1.txt a2.txt             解压    tar -zxvf a.tar.gz    -C 路径     7.5修改文件所有者         chown 用户名 文件名         修改文件所在组             chgrp 组名 文件名         改变用户所在组             usermod -g 组名 用户名             usermod -d 目录 用户名    (改变该用户登录的初始目录)     7.6定时任务调度(crond)             简单的任务不需要编写脚本,对于复杂的任务需要写脚本实现。         ①crontab进行定时任务的设置             crontab [选项]                 -e 编辑crontab定时任务                 -l 查询crontab任务                 -r 删除当前用户所有的crontab任务             步骤:                 crontab -e                     分 时 日 月 星期                     */1 * * * * ls - l /etc >> /tmp/to.txt                         * 任何时间                             , 代表不连续的时间                             - 代表连续的时间范围                         */n 代表每隔多久     7.7磁盘分区,挂载         7.7.1             ①mbr分区                 最多四个主分区;系统只能安装在主分区;兼容性好             ②gpt分区                 支持无线多个主分区                 最大支持123Eb大容量             挂载(mount)                 将磁盘与Linux的某文件链接在一起。                 lsblk -f  查看系统的分区和挂载的情况         7.7.2如何增加一块硬盘?             虚拟机添加硬盘             分区        fdisk /dev/sdb             格式化        mkfs -t ext4 /dev/sdb1             挂载        mount /dev/sdb1 /home/newdisk             设置可以自动挂载    vim /etc/fstab                                 /dev/sdbl  /home/newdisk  ext4 defaults 0 0     7.8磁盘情况查询         7.8.1查询系统整体磁盘使用情况             df -h         7.8.2查询指定目录的磁盘情况             du -h /目录                 -s 指定目录占用大小汇总                 -h 戴计量单位                 -a 含文件                 -c 列出明细的同时,增加汇总量                 --max-depth= n  子目录深度         7.8.3磁盘情况---工作使用指令             1)查看/home目录下文件的个数                 ls -l /home |grep "^-" | wc -l             2)统计/home及子目录下的所有文件的个数                 ls -lr /home |grep "^-" | wc -l             3)以树状显示目录结构                 tree 八、网络设置     8.1 固定IP设置         etc/sysconfig/network-scripts/ifcfg-ens33             BOOTPROTO=static             ONBOOT=yes             IPADDR=192.168.1.3             NETMASK=255.255.255.0             GATEWAY=192.168.1.111             DNS1=8.8.8.8            //域名解析             DNS2=8.8.4.4     8.2 设置hostname         /etc/hosts                 设置ip 和 hostname 九     1.安装jdk         卸载自带的jdk             rpm -qa | grep jdk        检索jdk             rpm -e java-1.7.0-openjdk* --node    删除         安装             1).安装包上传到linux系统中             2).解压 tar -zxvf jdk* -C /usr/local             3).配置环境变量                 vim /etc/profile                 export JAVA_HOME=/usr/local/jdk*                 export PATH=$PATH:$JAVA_HOME/bin             4).使变量生效                 source /etc/profile     2.传输文件         1)rz        win往linux传文件         2)sz file    linux往win传文件     3.主机名修改         vi /etc/sysconfig/network     4.修改hosts(主机名映射)         /etc/hosts     5.pstree 进程树         -p 加上pid         -u 查看所属用户     6.服务管理(service)         6.1定义             service 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,             比如(mysql,防火墙,sshd),因此,我们又称为守护进程,是linux非常重要的知识点。         6.2 使用             service 服务名 [start|stop|restart|reload|status]             centos7后,使用systemctl         6.3 查看服务名             1)使用setup -> 系统服务 九可以看到             2)ls -l /etc/init.d 服务名称         6.4 服务的运行级别(vi /etc/inittab)             0:系统停机级别,             1:单用户工作状态,root权限,用于系统维护             2:多用户状态(没有NFS),不支持网络             3:完全的多用户状态,登录后进入控制台命令行模式             4:系统为使用,保留             5:X11控制台,登录后进入图形化界面             6:系统正常关闭并重启,默认不能设置,否则不能正常启动。         6.5 开机运行流程             开机->BIOS->/boot->init进程->运行级别->运行级别对应的服务         6.6    不小心将级别设置为0或6 怎么办?             进入单用户模式,进行设置     7. 动态监控进程         top和ps 都用来显示正在执行的进程,top可惜实时更新。             top -d 10  10s刷新一次                  p    一CUP使用率刷新,查看执行的进程                 M    以内存的使用率排序                 N    以PID排序                 q             1)监视特定用户                 top 查看执行的精彩                 u 用户名 按回车             2)终止指定的进程                 top: 查看进程                 输入k 回车,在输入要结束的进程ID号。     8.监控网络端口服务         netstat [选项]             -an    按一定顺序输出             -p    显示那个进程在调用 十、RPM和YUM         1.rpm包的管理             1.1介绍                 一种用于互联网下载包的打包及安装工具,包含在某些Linux分发版中,它生成                 .RPM扩展名的文件。             1.2                 1.2.1 查询已安装的rpm列表                             rpm -qa | grep xx                 1.2.2 查询安装软件的版本等信息                     rpm -qi 软件名                 1.2.3 查看软件包安装到哪里去了                     rpm -ql 软件名称                 1.2.4 查询文件属于哪个软件包                     rpm -qf 文件             1.3 卸载RPm包                 rpm -e RPM包的名称 --nodeps             1.4 安装rpm包                 rpm -ivh RPM包全路径名称                     i= install 安装                     v= verbose 提示                     h= hash 进度条             1.5安装高版本的MySQL                 下载一个rpm,安装上一个配置文件,(包含了mysql的yum下载配置文件)                 rpm -ivh xx.prm                 修改配置文件    /etc/yum.repos.d/mysql-community.repo                     把5.7的 enable=0 改为 enable =1                     把8.0的 enable=1 改为 enable=0                 安装 yum install -y mysql-community-server                     service mysqld start                     service mysqld restart                 查找临时密码    grep 'temporapy password' /var/log/mysqld.log                 mysql -uroot -p                 ALTER USER 'root'@'localhost' IDENTIFIEd BY '123456'                 防火墙 远程操作         2. YUM             2.1 介绍                 Yum是一个Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动                 下载RPM包并且安装,可以自动处理依赖性关系,并且一次性安装所有依赖的软件包             2.2指令                 2.2.1 查询yum服务器是否有需要安装的软件                     yum list | grep xx                 2.2.2 安装                     yum install xx                 2.2.3 卸载                     yum remove xx         3. 防火墙设置             重启:#systemctl restart firewalld.service             启动:# systemctl start  firewalld             查看状态:# systemctl status firewalld 或者 firewall-cmd --state             开机是否启动:# systemctl disable | enable firewalld             禁用:# systemctl stop firewalld             更新防火墙规则:             # firewall-cmd --reload             # firewall-cmd --complete-reload         4. 克隆             克隆一个一模一样的操作系统             克隆步骤                 1) 将克隆前的网卡序列号删除 UUID,HWADDDR                 2) 克隆(关机状态)                 3) 删除网卡eth0,将eth1改为eth0                     /etc/udev/r*/70*net*                 4) 修改网络配置eth0                 5) 重启电脑         5. 集群同步时间             ntpdate 0.aira.pool.ntp.org         6.scp 远程copy文件             scp file mar01:/root             scp -r dir mar01:/root         7. 免密登录             1)yum install -y openssh-clients    安装ssh客户端             2)生成公钥和私钥                 ssh-keygen -t rsa             3)把你的公钥发给别人(一旦其他机器接受了公钥,西祠登录就不需要密码了)                 ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏浪淘沙

Shell学习总结

一、基础指令     1.ls指令         ../    上级目录         ./    当前目录         ls -al     ...

1583
来自专栏Vamei实验室

Linux常用命令

我总结了常用的Linux命令,方便你的Linux使用。下面是格式说明,你现在可以跳过,直到遇到疑问时再来查询。 $ 命令行提示符 粗体表示命令 斜体表示参数 ...

2777
来自专栏Java架构

Java 程序员须知道和掌握的 Linux 命令

1823
来自专栏程序员互动联盟

【编程基础】Linux环境开发效率--那些强大的命令

之前写了一篇关于linux下常用的几个命令,参考Linux入门--提高工作效率的命令。接下来接着介绍一些在linux下做开发经常使用到得命令,其中有打包压缩命令...

3005
来自专栏加米谷大数据

MongoDB 安装和可视化工具

MongoDB 是一款非常热门的NoSQL,面向文档的数据库管理系统,我选择的是 Enterprise Server (MongoDB 3.2.9)版本,安装在...

2301
来自专栏Linux驱动

linux下使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和...

2167
来自专栏Linux驱动

linux下使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和...

2739
来自专栏Python小屋

Python操作Excel文件中多WorkSheet模拟数据库内连接查询

严格意义上来讲,是可以把Excel文件看作数据库的,C#通过OLEDB.net就可以使用SQL语句操作Excel文件中的数据。 本文代码使用Python扩展库o...

3454
来自专栏熊二哥

Linux快速入门03-系统管理

这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用。 ? 在进入bash介绍...

2127
来自专栏程序猿DD

Spring Cloud构建微服务架构:消息驱动的微服务(消费分区)【Dalston版】

通过上一篇《消息驱动的微服务(消费组)》的学习,我们已经能够在多实例环境下,保证同一消息只被一个消费者实例进行接收和处理。但是,对于一些特殊场景,除了要保证单一...

3374

扫码关注云+社区

领取腾讯云代金券