Linux学习笔记

215 阅读9分钟

一、linux系统各目录的作用

  • bin的作用
    存放二进制可执行文件(ls、cat、mkdir)
  • boot的作用
    存放用于系统引导时使用的各种文件
  • dev的作用
    用于存放设备文件
  • etc的作用
    存放系统的配置文件
  • home的作用
    存放所有用户文件的根目录
  • lib的作用
    存放跟文件系统中的程序运行所需要的共享库及内核模块
  • mnt的作用
    系统管理员安装临时文件系统的安装点
  • opt的作用
    额外安装的可选额外用程序包所放置的位置
  • proc的作用
    虚拟文件系统,存放当前内存的映射
  • root的作用
    超级用户目录
  • sbin的作用
    存放二进制可执行文件,只有root才能访问
  • tmp的作用
    用于存放各种临时文件
  • usr的作用
    用于存放系统应用程序,比较重要的目录
  • var的作用
    用于存放运行时需要改变数据的文件

二、重要的目录(可以修改的目录)

  • home
    个人的根目录
  • etc
    配置文件目录
  • usr/loacl
    我们自己安装的程序,必须放置在该目录
  • var
    存放数据库的目录

三、linux的常用命令

  • ls:显示文件和目录结构(ls[-alrtAFR][name...])
    1.-l 列出文件的详细信息
    2.-a 列出当前目录所有文件,包含隐藏文件
  • mkdir:创建目录(mkdir[-[] dirName) 1.-p父目录不存在的情况下先生成父目录
  • cd:切换目录(cd[dirName])
  • touch:生成一个空文件
  • echo:生成一个带内容文件(echo abcd>1.txt,echo 1234 >> 1.txt)
  • cat:显示文件内容(cat[-AbcEnstTuv][-help][-verson]fileName)
  • cp:复制文件或目录(cp[option]source dest)
  • rm:删除文件(rm[options]name...)
    1.-f强制删除文件或目录
    2.同时删除该目录下的所有文件
  • mv:移动文件或目录(mv[options]source dest)
  • find:在文件系统中查找指定的文件
  • grep:在指定的文本文件中查找指定的字符串
  • tree:用于以树状图列出目录的内容
  • pwd:显示当前工作目录
  • ln:建立软连接
  • more:分页显示文本文件内容
  • head:显示文件开头内容
  • tail:显示文件结尾内容
    1.-f追踪输出

四、系统管理命令

  • stat:显示指定文件的相关信息,比ls命令显示内容更多
  • who:显示在线登陆用户
  • hostname:显示主机名称
  • uname:显示系统信息
  • top:显示当前系统中耗费资源最多的进程
  • ps:显示瞬间的进程状态
  • du:显示指定的文件(目录)已使用的磁盘空间的总量
  • df:显示文件系统磁盘空间的使用情况
  • free:显示当前内存和交换空间的使用情况
  • ifconfig:显示网络接口信息
  • ping:测试网络的连通性
  • netstat:显示网路状态信息
  • clear:清屏
  • kill:杀死一个进程

五、开关机命令

  • shutdown(shutdown[-t seconds][-rkhncfF]time[message])
    1. -t seconds设定在几秒钟之后进行关机程序
    2. -k并不会真的关机,只是将警告讯息传送给所有使用者
    3. -r关机后重新开机(重启)
    4. -h关机后停机
    5. -n不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自动关机
    6. -c取消目前已经进行中的关机动作
    7. -f关机时,不做fcsk动作(检查Linux档系统)
    8. -F关机时,强迫进行fsck动作
    9. time设定关机的时间
    10. message传送给所有使用者的警告信息

重启

  • reboot
  • shutdown -r now

关机

  • shutdown -h now

六、压缩和解压缩命令

  • tar(tar[-cxzjvf]压缩打包文档的名称与打包目录)

    1. -c建立一个归档文件的参数指令
    2. -x解开一个归档文件的参数指令
    3. -z是否需要用gzip压缩
    4. -j是否需要用bzip2压缩
    5. -v压缩的过程中显示文件
    6. -f使用档名,在f之后要立即接档名
    7. -tf查看归档文件里面的文件

    例子:

    • 压缩文件夹: tar -zcvf test.tar.gz test\
    • 解压文件夹: tar -zxvf test.tar.gz
  • gzip(gzip[选项]压缩[解压缩]的文件名)

    1. -d解压缩
    2. -l对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字
    3. -v对每一个压缩和解压的文件,显示文件名和压缩比
    4. -用指定的数字num调整压缩的速度,-1或-fast表示最快压缩方法(低压缩num比),-9或-best表示最慢压缩方法(高压缩比)。系统缺省值为6

    说明:

    压缩文件后缀为gz

  • bzip2(bzip2[-cdz])

    1. -d解压缩
    2. -z压缩参数
    3. -用指定的数字num调整压缩的速度,-1或-fast表示最快压缩方法(低压缩num比),-9或-best表示最慢压缩方法(高压缩比)。系统缺省值为6

    说明

    压缩文件后缀为bz2

七、vim

运行模式

  • 编辑模式:等待编辑命令输入
  • 插入模式:编辑模式下,输入i进入插入模式,插入文本信息
  • 命令模式:在编辑模式下,输入:进行命令模式

命令

  • :q直接退出vi
  • :wq保存后退出vi,并可以新建文件
  • :q!强制退出
  • :w file将当前内容保存成某个文件
  • :set number在编辑文件显示行号
  • :set nonumber 在编辑文件不显示行号

八、nano

nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单的多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。

命令

  • 保存:ctrl + o
  • 搜索:ctrl + w
  • 上一页:ctrl + y
  • 下一页:ctrl + v
  • 退出:ctrl + x

九、软件包管理程序

  • apt ubuntu下载的软件包管理程序
    • 常用Apt命令

      <!--1.安装软件包-->
      apt-get install packagename
      <!--2.删除软件包-->
      apt-get remove packagename
      <!--3.更新软件包列表-->
      apt-get update
      <!--4.升级有可用更新的系统(慎用)-->
      apt-get upgrade
      
    • 其它APT命令

      <!--1.搜索-->
      apt-cache search package
      <!--2.获取包信息-->
      apt-cache show package
      <!--3.删除包及配置文件-->
      apt-get remove package --purge
      <!--4.了解使用依赖-->
      apt-cache depends package
      <!--5.查看被那些包依赖-->
      apt-cache rdepends package
      <!-6.安装相关的编译环境-->
      apt-get build-dep package
      <!--7.下载源代码-->
      apt-get source package
      <!--8.清理无用的包-->
      apt-get clean && apt-get autoclean
      <!--9.检查是否有损坏的依赖-->
      apt-get check
      
  • yum centos下载的软件包管理程序

修改数据源(强Ubuntu的数据源修改为国内的数据源)

查看系统版本

lsb_release -a

编辑数据源

vi /etc/apt/sources.list

删除全部内容并修改为

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

更新数据源

apt-get update

十、Linux用户和组管理

使用Root用户

  • 设置Root用户密码
    sudo passwd root
    
  • 设置允许远程登录Root
    nano /etc/ssh/sshd_config
    
    # Authentication:
    LoginGraceTime 120
    # PermitRootLogin without-password //注释此行
    PermitRootLogin yes
    StrictModes yes
    
    重启服务
    service ssh restart
    

十一、文件权限管理

查看文件和目录的权限

  • ls -al 使用ls不带参数只显示文件名称,通过ls -al可以显示文件或者目录的权限信息。
  • ls -l 文件名显示信息包括:文件类型(d目录,-普通文件,l链接文件),文件权限,文件的用户,文件的所属组,文件的大小,文件的创建时间,文件的名称
  • -rw-r--r-- 1 lusifer lusifer 675 Oct 26 17:20 .profile
    1. -rw-r--r--:文档类型及权限
    * -:普通文件(文档类型)
    * rw-:说明用户lusifer有读写权限,没有运行权限(文档所有者权限)
    * r--:表示用户组lusifer只有读权限,没有写和运行的权限(文档所属用户组权限)
    * r--:其它用户只有读权限,没有写权限和运行的权限(其他用户权限)
    
    1. 1:连接数
    2. lusifer(第一个):文档所属用户
    3. lusifer(第二个):文档所属组
    4. 675:文档大小
    5. Oct 26 17:20:文档最后被修改日期
    6. -profile:文档名称

文档类型

  • d表示目录
  • l表示软连接
  • -表示文件
  • c表示串行端口字符设备文件
  • b表示可供存储的块设备文件
  • 余下的字符3个字符为一组。r只读,w科协,x可执行,-表示无此权限

连接数

指有多少个文件指向同一个索引节点。

更改操作权限

  • chown
    是change owner的意思,主要作用就是改变文件或者目录所有者,所有者包含用户和用户组。

    1. chown [-R] 用户名称 文件或者目录
    2. chown [-R] 用户名称 用户组名称 文件或者目录
      -R:进行地柜是的权限更改,将目录下的所有文件,子目录更新为指定用户组权限。
  • chmod 改变访问权限

    1. chmod [who] [+ | - | =] [mode] 文件名

    who

    表示操作对象可以是一下字母的一个或者组合

    • u:用户user
    • g:用户组group
    • o:表示其它用户
    • a:表示所有用户是系统默认的

    操作符号

    • +:表示添加某个权限
    • -:表示取消某个权限
    • =:赋予给定的权限,取消文档以前的所有权限

    mode

    表示可执行的权限,可以是r、w、x

    文件名

    文件名可以是空格分开的文件列表

数字设定法

  • 0表示没有任何权限
  • 1表示有可执行权限 = x
  • 2表示有可写权限 = w
  • 4表示有可读权限 = r

十二、Linux安装Java

解压缩并移动到指定目录

  • 解压缩
tar -zxvf jdk-8u152-linux-x64.tar.gz
  • 创建目录
mkdir -p /usr/local/java
  • 移动安装包
mv jdk1.8.0_152/ /usr/local/java/
  • 设置所有者
chown -R root:root /usr/local/java/

配置环境变量

  1. 配置系统环境变量
nano /etc/environment
  • 添加如下语句
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export JAVA_HOME=/usr/local/java/jdk1.8.0_251
export JRE_HOME=/usr/local/java/jdk1.8.0_251/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  1. 配置用户环境变量
nano /etx/profile
  • 添加如下语句
if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

export JAVA_HOME=/usr/local/java/jre1.8.0_231
export JRE_HOME=/usr/local/java/jdk1.8.0_231/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVE_HOME/jre/bin:$PATH:$HOME/bin

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
  • 使用户环境变量生效
source /etc/profile
  • 为其他用户更新用户环境变量
su lusifer
source /etc/profile

十三、Linux安装mysql-server

更新数据源

apt-get update

安装MySQL

系统将提示您在安装过程中创建root密码。选择一个安全的密码,并确保你记住它,因为你以后需要它。接下来,我们将完成MySQL的配置。

apt-get install mysql-server

配置

运行安全脚本

mysql_secure_installation

配置远程访问

  • 修改配置文件
nano /etc/mysql/mysql.conf.d/mysqld.cnf
  • 注释掉(语句前面加上#即可)
bind-address = 127.0.0.1
  • 重启MySQL
service mysql restart
  • 登陆MySQL
mysql -u root -p
  • 授权root用户允许所有人连接
grant all privileges on *.* to 'root'@'%' identified by '你的 mysql root 账户密码';