1、linux系统初使用
  linux有图形终端和字符终端,关于linux学习以字符终端为主,即命令行操作:

[root@centos7 ~]#runlevel    查看当前工作模式
N 3    //3为字符终端,5为图形终端
[root@centos7 ~]#init3 //切换至字符终端
[root@centos7 ~]#init5 //切换至图形终端
[root@centos7 ~]#startx //只是启动图形,不是模式切换,[Ctrl]+c关闭图形

  虚拟终端:[Ctrl]+[Alt]+F1~F6
  图形终端:[Ctrl]+[Alt]+F7
  切换终端:chvt 1~6,命令切换和按键切换一样
  查看在线:who命令
  查看当前的终端设备:tty命令
  显示当前用户身份:whoami或who am i命令
  显示谁在登录并做什么事:w命令

2、shell程序(bash shell)
  shell是一种高级程序设计语言,也被称为linux的命令解释器:它提供了用户与内核进行交互操作的一种接口,接收用户输入的命令并把它送入内核去执行。

3、内部命令(集成在shell)和外部命令
  enable命令       列出所有内部命令
  enable -n cmd  禁用内部命令cmd
  enable -n          查看所有禁用的内部命令
  enable cmd            启用该cmd内部命令
  type cmd                显示是内部命令还是外部命令:内部命令没路径,外部命令有路径

[root@centos7 ~]#enable
enable .
enable :
enable [
enable alias
......
[root@centos7 ~]#enable -n cd
[root@centos7 ~]#enable -n
enable -n cd
[root@centos7 ~]#enable cd
[root@centos7 ~]#type pwd
pwd 是 shell 内嵌
[root@centos7 ~]#type pstree
pstree 是 /usr/bin/pstree

4、PATH变量

[root@centos7 ~]#echo $PATH    //echo显示变量后续介绍echo详细用法
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
优先级从左到右搜索,可以移动外部命令的位置,改变搜索优先级(哈希hash会记录外部命令的位置
[root@centos7 ~]#hash    //可以看到hash记录的外部命令的缓存信息
命中 命令
1 /usr/bin/pstree
1 /usr/bin/who
1 /usr/bin/ls
[root@centos7 ~]#hash -d ls    //清除ls的hash缓存
[root@centos7 ~]#hash
命中 命令
1 /usr/bin/pstree
1 /usr/bin/who
[root@centos7 ~]#hash -r    //清除hash所有缓存
[root@centos7 ~]#hash
hash: 哈希表为空

  hash的更多参数选项:
  hash                     //默认列出当前hash缓存
  hash -d cmd         //清除cmd缓存
  hash -r            //清除所有hash缓存
  hash -t cmd    //打印缓存中cmd的路径
  hash -p path cmd   //将命令全路径path起别名为cmd
  hash -l            //显示hash缓存,可作为输出使用
5、命令格式:
  COMMAND [OPTIONS…] [ARGUMENTS…]
  命令 选项 参数(命令的作用对象)
  多个选项以及参数和命令之间使用空白字符分隔
  取消和结束命令执行:Ctrl+c,Ctrl+d
  多个命令可以用;分开
  一个命令可以用\分成多行

6、命令别名:
  1>显示当前 shell 进程所有可用的命令别名

[root@centos7 ~]#alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
......

  2>定义别名 NAME,其相当于执行命令 VALUE
    # alias NAME=’VALUE’
    撤销别名:# unalias [-a] NAME1 NAME2... -a 撤销所有别名
  3>在命令行中定义的别名,仅对当前 shell 进程有效
    如果想永久有效,要定义在配置文件中:
    仅对当前用户:~/.bashrc
    对所有用户有效:/etc/bashrc
    exit 退出生效;. 或 souce 后跟更改的配置文件使之不退出生效
  4>如果别名同原命令同名,要使用原命令可以使用:
    \ALIASNAME、”ALIASNAME”、’ALIASNAME’或 command ALIASNAME

7、简单命令
1>关机:halt,poweroff

2>重启:reboot
  选项:
    -f:强制,不调用 shutdown
    -p:切断电源

3>关机或重启:shutdown [OPTION]… TIME [MESSAGE]
  选项:
    -r:reboot
    -h:halt
    -c:cancel
    TIME 无指定,默认相当于+1
    Now:立刻,相当于+0
    +m:相对时间表示法,几分钟之后(例如:+3)
    hh:mm:绝对时间表示,指明具体时间

4>wall “广播内容”  //发广播,当前这台机器上所有用户可见

5>用户登录信息查看命令:
  whoami  //显示当前登录有效用户
  who  //系统当前所有的登陆会话
  w  //系统当前所有的登陆会话及所做的操作

6>screen 命令:
  screen -S [SESSION]  //创建新screen会话
  screen -ls  //显示当前所有screen会话
  screen -x [SESSION]  //加入screen会话
  exit  //退出并关闭screen会话
  [Ctrl]+a,[Ctrl]+d  //剥离当前会话
  screen -r [SESSION]  //恢复某 screen 会话

7>echo 命令
  功能:显示字符
  语法:echo [-neE] [字符串]
  说明:echo 会将输入的字符串送往标准输出。输出的字符串以空白字符隔开,并在最后加上换行号。
  选项:
    -E //(默认)不支持\解释功能
    -n //不自动换行
    -e //启用\字符的解释功能
      \a 发出警告声
      \b 退格键
      \t 插入 tab
      ……
  显示变量:echo “$VAR_NAME”
  
8>命令行、括号扩展:
  单引号’ ’     //引号之内只当做字符处理
  双引号” ”    //引号之内识别变量,不识别命令
  反向单引号` `  //引号之内识别变量,识别命令
  ` `或$()用于一个命令调用另一个命令的输出
  括号扩展:
    打印重复字符串的简化形式
    [yang@centos7 ~]$echo file{1,2,3}
    file1 file2 file3
    [yang@centos7 ~]$echo {1..9}
    1 2 3 4 5 6 7 8 9

9>bc 计算器:
  ibase=16  //输入:16进制数,输出:10进制数
  61
  97
  obase=16  //输入:10进制数,输出:16进制数
  97
  61

10、编辑/etc/motd 文件,编辑登陆后提示信息;编辑/etc/issue 文件,编辑登录前提示信息

11、[Tab]键之命令补全、文件路径补全

12、查看历史命令:history
  # echo $HISTSIZE  //HISTSIZE 变量保存的是历史命令的条数
  # vim /etc/profile  //更改系统保存历史命令的条数
  # ![条数]  //执行历史中那条命令
  [Ctrl]+r //搜索历史命令,[Ctrl]+g 退出
  ……

  历史命令先保存在内存中,退出时再将数据写入磁盘文件(.bash_history)

13、文件通配符

* 匹配 0 个或多个字符
? 匹配任意单个字符
~ 当前用户家目录
~yang 用户 yang 的家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9]、[a-z]、[A-Z] 匹配范围内的内容
[yang] 匹配列表中的任意一个字符
[^yang] 匹配列表中所有字符以外的字符
[[:upper:]] 所有大写字母
[[:lower:]] 所有小写字母
[[:alpha:]] 所有字母
[[:digit:]] 所有数字
[[:alnum:]] 所有的字母和数字
[[:blank:]] 水平空白字符
[[:space:]] 所有空白字符
[[:punct:]] 所有标点符号
[[:print:]] 可打印字符
[[:cntrl:]] 控制(非打印)字符
[[:graph:]] 图形字符
[[:xdigit:]] 十六进制字符

14>其他简单命令:
  echo $RANDOM  //生成随机数(0-32767)

  openssl rand -base64 n  //生成n位的随机字符数

  last  //显示成功登陆信息

  netstat -nt  //显示远程主机连接的次数

  cd  //切换目录(cd -:回退到上次目录,存放在$OLDPWD 变量里)

  ls -a -A -R(递归) -l(显示长属性) -ld(目录和符号链接信息不加 d 显示子目
录文件长属性) -1(按字母顺序每行显示) -S(按大小倒序排序) -r(取反) -t(按时间
排序) ls -d */(只显示当前文件夹的目录)

  atime:访问时间;mtime:修改时间(正常看到的);ctime:状态时间(属性、属组更改时间改变)

  stat [file_name]  //同时查看文件三个时间信息

  touch  //文件不存在创建空文件;刷新已存在文件的时间
    -a 仅改变 atime 和 ctime
    -m 仅改变 mtime 和 ctime
    -t [[CC]YY]MMDDhhmm[.ss] 指定 atime 和 mtime 的时间戳(年月日小时分秒)
    -c 如果不存在,则不创建

  cp [选项]... [-T] 源文件 目标文件
  cp [选项]... 源文件... 目录
  cp [选项]... -t 目录 源文件...
    cp -r 源目录 目标目录  //-r 复制目录
    \cp –r 源目录 目标目录  //\cp:使用真cp不使用别名
    cp -f  //目标文件存在,先删除后复制
    cp -p  //保留所有者属性
    cp -a  //递归;保留链接(相当于-d);保留所有属性(备份手段)
    cp -av  //备份+显示信息
    cp –backup=numbered 原文件 目标文件  //不用担心覆盖,会备份

  备份:
  cp file{,.bak}  //{ }的使用
  想批量备份文件,在每个文件后都加上一个.bak 后缀,cp 命令做不到。可以先复制成两份,再使用 rename 更改其中一份的文件名
  rename "conf" "conf.bak" file*  //搜索file*,使用conf.bak替换conf

  mv:移动文件、更改文件名
    -i 交互式(默认)
    -f 强制

  rm:删除
    -r 递归
    -f 强制删除
  可以用 mv 代替 rm:rm=’mv -t /tmp’

  tree [dir]  //显示特定目录的目录树结构
  tree -L 1 [dir]  //显示特定目录下一层目录树结构
    -d  //只显示目录不显示文件
    -P  //pattern:只显示由 pattern 匹配到的路径

  mkdir:创建目录
    -p:递归创建
    -v:显示详细信息
    -m MODE:创建目录时直接指定权限
  rmdir:删除空目录
    -p:递归删除父空目录
    -v:显示详细信息
  rm -r:递归删除目录树

  shred 文件 //安全删除文件
  -z 最后一次用 0 覆盖;-v 看过程;-u 覆盖后删除;-n 6 覆盖 6 次

15>索引节点
inode(index node)表中包含文件系统所有文件列表
一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:
  文件类型,权限,UID,GID
  链接数(指向这个文件路径名称个数)
    该文件的大小和不同的时间戳
    指向磁盘上文件的数据块指针
    有关文件的其他数据
    ls -i  //查看节点编号,节点编号:用来唯一标识每个文件的唯一性(同一分区唯一)
    df -i  //查看节点数,每个分区有固定的文件节点数,满了就相当于磁盘满了
    目录:
      文件引用一个是 indoe 号
      人是通过文件名来引导引用一个文件
      一个目录是目录下的文件名和文件 indoe 号之间的映射
    rm 命令:链接数递减,从而释放的 indoe 号可以被用,把数据块放到空闲列表中数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
    所以可以使用 shred 安全删除(覆盖删除)

16>软硬链接
  节点编号每个文件一个(可以使用 ln 创建硬链接实现一个节点编号对应对个文件名)
  硬链接的本质:一个节点多个名字(平等关系)同一分区、针对于文件
  目录创建(链接数默认为 2:.当前目录和目录名;在目录里在创建一个目录..上一级目录新加一个名,链接数变为 3)
  软链接的本质:快捷方式;软链接的大小和路径有关和原文件大小无关
  ln -s [旧文件名] [新文件名]
  软链接不能写相对当前路径,相对的是软链接的路径
  软硬链接的区别:
    本质:
      硬链接:同一个文件多个名字
      软链接:一个文件对应快捷方式,是不同文件
    表现:
      链接数
      跨分区
      是否支持目录
      与原始文件的关系
      删除
      大小
  部署软件使用软链接实现版本切换

17>确定文件内容
  文件可以包含多种类型的数据,检查文件的类型,然后确定适当的打开命令或应用程序使用
  file [option]:
    -b 列出文件辨识结果时,不显示文件名称
    -f filelist 列出文件 filelist 中文件名的文件类型
    -F 使用指定分隔符号替换输出文件名后默认的“ :”分隔符
    -L 查看对应软链接对应文件的文件类型

8、获取多层次的帮助
1>Whatis 或 man -f  //显示命令的简短描述,使用数据库,刚安装后不可立即使用(需使用 makewhatis | mandb 制作数据库)
2>command –help
  man and info
  /usr/share/doc/
3>网站搜索
4>man 帮助:
  查看 man 手册页:man [章节] keyword
  列出所有帮助:man -a keyword
  搜索 man 手册:man -k ketword 列出所有匹配的页面
  man 章节:
    1:用户命令;2:系统调用;3:C 库调用;4:设备文件及特殊文件;5:配置文件格式;6:游戏;7:杂项;8:管理类命令;9:LINUX 内核 API

[root@centos7 ~]#whatis rm
rm (1p) - remove directory entries
rm (1) - remove files or directories
[root@centos7 ~]#man 1 rm //查看帮助信息

  man 手册放在/usr/share/man;man 命令的配置文件:/etc/man.config | man db.conf
  内部命令:help 命令  //使用help获取内部命令帮助信息
  外部命令:man 命令、--help  //使用man或--help获取外部命令帮助信息

  

linux使用和基础操作的更多相关文章

  1. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  2. Linux一些最基础操作

    最后更新时间: 2015-05-06 这是一篇很早之前写的,整理笔记的时候看到了,Linux 非常基础操作. bin/sbin: 一般是存放可以执行文件 绝对路径 相对路径 mkdir dir ls: ...

  3. Linux命令行基础操作

    目录 1.打开终端命令行 2.常用快捷键 2.1 tab键 2.2 Ctrl+c组合键 2.3 Ctrl+d组合键 2.4Ctrl+Shift+c组合键和Ctrl+Shift+v组合键 2.5图形界面 ...

  4. 【Linux】lvm基础操作

    新增两块硬盘,来进行实验: [root@jp ~]# fdisk -l Disk /dev/sda: 107.3 GB, 107374182400 bytes 255 heads, 63 sector ...

  5. linux下的基础操作

    Xfce 终端: Linux 命令行终端,打开后会进入 zsh Shell 环境,可以使用 Linux 命令. NetSurf 网络浏览器:浏览器,可以用在需要前端界面的课程里,只需要打开环境里写的 ...

  6. Linux系列——常规基础操作

    ​ 1.配置IP a.若安装桌面版系统,直接GUI画面配置,操作直观.简单 ​ ​ b.若安装非桌面版系统,进行如下配置: 1).ifconfig命令(临时配置,重启后失效) ifconfig eth ...

  7. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  8. Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

    前言 安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可,安装前需保证Hadoop已启(动文中用到了hadoop的hdfs命 ...

  9. Linux基础操作及概念

    Linux基础操作及概念 终端的概念 通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示 ...

随机推荐

  1. 详细解析Redis中的布隆过滤器及其应用

    欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. 什么是布隆过滤器 布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它可以告 ...

  2. LeetCode 第17题--电话号码的组合(DFS)

    1. 题目 2.题目分析与思路 3.代码 1. 题目 输入:"23" 输出:["ad", "ae", "af", &qu ...

  3. proxy应用场景

    //场景一:可以修改对象的值let o = { name: 'xiaoming', price: 190 } let d = new Proxy(o,{ get (target,key){ if(ke ...

  4. 神秘常量0x077CB531,德布莱英序列的恩赐

    本文发布于游戏程序员刘宇的个人博客, 转载请注明来源https://www.cnblogs.com/xiaohutu/p/10950011.html 某天我在优化游戏的算法,在将一个个关键数据结构优化 ...

  5. 深入学习MySQL 03 Schema与数据类型优化

    Schema是什么鬼 schema就是数据库对象的集合,这个集合包含了各种对象如:表.视图.存储过程.索引等.为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的 ...

  6. 学习  解决用户验证、单点登录、api访问控制的开源框架 的 十月 第一弹:

    step one 去饭 源码 ps :https://identityserver.io/ 这个官网. ps: https://github.com/IdentityServer 这是 源码网

  7. 指定表单使用的路由 Specifying the Route Used by a Form

  8. export 和 export default 的区别

    export命令用于规定模块的对外接口. 一个模块就是一个独立的文件.该文件内部的所有变量,外部无法获取.如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量.下面是一个 ...

  9. Object类、常用API_2

    主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 学习目标 -[ ] 能够说出Object类的特点 -[ ] 能够 ...

  10. NOde.js的安装和简介

    1.nodejs的安装 1.1 检测nodejs的版本 node -v (version:版本) 1.2 path配置nodejs 的环境变量(当前版本都是自动安装配置环境变量)指令: path 1. ...