Linux基础

关于Linux的基础笔记,慢慢补充整理,搬运成为自己的man。

一、Linux简介

1.Linux特点

免费,自由传播的类Unix系统,遵循POSIX(Portable Operating System Interface of UNIX,可移植操作系统接口,是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称)。Linux是以网络为核心,性能未定的多用户、多任务的操作系统。

如今,Linux有多种开发版本,Linux表示基于Linux的内核。

图片来自菜鸟教程-Linux 简介,也是本文的参考之一

有着各种各样的发行版,Debian、Fedora、SUSE等,好比Android阵营有EMUI、MIUI、Flyme,但不同的是针对性较强,有针对服务器的CentOS,有面向桌面的Ubuntu,有路由开源的OpenWRT。
参考知乎-常见Linux的发行版及不同发行版之间的联系与区别

2.安装和分区

分区 大小 说明
/ 20G 根目录(存储满系统停止响应)
/boot 500M 引导和内核信息
/usr 安装应用程序尽量大一些
/var 日志
/opt 以上剩余空间 数据存储
  • swap 分区,相当于Windows的虚拟内存

    内存大小 swap大小
    <4G 2xMem
    4G 8G
    4-16G =Mem
    >16G 可设置为0,但是不建议
  • 不建议划分根分区与swap就安装系统,独立应用分配独立空间,防止系统奔溃数据丢失。

3.目录结构

Linux中文件目录都是从根目录”/“开始的树形结构,且一切设备皆为文件(目录、设备、管道、普通)。其中Linux的路径都是以”/“打头或者作为父子目录分割,而Windows有具体的盘符,且以”"分割。

dir 解释
/bin Binary-存放着经常使用的命令,如 ls cp
/boot Linux启动时使用的一些核心文件
/dev Device存放Linux的外部设备,一切设备皆文件,hda IDE硬盘,a代表第一块,sd* 代表SCSI(服务器)
/etc 系统管理所需要的配置文件和子目录
/home 用户主目录,一般以自己的账号命名
/lib 系统最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库
/lost+found 一般为空,存放丢失一些文件,如 不正常关机
/media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
/mnt 用户临时挂载别的文件系统
/opt 第三方软件放的
/proc 虚拟目录(在内存只中),它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root 超级权限者的用户主目录
/sbin Super User使用的系统管理程序,如 shutdown fdisk
/tmp 存放一些临时文件的,自动清除规则是怎样定义的?
/usr 放应用程序,类似于windows下的program files目录
/usr/bin 系统用户使用的应用程序
/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序
/var 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 /var/log

.代表当前路径
..代表上级路
.开头的文件为隐藏文件

二、常用命令


命令形式
command -options parament

1.文件和目录管理

  • cd – change directory 切换目录
    cd path DOS中为 dir path
    cdcd ~ 切换到当前用户的主目录,一般为/home/username~代表普通用户主目录
    cd / 切换到根目录, /为根目录
    cd - 回到上一个路径,而不是上一级路径

  • df – display free disk space 获取磁盘空间占用情况
    df -a all:全部文件系统列表
    df -h human人性化显示
    df -P POSIX 输出格式为POSIX

  • du – display disk usage statistics 显示文件或目录所占用的磁盘空间,默认单位KB
    du -h human 人性化显示
    du -s 显示某个目录或文件的大小 depth=1

  • pwd – return working directory name 查看所在当前路径(绝对路径)

  • mount – mount a filesystem 例如:磁盘挂载

  • rm – remove directory entries 删除目录和文件
    rm * -ir 删除所有文件,-r recursive 递归删除包括到文件夹,-f force表示强制,-i or -I interactive表示删除提示
    rm * -rf 少废话,全部直接

  • stat – display file status 显示文件或文件系统的详细信息

  • ls – list directory contents
    ls -a list出所有的文件,包括隐藏文件(.,..,.file
    ls -h human人性化显示,自动转换文件的单位KB、MB
    ls -l 以列表的形式显示
    ls -alh

    其中

符号 代表
- 普通文件
d 目录文件
b 硬件快
c 字符文件
s 管道文件
l 链接文件
  • umount – unmount file systems磁盘卸载

  • cat – concatenate and print files
    cat 1.txt 2.txt显示1.txt和2.txt

  • file – determine file type 查看文件类型

  • find – search for files in a directory hierarchy
    find path -name *.c
    find path -size 2M(+2M/-2M) + 表示大于2M,- 表示小于
    find path -perm

  • ln – make links 链接
    ln 1.text abc.text 硬链接,跟随源文件一起改动,任然为普通文件。
    ln -s 1.text SoftName 软连接,即为快捷方式。

  • mv – move files

  • more – file perusal filter for crt viewing 分屏显示

  • cp copy 拷贝
    cp 1.txt 2.txt

-a -f -i -r -v

  • which – locate a program file in the user’s path 查找并显示给定命令的绝对路径

  • whereis – locate the binary, source, and manual page files for a command 定位指令的二进制程序、源代码文件和 man 手册页等相关文件的路径。

  • mkdir – make directories 创建目录
    mkdir ./a/b/c -p p 递归创建

  • rmdir – remove empty directories
    rmdir – remove directories 删除非空文件夹

  • grep – global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来
    grep keywords grep关键字
    grep 'String' grep字符串
    grep test 1.txt -n 检索1.txt中的test字段,-n显示行号
    grep 正则 正则表达式!!!

  • tail – display the last part of a file

  • sed – stream editor for filtering and transforming text

  • tar – manipulate tape archives 为文件和目录创建档案
    tar -cvf log.tar log2012.log 仅打包,不压缩!
    tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
    tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
    压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
    查 询:tar -jtv -f filename.tar.bz2
    解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

  • gzip – compression/decompression tool using Lempel-Ziv coding (LZ77)

  • bzip

2.用户及目录权限

  • groupadd groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

  • groupdel 删除一个组

  • useradd 创建的新的系统用户

  • userdel 删除用户账户和相关文件

  • chown – change file owner and group

  • chgrp – change group ownership

  • chmod – change file mode bits

  • passwd – update user’s authentication tokens

3.网络指令

  • ifconfig – configure a network interface

  • route – manually manipulate the routing tables

  • ping – send ICMP ECHO_REQUEST packets to network hosts

  • telnet

  • dig – DNS lookup utility

  • netstat

  • tcpdump

  • iptables

4.其他常用指令

  • man - format and display the on-line manual pages
    command --help
    man command manual pages 显示帮助手册
    info command 比man更详细的手册,来自GNU

  • ps – process status:displays a list of active processes with PID (Process-ID) and name.

  • kill – terminate a process
    kill -9 赶尽杀绝

  • killall – kill processes by name

  • signal – simplified software signal facilities

  • top – display and update sorted information about processes

  • dd

  • mkfs – build a Linux filesystem

  • fdisk– manipulate disk partition table

  • vi – Vi IMproved, a programmers text editor

  • dmesg – print or control the kernel ring buffer

  • exit

  • reboot – reboot the machine.
    -r force 强制重启

  • halt
    -r force 强制关机

  • poweroff

  • rpm – RPM Package Manager

  • export

  • date – display or set date and time

  • cal – display a calendar

  • uptime – show how long system has been running

  • setup

  • service – run a System V init script

  • history 命令历史

  • whoami – display effective user id

  • clear – clear the terminal screen 终端清屏
    ctrl + l 空一页下来

5.符号

  • 重定向
    > 重定向新建,例如:ls > text.txt文件写入会覆盖,只保留本次定向输入的数据。
    >> 重定向追加,例如:ls >> text.txt文件追加写入不覆盖

  • | 管道
    从一端输入管道,一端输出到其他地方。
    ls | grep stp