这几篇博文主要记录博主的Linux 学习之路,用作以后回顾和参考。大家可以选择略过也可以作参考。

(一)Linux 初步笔记
(二)Linux 进阶笔记(一)
(三)Linux 进阶笔记(二)
(四)Shell 编程进阶笔记

Linux 目录结构

  • / :根目录,每一个文件和目录从根目录开始,只有root用户具有该目录下的写权限。
  • /bin : 用户二进制文件包含二进制可执行文件。在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
  • /boot :主要放置开关机会使用的文件,包括Linux 内核文件以及开关机菜单与开机所需要的配置文件。
  • /dev :在Linux 系统中所有的设备与接口设备都是以文件的形式存放在这个目录中。只要访问这个目录下的某个文件就相当于访问某个设备。
  • /etc :所有系统管理所需要的配置文件和子目录。比如设置运行级别。
  • /home :存放普通用户的主目录,在Linux 系统中每个用户都有一个独立的目录,一般该目录名以账号用户名命名。
  • /lib :系统开机所需要的最基本的动态链接共享库,功能类似于Windows 中的DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost + found :这个目录一般是空的,当用户非法关机后会保存一些文件。
  • /misc :挂载外部设备
  • /media :Linux 系统会自动识别一些设备,例如U 盘、光驱等,当识别后Linux 会把识别的设备挂在这个目录下。
  • /mnt :为了让用户临时挂载别的文件系统,我们可以将光驱挂在在该目录中。
  • /opt :给主机安装额外软件所摆放的目录。默认情况下是空的。比如我们可以将数据库安装在这个目录下。
  • /proc :这个目录上是一个虚拟的目录,它是系统内存的映射,我们通常可以访问这个目录来获取系统信息。
  • /root :该目录为系统管理员的主目录。
  • /sbin :Super Bin的意思, 系统二进制文件,就像/bin,/sbin同样也包含二进制可执行文件。但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。
  • /selinux :这个目录是Redhet 与CentOS 所特有的目录,是一个安全机制,类似于防火墙。
  • /srv :service 的缩写,该目录存放一些服务启动之后需要提取的数据。
  • /sys :该目录下安装了2.6 内核中新出现的一个文件系统sysfs。
  • /tmp :该目录用来存放一些临时文件。
  • /usr :很重要的一个目录,用户的很多应用程序和文件都放在这个目录下。类似于Windows 中的program files 目录。
  • /var :这个目录存放着在不断被扩充的文件。我们习惯将那些经常需要被修改的文件放在该目录下,比如一些日志文件等。

简单命令积累

=======================关机重启与用户管理命令===========================

shutdown -h now || [指定时间] 、poweroff 、init 0 ->关机命令
shutdown -r now 、reboot 、init 6 ->立即重新启动计算机
logout -> 退出登录
useradd [×××] ->添加用户×××
passwd [×××] ->给××× 用户修改或者添加密码
userdel [×××] ->删除用户×××但是不删除该用户的目录
userdel -r [×××] ->删除用户及用户的目录

=======================文件目录处理命令===========================

ls -a ->显示隐藏文件
ls -l ->显示长列表格式
pwd ->显示当前所在的目录
cd 、cd ~ -> 进入当前用户的家目录
cd - ->进入上次目录
cd .. ->进入上一级目录
cd . ->进入当前目录
mkdir -p [×××] ->可以递归创建目录×××
rmdir [×××] ->删除目录×××
cp -r [源文件] [目标文件] ->递归持续复制包括目录及为文件
rm -rf [文件或目录] ->递归强制删除目录和文件
mv [source] [destination] ->移动文件或目录或者更改文件名(在同一个文件目录下为改名操作)

=======================链接命令===========================

1. 硬链接:ln [源文件] [目标文件]

1. 拥有相同的i 节点号和存储block 块,可以看做是同一个文件
2. 可以通过i 节点识别
3. 不能跨分区
4. 不可以针对目录使用

2.软链接: ln -s [源文件] [目标文件]

  1. 类似于Windows 的快捷方式
  2. 软链接拥有自己的i 节点和block 块,但是数据块中只保存源文件的文件名和i 节点号,并没有实际的文件数据
  3. 修改任意文件,另一个文件都会随之改变
  4. 删除源文件,软链接不能使用

    =======================文件搜索命令===========================

locate [文件名] ->在后台数据库(数据库默认一天一更新)按照文件名进行搜索,速度快,在执行前可以先 updatedb
whereis [文件命令] -> 用于搜索命令所在的位置并显示该命令帮助文档所在的位置
which [文件命令] -> 搜索命令所在的位置并显示别名
grep -n [关键词] [源文件] ->搜索关键字并显示行号
find [搜索范围] [搜索条件] ->在系统中搜索符合条件的文件名,可以使用通配符 *、?、[]
  搜索条件:

  1. -name [搜索文件] : 按照文件名搜索
  2. -iname [搜索文件] : 不区分大小写
  3. -user [用户]: 按照所有者搜索
  4. -nouser : 查找没有所有者的文件
  5. -mtime +10 : 10 天前修改的文件
  6. -mtime 10 : 十天前当天修改的文件
  7. -mtime -10 : 十天内修改的文件
  8. -size -25k : 查找大小小于25k 的文件、也可以使用M 指定查找大小范围
  9. -inum [文件节点号] ->根据文件节点号查找
  10. -size +10k -a -size -50k ->查找大于10k 并且小于 50k 的文件
  11. -size -10k -o -size +50k ->查找小于10k 或者大于 50k 的文件

    =======================帮助命令===========================

    man [命令] : ->获取指定命令的帮助
    man -f [命令] : ->查看命令拥有哪个级别的帮助相当于whatis [命令]
    man -k [命令] : ->查看和命令相关的所有帮助 相当于apropos [命令]
    [命令] –help : -> 获取指定命令的帮助[中文显示]
    help [命令] : -> 用于获取shell 内部的命令 可以使用whereis [命令] 确定是否指shell 内部命令
    info [命令] : -> 获得详细命令帮助

    =======================压缩与解压缩命令===========================

    zip [源压缩件] [源文件] : ->将文件压缩成zip 格式,在进行文件压缩的时候要注意指定压缩后缀名便于区分
    zip -r [压缩目录] [源文件] : -> 压缩目录
    unzip [压缩文件或目录] : -> 解压缩文件或目录
    gzip [源文件] : -> 压缩为.gz 格式的文件,压缩后源文件会消失
    gzip -r [源目录] : -> 压缩该目录下的所有文件,但是不压缩目录
    gzip -d [压缩文件或目录] : -> 解压缩文件 与gunzip [压缩文件] 同
    bzip2 -k [源文件] : -> 压缩之后保留源文件,压缩为.bz2 文件格式,不能压缩目录
    bzip2 -d [压缩文件] : -> 解压缩文件,-k 保留压缩文件,与bunzip2 [压缩文件] 同
    tar -zcvf [压缩包名].tar.gz [源文件]: -> 将其先打包再压缩为.gz 格式,支持多文件压缩中间用空格隔开
    tar -zcvf [文件目录][源文件].tar.gz [压缩包名] : ->指定压缩文件的目录
    tar -zxvf [压缩包名].tar.gz: -> 解压缩文件
    tar -zxvf [压缩包名].tar.gz -C [解压目录] : -> 将文件解压缩指定的目录下
    tar -ztvf [压缩包名].tar.gz: -> 查看压缩文件里的内容不解压
    tar -jcvf [压缩包名].tar.bz2 [源文件]: ->压缩为.tar.bz2 格式的压缩文件
    tar -jxvf [压缩包名].tar.bz2 : ->解压缩文件

    =======================挂载命令===========================

    mount : -> 查询系统中已经挂载的设备
    mount -a : -> 根据配置文件/etc/fstab 的内容自动挂载
    挂载光盘:

  12. mkdir /mnt/cdrome/ : -> 建立挂载点

  13. mount -t iso9660 /dev/sr0 /mnt/cdrome : -> 挂载光盘、-t iso9660 可以省略

umount /mnt/cdrome : -> 卸载命令

=======================输入输出重定向命令===========================

[命令] > [文件] : ->以覆盖的方式,把命令正确执行的结果输出到指定的文件或设备中
[命令] >> [文件] : ->以追加的方式,把命令正确执行的结果输出到指定的文件或设备中
[错误命令] 2>[文件] : ->以覆盖的方式,把命令错误执行的结果输出到指定的文件或设备中
[错误命令] 2>>[文件] : ->以追加的方式,把命令错误执行的结果输出到指定的文件或设备中
[命令] >> [文件] 2>&1: -> 以追加的方式,把正确和错误输出的结果都保存在指定的文件中与 [命令] &>> [文件] 同
[命令] >> [文件1] 2>> [文件2] : -> 执行正确时将结果输出到文件1,错误时将结果输出到文件2
wc [文件名] : -> 输出顺序是行数、单词数、字节数。

=======================组合命令===========================

find [搜索范围] -size +20k -a size -50k -exec ls -lh {} \; -> 将前面的查找结果交给后面的命令进行操作

=======================其他命令===========================

runlevel -> 查看当前系统的运行级别
w [用户名]/也可以不写用户名 -> 查看登录用户信息
who -> 查看当前在线状态的用户
last -> 查询当前登录和过去登录的
lastlog -> 查询所有用户的最后一次登陆时间

命令行常用快捷键

  • Ctrl + c : 强制终止当前命令
  • Ctrl + l : 清屏
  • Ctrl + a : 将光标移动到命令行首
  • Ctrl + e :将光标移动到命令行尾
  • Ctrl + u :从光标所在的位置一直删除到行首
  • Ctrl + z : 将命令放入后台执行
  • Ctrl + r : 在历史命令中搜索

Linux 运行级别

  • 命令init [0-6],最常用的运行级别是3 和 5,可以对/etc/inittab 文件进行编辑修改运行级别
  • 0:关机
  • 1:单用户
  • 2:多用户状态没有网络服务
  • 3:多用户状态有网络服务
  • 4:系统未使用保留给用户
  • 5:图形界面
  • 6:系统重启

可以修改 /etc/inittab 文件的内容来指定系统启动时启动的运行级别。

VIM编辑器

其实在Linux 命令行界面下的文本编辑器有很多比如Emacs、pico、nano、Joe、与vim 等。既然有这么多命令行下的文本编辑器为什么我们一定要学习vim 呢?主要是它有以下的优点:

  • 所有的UNIX Like 系统都内置vim 编辑器,其他的文本编辑器不一定存在
  • 很多软件的编辑接口都会主动调用vi
  • vim 具有程序编辑能力,可以主动以字体颜色辨别语法的正确性,方便程序设计
  • 编辑速度快速

(一)vi 下的三种模式

  • 一般模式:以 vi 打开以一个文件就进入一般模式了(这也是默认的模式)。在这个模式下可以使用左右键移动光标,删除字符或者删除整行,也可以复制粘贴文件的数据。
  • 编辑模式:一般模式下可以进行复制、粘贴和删除等的操作,但是是无法编辑文本内容的,按下”i,I,o,O,a,A” 等任何一个字母之后才会进入编辑模式。在这个模式下除了[Esc] 这个按键之外所有的其他按键都可以视为一般输入了,所以离开编辑模式时要按下[Esc]键才可以离开编辑模式进入到一般模式。
  • 命令行模式:在一般模式下输入“: / ?” 中的任何一个符号就可以将光标移动到最下面的一行。在这里你可以对你的文件进行读取、保存等一些功能。

(二)vim 中的一些命令

vim [文件名]: -> 如果文件存在则打开文件,不存在创建文件
vim + : -> 打开文件时光标在最后一行
vim +3 : -> 指定vim 打开文件时光标所在的行号
vim +/[搜索的关键字] [源文件] : ->打开文件将光标锁定在第一次出现关键字所在行号,可以按n 切换关键字所在行号

vim 的环境设置可以写入 ~/.vimrc 文件中,比如进行简单的配置显示行号:set nu。

(三)vim编辑器编写Java 程序步骤在安装好jdk 的情况下)

  1. vim ××.java
  2. 输入 i 进入输入模式
  3. 按Esc 按键完成输入
  4. 输入: wq [表示退出并保存] 、 :q! [表示退出不保存]
  5. 编译程序
  6. 运行

用户与用户组

(一)简介

Linux 系统中每个文件都有相当多的属性与权限,其中有一个很重要的概念就是文件所有者。
文件所有者:
      由于Linux 是一个多用户、多任务的系统,所以在实际开发过程中可能有很多人同时使用一台主机进行工作,为了考虑每个人的隐私权限以及每个人的喜好的工作环境,因此“文件所有者”这个概念就相当重要了。
用户组:
      在Linux 系统下可以对用户进行划分,比如在实际开发的过程中一共有两个团队,每个团队下都有若干个用户,那么可以创建两个用户组,把每个团队中的用户划分到对应的用户组中。多个用户组之间可以设置权限,当然用户组中的每个用户之间也可以设置权限。

在/etc/group 中存储着当前系统中所有用户组信息,以查到的一个用户组为例:

 Jas    :    x    :    500    :
组名称    组密码占位符  组编号    组中用户名列表

在/etc/passwd 中存储当前系统中所有用户信息,以查到的一个用户为例:

 Jas    :    x    :   500    :    500    :   Jas Zhang   :  /home/Jas  :    /bin/bash
用户名    密码占位符    用户编号    组编号    用户注释信息     用户主目录    shell 类型

(二)用户与用户组下常用的命令

groupadd [用户组名]: -> 创建一个用户组
groupadd -g [用户组编号] [用户组名]:-> 创建一个指定用户组编号的用户组
groupmod -n [新用户组名] [原用户组名] : -> 修改用户组的名称
groupmod -g [用户组编号] [原用户组名] : -> 修改用户组的编号
groupdel [用户组名] :-> 删除一个用户组(在该用户组中不能有用户)
useradd -g [用户组名] [用户名] :-> 在指定的用户组中添加用户
userdel -r [用户名] -> 删除用户并删除该用户下的文件

(三)Linux 文件权限

以root 用户登录系统,ls -h 列出root 主目录下的文件,以中一个为例:

   -rw-r--r--. 1 root root  102 12月 16 10:27 Hello.java[1]        [2][3]  [4]   [5]     [6]           [7]   [1]:表示文件权限[2]:表示连接数[3]:当前用户[4]:用户组[5]:文件大小[6]:修改日期[7]:文件名

知道了这些选项是什么意思后再来深入了解一下 “-rw-r–r–” 权限:它也可以被分为如下四个部分

   -     rw-    r--    r--[1]    [2]    [3]    [4][1]: 表示文件类型[2]: 表示文件所有者的权限,具有可读、可写权限[3]: 表示通用户组的权限,具有可读属性[4]: 表示其他非本用户组的权限,具有可读属性

文件类型包括一下几种:

  • - :表示文件
  • d :表示目录
  • l : 表示链接文件
  • b :表示设备文件里面的可供存储的接口设备
  • c :表示设备文件里面的串行端口设备,比如鼠标、键盘等。

所以来总结一下Hello.java 就是它首先是一个文件,用户所有者对它具有可读与可写权限,同用户组的其他成员具有可读权限,非本用户组的其他用户具有可读权限。

(四)修改文件的属性与权限命令

chgrp [组名] [文件或目录] : -> 改变文件所属的用户组,可以使用-R 递归持续更改(放在组名前面使用)
chown [账户名] [文件或目录] : -> 改变文件的所有者,同上
chmod xyz [文件] : -> 修改文件的权限,也可以使用-R 递归修改所有目录下的子文件

要改变文件的权限有两种方式,一种是使用数字修改,一种是使用符号修改权限(这种方式不作具体介绍)。
      数字类型改变权限:用户对文件的权限有三种read、write、execute,分别对应r、w、x。可以使用数字来代表各个权限,r = 4 ,w = 2 ,x = 1。以上面”-rw-r–r–”为例,它对应的权限用数字表示为644。如果我们想让所有的用户都对这个文件具有可读、可写、可执行权限,那么我们可以使用命令chmod 这样做:“chmod 777[文件]”。

(五)权限对文件的作用

  • r :读取文件的内容(cat、more、head、tail)
  • w:编辑、新增、修改文件的内容(vi 、echo),但是不具有删除文件的权限
  • x :可执行

(六)权限对目录的作用

  • r :可以查询文件下的文件名(ls)
  • w :具有修改文件目录结构的权限。比如新建文件和目录,删除此目录下的文件和目录,重命名等(touch rm mv cp)
  • x :可以进入到目录(cd)

(七)默认权限

umask -> 查看默认权限
umask [修改值] -> 临时修改umask 值
vi /etc/profile -> 永久修改umask 值

默认权限:

  • 文件默认不能建立为执行文件,必须手工赋予执行权限
  • 文件默认权限最大为666(rw)
  • 目录默认的最大权限为777(rwx)

Shell

(一)什么是Shell

Shell 是一个命令行解释器,它为用户提供了一个向Linux 内核发送请求以便运行程序的界面系统级程序,用户可以使用Shell 来启动、挂起、停止以及编写一些程序。Shell 还是一个功能强大的编程语言,易编写、易调试、灵活性较强。Shell 是解释执行的脚本语言,在Shell 中可直接以调用Linux 系统命令。

(二)echo 输出命令

echo [选项] [输出内容] : -> 输出内容
echo -e [输出内容] : -> 支持反斜线控制的字符转换
echo -e “\e[1;35m 你好 \e[0m” : -> 带颜色输出内容

(三)编写第一个脚本文件

1.vi hello.sh
       2.编写脚本内容:输出一句话

        #!/bin/bash#第一个脚本文件 echo -e "\e[1;35m Hello Jas\E[0m"

3.执行脚本文件:bash hello.sh 或者:chmod 755 hello.sh ,/root/hello.sh

(四)多命令执行顺序

  • ->多个命令顺序执行,无论命令对错都会顺序执行
  • && ->逻辑与关系,只有当前面所有命令正确执行时,紧跟后面的命令才会执行
  • || -> 逻辑或关系,如果前面的命令执行后面的命令不执行,如果前面的命令不执行则后面的命令执行

(五)管道符

  • [命令1] | [命令2] … -> 命令1 的正确输出作为命令2 的操作对象

(六)通配符

  • ? -> 匹配任意一个字符
  • * -> 匹配0 个或任意多个任意字符
  • [] -> 匹配括号中的任意一个字符。例如[abc] 表示匹配一个a、b、或者c
  • [-] ->匹配 括号中的任意一个字符。比如[a-z] 表示匹配a-z 中的任意一个字母
  • [^] -> 逻辑非,表示不匹配括号中的字符。比如[^a-z] 表示不匹配a-z 中的任意一个字符

Linux 初步笔记相关推荐

  1. Linux 进阶笔记(二)

    这几篇博文主要记录博主的Linux 学习之路,用作以后回顾和参考.大家可以选择略过也可以作参考. (一)Linux 初步笔记 (二)Linux 进阶笔记(一) (三)Linux 进阶笔记(二) (四) ...

  2. Linux 进阶笔记(一)

    这几篇博文主要记录博主的Linux 学习之路,用作以后回顾和参考.大家可以选择略过也可以作参考. (一)Linux 初步笔记 (二)Linux 进阶笔记(一) (三)Linux 进阶笔记(二) (四) ...

  3. 20155303狄惟佳预备作业三Linux学习笔记

    20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...

  4. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  5. Linux学习笔记(一) -- 在虚拟机中安装Ubuntu 18.04

    1.安装平台 1.操作系统:Win7 X64 2.虚拟机版本:VMware Workstation 14 Pro 3.ubuntu版本:Ubuntu 18.04 2.安装步骤 ubuntu下载 1.下 ...

  6. Linux操作系统笔记(超详细)

    [历史文章] Ubuntu在进行更新系统时出现Hash校验和不符的问题 Linux常用的命令总结(一)--ls命令与cd命令 Linux命令(二)mkdir命令与rmdir命令 Linux命令(三)t ...

  7. linux rcs文件中的ip,linux学习笔记之diff和patch命令

    关键字:Linux 学习笔记 运维 系统 命令 一.命令的功能 diff命令的功能为逐行比较两个文本文件,列出其不同之处.可是做成diff记录也就是补丁. patch就是利用diff制作的补丁来打到文 ...

  8. Linux服务笔记之二:SSH远程登录

    上次,写了用传统的telnet方法来远程管理服务器.今天,写下如何用SSH(Secure SHELL)协议来远程管理服务器.优点:因为SSH基于成熟的公钥加密体系,所以传输的数据会进行加密,保证数据在 ...

  9. (零)我为什么要写Linux学习笔记?

    我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...

最新文章

  1. mysql导出数据到txt太慢_分享:mysql导出数据到txt文件
  2. C# ?(问号)的三个用处
  3. javaweb学习总结(四十五)——监听器(Listener)学习二
  4. linux更新函数,linux系统不同对象升级方法详细介绍
  5. 计组之数据运算:1、数据的表示
  6. 用计算机软件绘制思维导图和手绘思维导图,手绘思维导图与计算机思维导图的对比...
  7. WebApi系列~HttpClient的性能隐患(转)
  8. ObjectDetecionAPI TypeError: __new__() got an unexpected keyword argument 'serialized_options'
  9. 第十七天 PYTHON学习
  10. 小白Linux入门之:终端复用器Tmux使用参考
  11. sphinx mysql实时搜素_【原创】sphinx实时索引的配置及实际应用、实例
  12. 论文毕业设计--基于javaweb框架的个人博客系统项目毕业设计论文.doc
  13. 微信公众平台快速开发框架源码
  14. 2011新版工业技术 中文核心期刊目录总览
  15. Photoshop如何自定义形状
  16. android app调用第三方地图路线规划导航(百度,高德,腾讯)
  17. 重读《纳瓦尔宝典》精彩语录及感悟篇(一)
  18. GaussDB T / A
  19. Python对千分位的处理
  20. 面试集锦|浪潮集团技术一面

热门文章

  1. PaddlePaddle——手写数字识别DEMO
  2. 设计模式(Design Pattern)
  3. XCTF WEB xff_referer
  4. vs创建html页面提示未找到,VS2015 打开html 提示 未能完成操作 解决办法
  5. Linux内核出错的栈打印详解,linux内核中打印栈回溯信息 - dump_stack()函数分析
  6. 在集群服务器进行自定义数据集训练记录过程 TensorBoard logging requires TensorBoard with Python summary writer installed.
  7. redis学习(二)
  8. Unable to execute dex: Multiple dex files define Lcom/kenai/jbosh/AbstractAttr
  9. 地图按照自己规定路线进行移动
  10. 计算机科学与技术专业导向ppt,计算机科学与技术专业导向讲座 第讲.ppt