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
原文地址:https://www.cnblogs.com/hacker-snail/p/14087228.html