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. kubernetes concepts (一)

    Concepts The Concepts section helps you learn about the parts of the Kubernetes system and the abstr ...

  2. Springboot + 持久层框架JOOQ

    简介 官网链接 JOOQ是一套持久层框架,主要特点是: 逆向工程,自动根据数据库结构生成对应的类 流式的API,像写SQL一样 提供类型安全的SQL查询,JOOQ的主要优势,可以帮助我们在写SQL时就 ...

  3. Java入门 - 语言基础 - 10.条件语句

    原文地址:http://www.work100.net/training/java-if-else.html 更多教程:光束云 - 免费课程 条件语句 序号 文内章节 视频 1 概述 2 if...e ...

  4. [bzoj2186] [洛谷P2155] [Sdoi2008] 沙拉公主的困惑

    Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现 ...

  5. [bzoj3527] [洛谷P3338] [Zjoi2014]力

    Description 给出n个数qi,给出Fj的定义如下: \[ F_j=\sum\limits_{i<j} \frac{q_iq_j}{(i-j)^2} - \sum\limits_{i&g ...

  6. Spring-事务(1)

    一,注解的方式实现事务 1.Dao层 package com.atguigu.spring.tx; public interface BookShopDao { //根据书号获取书的单价 public ...

  7. QDialog

    QDialog设置setWindowFlags(Qt::FramelessWindowHint);后,dialog弹不出来,界面不显示: 在继承一个QDialog类并设置窗口为无边框时,如果调用set ...

  8. HTML中CSS引用——选择器的使用

    一.元素选择器     1.书写格式:标记名{/*生命块*/}     2.所有与该标记匹配的元素,都将应用声明块中的规则 二.类选择器     1.书写格式:.类名{/*声明块*/}         ...

  9. 文件上传二:FormData上传

    介绍三种上传方式: 文件上传一:伪刷新上传 文件上传二:FormData上传 文件上传三:base64编码上传 Flash的方式也玩过,现在不推荐用了. 真正的异步上传,FormData的更多操作,请 ...

  10. mui html5 plus

    mui: mod:框架 mhe:头文件 mbody:内容 mta:底部 msl:轮播图 mg:九宫格 ml:图文列表 mu.post   : ajax dga:  绑定事件 mui.toast :来实 ...