zoukankan      html  css  js  c++  java
  • Linux笔记

    基本命令

    目录结构

    远程软件(附Xshell和Xftp)

    vi编辑器

    关机、重启

    远程登录注销

    用户、组管理

    运行级别

    隐藏文件

    文件和目录的权限

    rwx权限

    修改文件或目录权限

    定时任务

    磁盘分区和挂载

    统计命令

    树状形式显示目录

    修改ip地址

    进程管理

    服务

    rpm和yum

    配置环境变量

    防火墙

    mysql安装和配置

    基本命令

    • cd 切换目录

    • ls和ll

      • ls显示当前目录下的文件和文件夹名称
      • ll显示详细信息
    • pwd 显示当前目录路径

    • man 命令(用于查看命令)

    • help 命令(用于查看命令)

    • cd ~ 回到自己的家目录

    • mkdir 创建目录

      • 创建多级目录:mkdir -p /home/zrk/data
    • rm 删除目录(如果目录下不为空,则无法删除)

      • rm -rf 目录名称(强制删除)
        • -r 递规删除
        • -f 强制删除不提示
    • touch 创建新文件(可以创建多文件,以空格隔开)

    • 拷贝:cp 源文件 目标路径

      • 拷贝文件夹:cp -r 源文件夹 目标文件路径
        • 如果是覆盖操作,使用 cp 系统不会进行提示
    • mv(移动,可用于重命名)

      • mv 原文件 新文件
    • cat (查看文件,不能修改文件)

      • cat -n 文件名(-n显示行号)
      • cat 文件名 | more (分页显示,空格显示下一页)
    • more 分屏查看

      • 显示下一页:空格
      • 下翻一行:Enter
      • 离开:q
      • 向下滚动一屏:Ctrl+F
      • 返回上一屏:Ctrl+B
      • 输出当前行号:=
      • 输出文件名和当前行号::f
    • less 分屏查看,适合查看大文件(不全部加载)

      • 向下翻页:空格
      • pagedown、pageup键
      • 查询:/关键字(n向下查找,N向上查找)
    • > 重定向指令 和 >> 追加指令

      • ls > 文件名(将ls输出的内容放到文件中)
    • echo 输出内容到控制台

      • echo "字符串"
      • echo $PATH(输出环境变量)
    • head 显示文本前几行(默认前十行)

      • head -n 5 文件(显示前五行)
    • tail -n 5 (显示后五行)

      • tail -f 文件(实时显示文件变化)
    • ln 软链接(快捷方式)

      • ln -s 源文件 链接名称
    • history 查看已经执行过的指令

      • history 5 (显示最近5条指令)
      • !5 (执行编号为5的指令)
    • 时间日期类

      • date 显示当前时间
      • date "+%Y-%m-%d %H:%M%%S" (2019-05-30 14:47:05)
      • date -s "时间" (设置当前系统时间)
    • cal日历指令

      • cal 年 (显示一年的日历)
    • 搜索指令

      • find
        • 通过文件名:find 路径(查找范围) -name 文件名
        • 通过文件的拥有者:find 路径 -user 用户名
        • 通过文件大小:find 路径 -size +4M(+大于,-小于)
      • locate,可以快速定位
        • 需要先建立locate数据库:updatedb
        • locate 文件名
          • grep
        • cat 文件名 | grep -n 关键字 (显示匹配行和行号)
        • cat 文件名 | grep -i 关键字 (忽略大小写)
    • 管道符号 |(将左侧的输出传递给右侧的命令进行处理)

    • 压缩和解压缩

      • gzip/gunzip 名称
      • zip/unzip
        • zip -r 压缩文件名 文件夹路径(递规压缩文件夹)
        • unzip -d 解压路径 压缩文件 (解压缩到指定文件夹)
      • tar
        • -c 产生.tar打包文件
        • -v 打包时显示详细信息
        • -f 指定解压后的文件名
        • -z 打包同时压缩
        • -x 解压.tar文件
        • tar -zcvf 压缩文件名 文件1 文件2 (一般的压缩组合指令)
        • tar -zxvf 要解压的文件 (一般的解压组合指令)
        • 解压到指定目录(目录需要存在):tar -zxvf 要解压的文件 -C 路径

    目录结构

    • 根目录 /
      • /bin 存放常用的命令
      • /sbin 系统管理员使用的管理程序
      • /home 创建用户时会在此新建属于自己的目录
      • /root 系统管理员的目录
      • /lib 系统开机所需最基本的动态连接共享库,几乎所有的程序都会用到
      • /lost+found 一般为空,系统非法关机时存放一些文件
      • /etc 系统管理所需的配置文件和子目录
      • /usr 存放用户的应用程序等
      • /boot 引动系统启动的核心文件
      • /proc 虚拟目录,系统内存的映射,可以获取系统信息
      • /srv 服务启动后需要的数据
      • /sys 该文件系统是内核设备树的一个直观反映
      • /tmp 存放临时文件
      • /dev 将所有硬件用文件的形式存储
      • /media 设备挂载目录
      • /mnt 临时挂载别的文件系统
      • /opt 安装软件存放目录
      • /usr/local 软件安装后的目录
      • /var 存放不断扩充的文件,即经常被修改的文件放在此目录,包括日志文件
      • /selinux 安全子系统,可以控制程序只能访问特定文件

    远程软件

    vi(Linux内置)和vim(增强版)编辑器

    • 三种模式:正常模式、插入模式(编辑模式)、命令行模式

      • 打开后先进入正常模式,可以使用快捷键(按Esc回到正常模式)
      • 按下i进入插入模式,进行文本修改
      • 按下 : 进入命令行模式,提供相关指令,如:保存退出(:wq)
    • 快捷键

      • yy 复制当前行,5yy 复制当前行下向下的5行
      • p 粘贴
      • dd 删除当前行,5dd 删除当前行下向下的5行
      • 在文本中查找,输入 /关键字,在输入n,即查找下一个
      • :set nu 显示行号,:set nonu 不显示行号
      • G 到文本最后一行,gg 到文本第一行
      • 行号 G,到达指定行号
      • u 撤销

    关机、重启(之前执行 sync 把内存数据同步到磁盘,防止数据丢失)

    • shutdown

      • shutdown -h now 立即关机
      • shutdown -h 1 1分钟后关机
      • shutdown -r now 重启
    • halt 关机

    • reboot 重启

    远程登录注销

    • logout

    用户管理、用户组

    • root管理员 属于root组,一个用户至少属于一个组

    • 添加用户:useradd [选项] 用户名

      • 当创建用户时,没有指定组将创建和用户同名的组
      • 指定用户组 useradd -g 组名 用户名
      • 用户创建时系统自动在home目录创建同名文件夹
        • 如果不想系统创建,也可以指定创建的文件夹名 useradd -d 文件夹路径 用户名
    • 设置或修改密码:passwd 用户名,然后输入密码

    • 删除用户:userdel 用户名

      • 不带参数删除用户,保留用户家目录
      • userdel -r 用户名,删除用户及其家目录
    • 查询用户信息:id 用户名

      • 查询出uid(用户id)、gid(组id)、组(组名称)
    • 切换用户:su - 用户名

      • 从高级别用户到低级别用户时不需要输入密码,输入exit会回到高级别用户
    • 查询当前用户:whoami

    • 添加用户组 groupadd 组名

    • 修改用户所在组

      • usermod -g 组名 用户名
        • 修改用户的主组,之前的主组变为附属组
      • usermod -G 组1,组2 用户名
        • 替换用户的附属组,如果附属组和主组相同,表示只有主组
      • usermod -a -G 组1,组2 用户名
        • 添加用户的附属组
    • 删除用户组 groupdel 组名

    • 用户配置文件:/etc/passwd

      • 部分行的含义:用户名:口令:用户id:组id:注释描述信息:主目录:shell
    • 组信息文件:/etc/group

      • 部分行含义:组名:口令:组id:组内用户列表(隐藏)
    • 口令配置文件(密码和登录信息,加密文件):/etc/shadow

      • 部分行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
    • chown 修改文件所有者

      • chown 用户名 文件名
    • chgrp修改文件所在组

      • chgrp 组名 文件名
    • chown -R 人:组 目录 (递规修改目录和文件的所有者和组)

    Linux七个运行级别

    • 0:关机
    • 1:单用户[找回丢失密码]
    • 2:多用户,无网络
    • 3:多用户,有网络
    • 4:系统未使用,保留
    • 5:图形界面
    • 6:重启
    • 配置文件路径:/etc/inittab
    • 指定级别:init 级别

    隐藏文件(以.开头的文件)

    文件和目录的权限

    (例如/home下的文件) -rw-r--r--. 1 zrk NetCore 120 2月 28 12:12 zrk

    • 0:- 普通文件,d 文件夹,l 软链接,c 设备(键盘或鼠标),b 块文件(硬盘)
    • 1-3:文件所有者权限
    • 4-6:文件所在组的用户权限
    • 7-9:文件其他组的用户权限
    • 如果是文件,1表示硬链接;如果是目录,表示目录下的子目录个数
    • 表示拥有者
    • 表示所属组
    • 表示文件大小
    • 文件的修改时间
    • 名称

    rwx权限,读、写、可执行/可进入

    • 对文件有写权限,表示可以修改,但是删除,需要有目录的写权限
    • r=4,w=2,x=1
    • rwx(有权限表示1,没有权限表示0)只有r就是100(二进制)=4,只有w就是010(二进制)=2,只有x就是001(二进制)=1

    修改文件或目录权限chmod

    • chmod u=rwx,g=rx,o=x 名称
    • chmod o+w 名称 (给其他人加写权限)
    • chmod a-r 名称 (给全部人减少读权限)
    • chmod 777 名称 (通过数字给权限,给全部人所有权限)

    定时任务 crontab

    • -e 编辑定时任务,例如(每分钟在result中写入ll命令的结果):*/1 * * * * ll /etc/ >> /tmp/result.txt

      • 第一个*:分钟(0-59)
      • 第二个*:小时(0-23)
      • 第三个*:天(1-31)
      • 第四个*:月(1-12)
      • 第五个*:星期(0-7,0和7都表示星期天)
    • 特殊符号说明

      • *代表任何时间,每秒、每分、每小时...
      • ,表示不连续的时间
      • -表示范围
      • /表示,左边表示开始,右边表示步长
    • -l 列出当前所有定时任务

    • -r 终止所有任务

    • service crond restart 重启任务

    磁盘分区和挂载 crontab

    • 分区方式

      • mbr分区
        • 最多支持4个主分区
        • 系统只能安装在主分区
        • 扩展分区要占用一个主分区
        • 最大只支持2TB,但是兼容性好
      • gtp分区
        • 不限主分区(但是操作系统有可能限制)
        • 最大支持18EB(EB=1024PB,PB=1024TB)
        • win7 64位后支持gtp
    • 硬盘:IDE(old)、SCSI(性能好)

    • 驱动器标识符:例如hdx、sdx

      • hd表示IDE设备类型,sd表示SCSI
      • x为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘)
      • ~表示分区,前1-4个分区是主分区或扩展分区,从5开始是逻辑分区
    • 查看系统分区和挂载的命令 lsblk [-f]

    • 挂载点实际上就是linux中的磁盘文件系统的入口目录

    • 实例:增加一块硬盘

      • 虚拟机添加硬盘:设置=>硬盘=>添加
      • 分区
        • fdisk /dev/磁盘(sdb)
        • m(显示帮助信息)
      • 格式化
        • mkfs -t ext4 /dev/分区(sdb1)
      • 挂载(下面只是临时挂载,重启后就消失)
        • mount /dev/分区 /home/文件目录(卸载 umount 分区或文件目录)
      • 设置可以自动挂载
        • etc/fstab (记录分区和挂载点信息),修改此文件会自动挂载
          • /dev/分区 /home/文件目录 ext4 defaults 0 0
    • 磁盘使用情况查询

      • df -h
      • 查询目录占用磁盘情况:du -ach --max-depth=1 目录
        • -s 指定目录占用大小
        • -h 带计量单位
        • -a 含文件
        • --max-depth=1 子目录深度
        • -c 列出明细,并增加汇总值

    统计命令wc

    • -c 统计字节数
    • -l 统计行数
    • -m 统计字符数
    • -L 打印最长行的长度
    • 实例:
      • 统计目录下的文件个数:ll 目录 | grep "^-" | wc -l
      • 统计目录下的文件夹个数:ll 目录 | grep "^d" | wc -l

    tree命令,以树状形式显示目录

    修改ip地址

    • 指定固定ip地址
      • /etc/sysconfig/network-scripts/ifcfg-eth0
             ONBOOT=yes(启用)
             BOOTPROTO=static(以静态的方式获取ip)
             IPADDR=192.168.1.110(指定ip)
             GETWAY=关
             DNS1=dns和网关保持一致即可
      

    进程管理

    • ps 查看系统中的进程

      • -a 显示所有
      • -u 以用户的格式显示
      • -x 显示后台进程运行的参数
      • -ef 会显示进程的父进程
    • pstree -p 以树状的形式显示进程和pid

    • kill和killall 终止进程

      • kill [选项] 进程号
        • -9 (强制终止)
      • killall 进程名称(支持通配符)
    • top 动态监控进程

      • -d 数字,刷新时间
      • -i 不显示任何闲置或僵死进程
      • -p 监视某个进程状态
      • P 按cpu使用率排序(默认)
      • M 按内存使用排序
      • N 按PID排序
      • q 退出top
      • k 结束进程

    服务(service)

    • service 服务名 [start|stop|restart|reload|status](临时生效)

      • centos7.0后使用systemctl
    • 查看防火墙状态

      • service iptables或firewalld(默认防火墙) status
    • setup 查看所有服务(或者在/etc/init.d/)

    • chkconfig可以给服务的各个运行级别设置启动和关闭(永久生效)

      • chkconfig --level 运行级别 服务名 on/off
      • chkconfig --list 列表显示服务
    • 查看网络情况:netstat -anp

      • -an 按一定顺序排序输出
      • -p 显示哪个进程在调用

    rpm和yum

    • rpm包(相当于windows中的安装程序)

      • -qa 查询所有已安装的rpm包
      • -qf 路径(查询文件所属的软件包)
      • -qi 软件包(查询详细信息)
      • -e 卸载rpm包(如果有依赖提示不让删,使用 -e --nodeps 包名)
      • -ivh rpm包路径
        • -i install
        • -v 提示
        • -h 进度条
    • yum 前端软件包管理,基于rpm,用的比较多,自动安装所有依赖包

      • install 安装
      • update 更新
      • check-update 检查可更新程序
      • info 显示安装包信息
      • list 查询服务器有没有所需的安装包(yum list | grep 软件)
      • remove 删除
      • deplist 查看程序包依赖

    配置环境变量

    • 文件路径:/etc/profile

    • 以java环境变量为例

      • 在文件末尾添加:
      JAVA_HOME=路径
      PATH=路径:$PATH(冒号代表连接符)
      export JAVA_HOME PATH
      

    防火墙(禁用firewall,使用iptables)

    • 关闭firewall:systemctl stop firewalld.service

    • 禁止firewall开机启动:systemctl disable firewalld.service

    • 安装iptables防火墙:yum install iptables-services

    • 编辑防火墙配置文件:vi /etc/sysconfig/iptables

      • 以3306端口为例:-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    • 重启防火墙使配置生效:systemctl restart iptables.service

    • 设置防火墙开机启动:systemctl enable iptables.service

    mysql安装和配置(以5.7为例,初始化方式和老版本不同)

    • 查看是否已有mysql,有则需要卸载:pm -qa | grep mysql

    • 下载解压到/usr/local/mysql

    • 添加mysql组和mysql用户

    • 修改 /usr/local/mysql的组和用户权限为mysql:chown -R mysql:mysql /usr/local/mysql

    • 初始化数据库:/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

      • --user 启动mysql的用户
      • --basedir mysql安装目录
      • --datadir mysql数据仓库目录
      [root@z mysql]# /usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
      
      2019-05-31T10:21:06.750933Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
      2019-05-31T10:21:07.644227Z 0 [Warning] InnoDB: New log files created, LSN=45790
      2019-05-31T10:21:07.764158Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
      2019-05-31T10:21:07.777875Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: cdcb1ce4-838d-11e9-a1bd-000c29256118.
      2019-05-31T10:21:07.782886Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
      2019-05-31T10:21:07.784521Z 1 [Note] A temporary password is generated for root@localhost: pNRthyw-c31r
      
      
      • 初始化后打印的最后一行,也和之前版本不同,它给了root一个初始密码,后面要登录的时候要用到这个密码。
    • 将mysql/目录下除了data/目录的所有文件,改回root用户所有:chown -R root /usr/local/mysql

    • mysql用户只需作为data目录下所有文件的所有者:chown -R mysql /usr/local/mysql/data

    • 复制启动文件:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    • 增加mysqld服务控制脚本执行权限:chmod 755 /etc/init.d/mysqld

    • 将mysqld服务加入到系统服务:chkconfig --add mysqld

    • 检查mysqld服务是否已经生效:chkconfig --list mysqld

    • 修改启动脚本:vi /etc/init.d/mysqld

          basedir=/usr/local/mysql/
          datadir=/usr/local/mysql/data
          port=3306
      
    • 启动服务:service mysqld start

    • 加入环境变量,可以在任何地方用mysql命令,vi /etc/profile

    PATH=/usr/local/mysql/bin:$PATH
    export PATH
    
    • 刷新立即生效:source /etc/profile

    • mysql -u root -p

      • 输入之前的密码
    • 修改密码:set password=password('新密码');

    • 开放3306端口

  • 相关阅读:
    $('div div')和$('div >div')的区别
    [转]35岁前程序员要规划好的四件事,健康居首位
    程序员应该改变的20个思维习惯
    JQuery总结
    Javahome 与 Path 与ClassPath的含义
    jsp 位置
    访问 IIS 元数据库失败 权限问题
    xp添加文件夹写入权限
    dataset 对象
    js的一些代码
  • 原文地址:https://www.cnblogs.com/tianyaguoke/p/10969179.html
Copyright © 2011-2022 走看看