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
  • 相关阅读:
    cogs1538 [AHOI2005]LANE 航线规划
    cogs468 [NOI2010]超级钢琴
    [国家集训队2011]数颜色
    动态点分治总结
    点分治总结
    数论知识总结-欧拉函数
    BZOJ2683 简单题
    COGS1871 [国家集训队2011]排队(魏铭)
    LUOGU3278 [SCOI2013]多项式的运算
    BZOJ4491 我也不知道题目名字是什么
  • 原文地址:https://www.cnblogs.com/hacker-snail/p/14087228.html
Copyright © 2011-2022 走看看