Linux的创建和基本命令使用

linux简介

Linux是一种自由和开放源码的操作系统 Linux出现于1991年,是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成 市场上存在着许多不同的Linux发行版本 Linux可安装在各种计算机硬件设备中,比如笔记本电脑、台式计算机、手机、平板电脑、路由器等。 Linux系统最擅长的领域是作服务器操作系统和嵌入式操作系统

  • 稳定
  • 轻量级
  • 开源,支持各种自定义扩展
  • 发行版本很多,但是一般使用RedHat和CentOS,RedHat企业版linux 和CentOS差别不大,CentOS是基于Red Hat Linux 企业版开发的一个社区版本,可免费自由使用;而且CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务!

 

linux系统安装

  • 首先,到相应发行版的官网下载linux安装光盘镜像(按硬件平台选择相应版本)
  • 在物理机或者虚拟机上安装linux系统
    • 在物理机上安装linux系统跟安装windows系统的步骤类似
    • 而在虚拟机上则支持“傻瓜式”安装,几乎全自动
  • 虚拟机:用软件模拟出来的虚拟计算机
  • 虚拟机软件:用来创建和运行虚拟计算机的一个软件,比如Vmware或VirtualBox
  • 安装步骤:
    • 在虚拟机上的安装步骤:
      • 1.启动Vmware
      • 2.点击创建虚拟机
      • 3选择典型
      • 4.选择linux操作系统“安装光盘”的镜像文件
      • 5.为即将安装的linux系统预设一个用户和登陆密码
      • 6.为新创建的这台虚拟机设置名称及数据存放路径
      • 7.设置分配给虚拟机的最大磁盘空间,一般分配20G硬盘,2g内存
      • 8.点击完成开始虚拟机创建并启动
      • 9.等待安装完成
      •  

 

 

 

 

网络配置管理

网卡地址配置

  • 检查网络连通性
    • pingwww.baidu.com/192.168.xxx.xxx
  • 查看ip地址
    • ifconfig查看所有网络设备的地址信息 ifconfig eth0查看指定的eth0以太网卡的地址信息
  • 修改ip地址
    • ifconfig eth0 192.168.1.8 netmask 255.255.255.0
  • 通过setup修改网络配置
    • 在root权限下执行setup指令可以打开一个带菜单的伪图形界面来修改网络配置
  • 通过配置文件修改ip地址
    • nano /etc/sysconfig/network-scripts/ifcfg-eth0 修改该配置文件即可改ip地址

linux系统远程登陆

  • 服务器通常都是放置在专用的机房中管理,因而,直接在服务器上操作很不方便,生产实践中都是通过远程登录的方式来操作服务器
  • 远程登录linux服务器需要客户端软件
    • 常用的远程登录客户端软件有以下3款:
      • Xshell(推荐使用)
      • SecureCRT
      • Putty
    • 这些软件都是基于一种通用的安全通信协议进行远程登录:SSH协议(安全外壳协议)
  • 远程登陆linux服务器步骤
    • 获知目标linux服务器的ip地址
    • 客户端跟目标服务器两者能联网
    • 需要一款支持SSH协议的客户端软件
    • 服务器必须开启SSH服务
    • 启动SSH客户端软件,填写目标服务器地址信息
  • 连接成功后效果

    • root是当前登陆者的用户名
    • localhost是本服务器的主机名
    • ~是表示登陆者所处的当前工作目录为用户的主目录/home/does

主机名配置管理

  • 查看主机名
    • 在shell提示符的@后有提示(这是因为环境变量配置才有显示)
    • 使用hostname指令打印主机名
  • 修改主机名
    • nano /etc/sysconfig/network修改其中的hostname配置项
    • HOSTNAME=hostnamenew(新的主机名)
      • 注意:修改完成以后,需要重启服务器才能生效
      • 要想立即生效,可以执行指令hostname hostnamenew,然后注销重新登录

主机名-ip映射

  • 配置DNS
    • 公网上有现成的DNS服务器,但是不能解析内网的私有域名(主机名),因而需要配置公司内部的私有DNS服务器,成本相对较高,实现起来比较麻烦
  • 服务器本地映射
    • 服务器网络寻址时默认是现在本地的hosts文件中查找IP映射,通过修改hosts来映射局域网内部的主机名非常方便  实现方法,将局域网内的每一台主机的"hostnameip"写入每一台主机的hosts文件中
    • nano /etc/hosts
      • 192.168.xxx.xxxservername

网络服务启动与停止

  • 列出系统所有应用服务状态
    • service --status-all
  • 查看指定服务运行状态:
    • service servicename status
  • 启动服务:
    • service servicename start
  • 停止服务:
    • service servicename stop
  • 列出所有服务的随机自起配置:
    • chkconfig --list
  • 关闭服务的随机自起:
    • chkconfig servicename off
  • 开启服务的随机自起:
    • chkconfig servicename on
  • 常用示例:
    • 重启网络服务 service network restart
    • 停止httpd service httpd stop
    • 启动 httpd service httpd start
    • 关闭防火墙服务 service iptables stop
    • 关闭防火墙自动启动 chkconfig iptables off
  • 查看网络连接信息
    • 指令:netstat net 网络 stat status状态
      • 常用示例:
        • netstat -natp
        • netstat -nltp
        • netstat -naup
      • 参数解释:
        • -a 显示所有连接和监听端口 all -l 只显示监听进程listen
        • -t (tcp)仅显示tcp相关选项
        • -u (udp)仅显示udp相关选项
        • -n 拒绝显示别名,能显示数字的全部转化成数字。
        • -p 显示建立相关链接的程序名

文件系统常用管理操作命令

  • Linux系统文件系统目录结构

 

  • 主要目录:
    • bin (binaries)存放二进制可执行文件
    • sbin (super user binaries)存放二进制可执行文件,只有root才能访问
    • etc (etcetera)存放系统配置文件
    • usr (unix shared resources)用于存放共享的系统资源
    • home 存放用户文件的根目录
    • root 超级用户目录
    • dev (devices)用于存放设备文件
    • lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
    • mnt (mount)系统管理员安装临时文件系统的安装点
    • boot 存放用于系统引导时使用的各种文件
    • tmp (temporary)用于存放各种临时文件
    • var (variable)用于存放运行时需要改变数据的文件

基本命令

tips:输入命令的时候多用tab键来补全,一方面可以加快速度,另一方面减少错误

  • 1.文件夹操作
    • ls /path/查看目录信息
    • ls -l /path/ 查看详细信息,等价于 ll
    • ls a /path/ 查看隐藏文件
    • pwd 查看当前所处目录的绝对路径
    • cd /path 切换目录 (cd /) ,如果不带参数则切换到用户主目录
    • mkdir ./test 创建文件夹 )
    • mkdir -p ./a/b/c 如果要创建的文件夹的父目录不存在,则自动创建
    • rmdir 删除空文件夹 (只能删除空文件夹)
    • rm -r /a/b (删除非空文件夹) rm filename (rm 删除文件 rm -r 删除文件夹 rm -rf 强制删除文件或文件夹)
  • 2.创建文件(常见三种方式)
    • touch a.avi 创建一个空文件  echo "does is so cool" > does.txt把“>”左边的输出放到右边的文件里去
    • nano aaa.txt 用文本编辑器编辑一个文件并且保存
  • 3.移动文件、修改文件名,删除文件和文件夹,复制文件夹
    • mv a/wenjian1.txt b/file1.txt (移动文件的同时还修改了文件名)
    • rm: remove  删除
       默认rm只能删除文件,并不能删除文件夹
       删除文件夹: rm  -r xxxx
       rm -f  force 
       rm -rf xxx  生产上一定要慎用,很容易导致血案的发生 
    • cp: copy  
          cp a.txt a_cp.txt 是更改文件的时间戳的
          cp -p a.txt a_cp2.txt
          拷贝多个文件:cp a.txt b.txt 1
          拷贝目录:cp sub_dir 1   是不成功的  cp -r sub_dir 1    -r表示递归操作
  • 5.查看文本文件内容
    • cat log.a.txt 一次性显示整个文件内容
    • more log.a.txt 可以分页看(翻页:空格,往回翻:b ,退出: q)
    • less log.a.txt 不仅可以分页,还可以方便地搜索,回翻等操作(翻页:空格,往回翻:↑,往下翻:↓,退出:q或者 Ctrl+C,小写gg连按两次,跳到最前,大写GG跳到最后)
    • tail -10 a.txt 查看文件的尾部的10行
    • tail -f a.txt 实时刷新显示文件的尾部,这条命令对于观察调试程序的运行非常重要
    • head -20 log.a.txt 查看文件的头部20行

文件归档压缩

  • 1.文件归档
    • tar -cvf testdir.tar testdir/
      • 参数释义:c表示创建一个打包文档v表示显示打包的进度f表示要打成的tar包的名字
    • tar xvf testdir.tar
      • 参数x:表示从一个现存的tar文件中进行解包操作

2.文件压缩

  • gzip testdir.tar 对tar包进行压缩 gzip –d testdir.tar.gz对tar包进行解压
  • 3.归档并压缩/解压
    • tar -zcvf testdir.tar.gz testdir/
    • tar -zxvf testdir.tar.gz -C Downloads/ 解压到指定的Downloads目录下
    • zip test.txt.zip test.txt
    • unzip test.txt.zip

文件权限管理

  • 1.linux系统中对文件权限的描述机制
    • r表示读
    • w表示写
    • x表示执行
  1.  
  1. w x
  1.  
  1. - x
  •  
  •  
  •  
  •  
  •  
  1.  
  1.  
  1.  
  •  
  1.  
  1.  
  1.  
  • 还可以这样去理解,r的数值是4,w是2,x是1,那么可以衍生出0 1 2 3 4 5 6 7 这几种组合
  • 思考:
    • 777(rwxrwxrwx)666(rw-rw-rw-)567(r-xrw-rwx)456分别对应什么权限?
  • 2.修改权限
    • chmod u+rwx file给file文件添加或取消权限
      • +号表示添加
      • -号表示去除
      • u表示所属用户
      • g表示所属组
      • o代表其他人
      • a代表所有
    • 也可以使用数值来进行赋权
      • chmod 567 file
        • 5--->101--->4+1--->r-x
        • 6--->110--->4+2--->rw-
        • 7--->111--->4+2+1--->rwx
  • 3.通过实例理解rwx三种权限的含义
    • r读权限
      • 对文件:是否可以读取文件的内容cat
      • 对文件夹:是否可以列出文件夹内的子节点信息ls
    • w写权限
      • 对文件:是否可以修改文件的内容>> nano
      • 对文件夹:是否可以更改文件夹的子节点 mkdir
    • x可执行权限
      • 对文件:是否可当做一个命令或者程序来执行
      • 对文件夹:是否可cd进入

用户管理

添加用户

  • 示例:useradd xxx
  • 必须设置密码才能正常登陆 passwd xxx

删除用户

  • userdel test ----这样删除的时候,用户的主目录会被保留
  • userdel -r test -----删除用户的同时删除用户的主目录

修改用户

  • 指令usermod
  • 参数:
    • -l(login)修改用户名usermod -l a b(将b改成a) -g(group)修改用户组usermod -g root xxx 将xxx的组改为root组

用户组管理

  • 创建用户组
    • groupadd xxx
  • 删除用户组
    • groupdel xxx
  • 修改用户组属性
    • groupmod -n(name)newname groupname
  • 查看用户所属的组
    • groups xxx

常用系统管理指令

进程管理

  • top 查看实时刷新的系统进程信息
  • ps -ef 查看系统中当前瞬间的进程信息快照
  • ps -ef | grep myshell.sh 搜索myshell进程的信息
  • kill -9 pid杀掉进程(-9 表示强制杀死)

sudo权限配置

root用户因为具有不受限制的权限,使用不慎可能对系统造成不可估量的损害,因而,生产实际中,轻易不要使用su去切换到root的身份

如果普通用户需要使用一些系统级管理命令,可以使用sudo来执行,比如 sudo nano /etc/profile

 给普通用户赋予sudo权限,配置方法如下:

例如,要给test用户赋予sudo任何指令(或某条指定的命令)的权利,则编辑sudoers文件 nano /etc/sudoers

在其中加入需要赋予权限的用户

……
root    ALL=(ALL)       ALL
#让test用户可以用root身份执行所有指令
test  ALL=(ALL)       ALL
……

  • 检查是否生效
    • sudo -lU test

修改系统默认的启动级别

  • 指令:nano /etc/inittab

# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

  • 3表示全功能状态的字符界面
  • 5状态表示图形界面
  • 一般设置为3,如果在3的模式下,需要使用图形界面,可以使用命令startx

其他指令

  • grep
    • grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本内容,并把匹配的行打印出来
    • 示例:
      • grep ‘EOF’ ./*
      • grep -c ‘EOF’ ./* 显示匹配到的数量
      • grep -r ‘EOF’ ./* 指定对子目录也进行搜索
      • grep -l ‘EOF’ ./* 只显示命中的文件名
      • grep -n ‘EOF’ ./* 显示命中的行号
      • grep -lr ‘EOF’ ./* 对子目录也进行搜索并且显示命中的文件名
      • grep -ld skip ‘EOF’ ./* 显示指定不要搜索子文件夹
    • 参数含义:
      • -r 递归搜索子目录
      • -l 只列出有匹配行的文件名
      • -n 列出匹配行的行号
      • -d skip 不搜索子文件夹
    • 常用grep跟其他命令组合使用来查找我们关心的信息
    • 示例:
      • service --status-all | grep 'httpd'
      • netstat -nltp | grep '22'
  • find
    • 强大的查找工具,可根据文件名,文件所有者,创建时间,文件大小,文件类型,文件权限信息等各种条件来查找匹配的文件,功能非常强大,以下列出的是常用的几种示例:
    • 按照文件名称查找(可支持正则表达式)
      • find ./ -name '*.txt'
      • find ./ -name ‘install*’
  • wc
    • 统计文本信息(行数,词数,字符数)
    • wc -c/w/l
  • date
    • 查看系统日期时间
  • echo
    • 输出字符串或变量的值
  • whoami
    • 查询当前登陆者的身份
  • which
    • 查询指定命令的$PATH路径

猜你喜欢

转载自blog.csdn.net/GoldWashing/article/details/81501550
今日推荐