zoukankan      html  css  js  c++  java
  • Linux基础

    Linux的前世今生

    Linux内核

    是Linux系统的基本组件

    Linux 的发行版

    Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

    Linux两大阵营

    • Redhat系列 redhat,suse,CentOS,Fedora等

    • Debian系列 debian,ubuntu等

    帮助命令

    man命令

    查询命令的说明

    info命令

    更加详细的说明

    which命令

    查看文件所在目录

    whereis命令

    查看文件路径

    文件及目录管理

    文件管理不外乎文件或目录的创建、删除、查询、移动,文件查询是重点

    创建和删除

    • 创建文本:touch

      如:touch 1.txt
      
    • 创建目录:mkdir

    • 删除目录:rm -rf 目录

      ![](F:笔记博客文章图片 m -rf.jpg)

    • 删除文件:rm

    • 移动目录:mv

    • 复制:cp

    • 复制目录:cp -r

      ![](F:笔记博客文章图片cp -r.jpg)

    目录切换

    • 找到文件/目录位置:cd
    • 切换到上一个工作目录: cd -
    • 进入当前目录:cd .
    • 进入上一级目录:cd ..
    • 切换到home目录: cd或cd ~
    • 显示当前路径: pwd

    列出目录项

    • 显示当前目录下的文件 ls
    • 按时间排序,以列表的方式显示目录项 ls -lrt

    查找目录及文件

    • 查找目标文件夹中是否有obj文件:
    $find ./ -name '*.o'   //*为通配符
    
    • 递归当前目录及子目录删除所有.o文件:
    $find ./ -name "*.o" -exec rm {} ;
    

    查看文件内容

    • cat

    • more

    • 进入vi编辑器查看:vi file

    • 显示文件倒数第n行:tail -n file

    • 显示文件第n行:head -n file

    • 查看两个文件间的差别:diff file1 file2

    查找文件内容

    • egrep

      查找并将符合条件的内容输出到一个文本

    文件与目录的权限

    • 改变文件的拥有者 chown
    • 改变文件读、写、执行等属性 chmod
    • 递归子目录修改: chown -R tuxapp source/
    • 增加脚本可执行权限: chmod a+x myscript

    管道和重定向

    • |直接执行后面的语句
    • & 两个命令同时执行
    • && 只有前面命令执行成功,后面命令才继续执行
    • ; 不管前面命令执行成功没有,后面的命令继续执行
    • ||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
    • >>重定向

    设置环境变量

    启动帐号后自动执行的是 文件为 .profile,然后通过这个文件可设置自己的环境变量$PATH

    • 每个路径用冒号分隔

    • ./当前目录

    • ../上级目录

    • 添加环境变量

      • 该方法只在当前有效,重启后无效export PATH=$PATH:路径
      • 写入配置文件 /etc/profile

    Bash快捷输入或删除

    • Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全
    • Ctl-W 删除当前光标到前边的最近一个空格之间的字符
    • Ctl-H backspace,删除光标前边的字符
    • Ctl-R 匹配最相近的一个文件,然后输出

    文本处理

    find命令

    • 文件查找

      find [目录] -name [文件名|支持正则表达式|通配符]

    • 按类型搜索

      find . -type d -print //只列出所有目录

      注:-type f 文件 / l 符号链接 / d 目录

    • 按用户查找:

      find . -type f -user weber -print // 找用户weber所拥有的文件

    file命令

    可以检查文件具体类型

    {}

    {}是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名;

    -print的定界符

    • 默认使用’ ’作为文件的定界符;

    • -print0 使用’’作为文件的定界符,这样就可以搜索包含空格的文件;

    sort排序

    • -n 按数字进行排序
    • -r 逆序排序
    • -k N 指定按第N列排序

    tr进行文本替换

    • -d 删除字符

    • -c 获取字符

    • -s 压缩多余字符

    • 字符1 字符2 用字符1替换字符2

    磁盘管理

    查看磁盘空间

    • 查看磁盘空间利用大小:df -h
    • 查看当前目录所占空间大小:du -sh

    打包压缩

    在linux中打包和压缩是分两步来实现的,先打包后压缩

    打包

    打包是将多个文件归并到一个文件:

    tar -cvf etc.tar 1.txt 2.txt
    //etc.tar是打包好后的文件名,后面加上要打包的文件名1.txt和2.txt
    
    • -c :打包选项
    • -v :显示打包进度
    • -f :使用档案文件

    压缩

    gzip demo.txt,生成 demo.txt.gz

    解包和解压缩

    解包

    tar -xvf demo.tar

    tar解压参数说明:

    • -z 解压gz文件
    • -j 解压bz2文件
    • -J 解压xz文件

    解压缩

    • gunzip

    • bzip

    进程管理

    在linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件

    查询进程

    查询正在运行的进程信息

    ps -ef
    

    以完整的格式显示所有的进程

    ps -ajx
    

    显示进程信息,并实时更新

    top
    

    查询进程ID(适合只记得部分进程字段)

    pgrep 查找进程
    如:
    pgrep -l re  //查询进程名中含有re的进程
    
    

    查看端口占用的进程状态:

    lsof -i:3306
    

    查看用户username的进程所打开的文件

    lsof -u username
    

    查询指定的进程ID(23295)打开的文件:

    lsof -p 23295
    

    终止进程

    杀死指定PID的进程 (PID为Process ID)

    kill PID
    

    进程监控

    top

    分析线程栈

    pmap

    性能监控

    vmstat

    watch

    sar

    网络工具

    netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

    查询网络服务和端口

    列出所有端口 (包括监听和未监听的):

    netstat -a
    

    列出所有 tcp 端口:

    netstat -at
    

    列出所有有监听的服务状态:

    netstat -l
    

    lsof(list open files)是一个列出当前系统打开文件的工具

    查询使用7902端口的进程的PID

    lsof -i:7902
    

    网络路由

    查看路由状态:

    route -n
    

    发送ping包到地址IP:

    ping IP
    

    探测前往地址IP的路由路径:

    traceroute IP
    

    DNS查询,寻找域名domain对应的IP:

    host domain
    

    反向DNS查询:

    host IP
    

    用户管理

    用户

    添加用户

    useradd -m username
    

    该命令为用户创建相应的帐号和用户目录/home/username;

    设置密码:

    passwd username
    

    删除用户

    userdel -r username
    

    不带选项使用 userdel,只会删除用户。用户的家目录将仍会在/home目录下。要完全的删除用户信息,使用-r选项;

    帐号切换

    su username
    

    用户的组

    将用户加入到组

    默认情况下,添加用户操作也会相应的增加一个同名的组,用户属于同名组; 查看当前用户所属的组:

    groups
    

    一个用户可以属于多个组,将用户加入到组:

    usermod -G groupNmame username
    

    加入到新的组,并从原有的组中除去:

    usermod -g groupName username
    

    查看系统所有组

    系统的所有用户及所有组信息分别记录在两个文件中:/etc/passwd , /etc/group 默认情况下这两个文件对所有用户可读:

    • 查看所有用户及权限:

      more /etc/passwd
      
    • 查看所有的用户组及权限:

      more /etc/group
      

    用户权限

    使用ls -l可查看文件的属性字段,文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文件是一个普通文件。字母”d”表示该文件是一个目录,字母”d”,是dirtectory(目录)的缩写。 后面的9个字母为该文件的权限标识,3个为一组,分别表示文件所属用户、用户所在组、其它用户的读写和执行权限;

    下图,从右向左看

    ![](F:笔记博客文章图片ls -l.jpg)

    更改读写权限

    更改读写权限有两种方法,一种是字母方式,一种是数字方式

    • 字母方式:
    chmod userMark (+|-) PermissionsMark  //+号表示添加权限,-号表示删除权限
    
    • userMark取值:
    • u:用户
    • g:组
    • o:其它用户
    • a:所有用户
    • PermissionsMark取值:
    • r:读
    • w:写
    • x:执行
    如:chmod g+w blogs        对组用户给文件blogs增加可写权限
    
    • 数字方式:

    有权限表示为1,无权限表示为0,共9个位,每3个为一位,所以组成一组八进制数,这一组八进制数即可表示相应权限

    如:chmod 一组八进制数 文件名
    

    文本编辑工具vim

    特点:

    • 通用
    • 轻量级

    使用

    初级使用

    • 命令模式(默认)
      • 按 i 键进入插入模式
    • 插入模式
      • 编辑结束后按Esc键退出,输入:进入末行状态,再输入wq 退出vi

    显示代码行数

    进入末行状态后,输入set number

    跳转到指定位置

    在命令模式下

    • 跳转到指定行:行号 + G
    • 跳转到最后一行:GG
    • 跳转到一行的末尾:$
    • 跳转到一行的起始位:^

    删除内容

    在命令模式下

    • 删除一行:dd
    • 撤销删除:u
    • 删除选中:v+d

    复制粘贴剪切

    命令状态下

    • 复制:yy
    • 粘贴:p
    • 剪切:x

    搜索

    命令状态下

    • 输入/+要搜索的字符串

    自动缩进

    命令状态下,在要缩进的代码开头输入,代码行数,最后再输入==

    自动补全

    在插入状态下,输入ctrl + p

    其他

    • 使用Tab键可以自动补齐命令

    • 在linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件

    Linux用户

    每个用户都有一个home目录

    两种类型

    超级用户(root用户)

    • 登录提示符为#
    • 只能有一个root用户
    • home目录为
      • /root
    • ~代表home目录
    • pwd查看当前操作路径
    • 用户名root不可修改,可修改密码,
      • 命令passwd

    普通用户

    • 登录提示符为 $
    • 切换用户类型
      • (switch user)su 用户名
    • 可以有多个用户
    • home目录为
      • /home/用户名

    Linux基础命令

    更新命令

    • apt-get update 更新软件包的索引源
    • apt-get upgrade 升级所有软件包
    • apt-get dist-upgrade 升级整个Linux,如1.0到2.0

    通用命令

    • uname 获取系统规格的详细信息
    • pwd 显示当前所处位置
    • ls 查看目录中包含的所有内容
      • ls -l 列出路径所有文件,及其权限和所属组
      • ls -a 列出路径的所有文件,包括以.开头的隐藏文件
    • history 列出先前输入的所有命令(存储在bash shell中)
    • macchanger 更改mac地址,本质上改变身份
    • ifconfig 查看当前网络接口的设置
    • echo 打印任何文本到指定位置
      • echo > [file name]在新文件中打印复制的文本
      • echo >> [file name] 将复制的文本打印到现有的文件
      • 注:使用不带>的echo将自动为文本创建一个新的文件
    • cat 读取文件,并将它们连接在一起,交换它们的内容
    • clear 清除屏幕

    操作命令

    • mkdir 创建一个新目录
    • cd 更改正在使用的目录
    • cp 服务于基本的复制文本/内容用途
    • mv 在目录间移动文件
    • rm 删除突出显示的文本

    读取命令

    • more
      • 可以查看一个文件的内容
    • less 显示特定文件的运行情况,它并未完全加载该文件
    • sort 以一定顺序查看内容,使用-r开关,以相反的顺序对内容进行排序

    编辑命令

    • vi 可视编辑器
    • nano 可视编辑器的替代方法
    • leafpad (GTK+文本编辑器 )
      • 召唤此编辑器bt输入leafpad/etc/passwd

    权限命令

    • 三种主要的访问权限
      • 用户
        • 对文件的用户访问权授予创建它的用户
        • 具有文件读取权限的所有用户
      • 其他
        • 表示自定义权限
    • chmod 可以根据需要更改访问方式 ,使用某些标志作为权限指示
      • r = 允许用户能读取的文件
      • w = 使用户能编辑的文件
      • x = 授予执行文件或搜索目录的权限
    • chown
      • 类似于chmod
  • 相关阅读:
    e621. Activating a Keystroke When Any Child Component Has Focus
    e587. Filling Basic Shapes
    e591. Drawing Simple Text
    e595. Drawing an Image
    e586. Drawing Simple Shapes
    e636. Listening to All Key Events Before Delivery to Focused Component
    在 PL/SQL 块的哪部分可以对初始变量赋予新值? (选择1项)
    Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)
    你判断下面语句,有什么作用?(单选)
    Oracle数据库表空间与数据文件的关系描述正确的是( )
  • 原文地址:https://www.cnblogs.com/hacker-snail/p/14087228.html
Copyright © 2011-2022 走看看