码迷,mamicode.com
首页 > 系统相关 > 详细

2_Linux操作系统和基础命令行

时间:2018-10-10 23:55:13      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:管理命令   oop   printing   isp   硬件   sbin   key   cst   实时   


非图形页面下执行程序
GUI接口
CLI接口 #输入命令,给出执行文件的路径
  命令提示符,prompt(表示可以立即输入命令了) 命令提示符通过bash(shell)运行程序来展示的
  #:root #就是管理员提示符
  $:普通用户 $是普通用户提示符
命令:shell本身就是命令行接口,所以当我们输入一个命令时,这个命令会被我们的shell送给内核,由内核来判断程序是否具有执行权限以及能否执行和从什么地方开始执行

linux的命令格式
command [-options] parameter1 parameter2...
命令 选项 参数1 参数2

{
0、一行命令中第一个输入的部分绝对是"命令"或"可执行文件"
1、中括号[]并不存在实际的命令中,而加入参数设置时,通常参数前面会带"-"号
例如-h 有时候会使用参数的完整全名,则参数前面带有"--"符号,例如--help
2、parameter1 parameter2..为依附在options后面的参数,或者command的参数
3、命令,选项,参数等这几个命令中间以空格开区分,不论几个空格,shell都视为一格
4、按下enter键后就会立即执行命令
5、命令太长时,可以使用反斜杠来转义enter符号,使命令连续到下一行。注意:反斜杠后立刻接特殊字符,才能转义
6、linux和windows不同,linux命令严格区分大小写
}

{
命令 选项 参数
选项:修改命令的执行特性
短选项: -
一般多个选项可以组合:-a -b = -ab #-a -b 用空格隔开。-ab就不能用空格隔开
长选项:--
长选项通常不能组合,必须要分开来写
参数:指定命令的作用对象
}

使用凭证:验证用户权限

虚拟终端(terminal):Ctrl+Alt+F2会进入另个虚拟登录页面,Ctrl+Alt+F3又会进入另个虚拟登录页面,以此类推,可以启动多个页面也可以来会切换。虚拟出来的几个假的显示器叫终端
startx &_ 会启动图形页面,图形终端。在图形页面下执行终端只需要右键选择Open Terminal,这个终端称作模拟终端,在里面就可以输入命令了

图形界面的类型
GUI:Graphic User Interface
  windows桌面
  X-windows是linux桌面,X在linux里表示图形显示协议,使用cs架构的,它的主机和显示器是可以分离的
  Gnome:C开发的
  KDE: C++开发的
  XFace:简洁的,适合用在嵌入式平台的轻量级桌面系统

命令行页面
CLI:Command Line Interface
  sh(shell其实也是bash的链接,还是执行bash)
  bash
  csh
  zsh
  ksh
  tcsh

切换用户:
  su:switch user
  # su [-l] 用户名(半切换) //中括号表示可省略的
  # su -l 用户名(完全切换) //不省略就是完全切换
退回:exit

修改密码:
# passwd //友情提醒:工作中密码一定要具有复杂性规则,每次看到什么什么被脱裤子了,我们第一想到的肯定是管理员是不是使用了弱口令,而且要定期更换密码,密码尽量不要和名字生日手机号关联,社会工程学专治这种不服
密码不是进入系统的唯一手段,利用漏洞提权为多。 //18下半年开始,任何未经授权的测试都是违法行为。。。贼他妈可怕

IDE:指的是程序员开发程序的时候用的开发环境

windows有很多库文件
  dll(Dynamic Link Library):动态链接库
linux下的库是
  .so(shared object):共享对象

login:
  用户名:用户ID //计算机识别最快的就是数字,用户名是公开的
认证机制(Authentication):认证的过程就是鉴别用户生成的那个人的机制
授权(Authorization)
审计(Audition):审计对于计算机来说大部分通过日志来完成的,日志记录过程

prompt:命令提示符
命令:一般来说一个可执行文件必须有一个可执行入口,这个二进制文件开头处有一个特殊字符或者有几个字节是非常独特的标识,这个叫做程序的魔数(magic number) //库是没有可执行入口的,虽然它可执行
magic number:魔数。在windows下执行程序的魔数和Linux下执行程序的魔数是不一样的它们所理解的二进制格式也是不尽相同的,就算它们的库是完全相同的,在Linux下编译的程序也未必能在windows下运行

在shell编程里开头的 #!/bin/bash 这就是个魔数,也称shebang
当一个程序被启动的时候,这个程序的执行入口就被提交给内核了,内核是管理进程的
由bash提交给内核,内核就去找这个执行程序的魔数,看看是不是可执行格式以及是不是当前内核可理解的格式,是就运行,否则拒绝执行,是不是真正执行,还取决于权限等各种复杂的机制,所以说程序必须要有执行入口,入口就是用于表示它的魔数以及这个程序的执行格式等等

ls命令
ls(list):列表,列出。列出指定路径下的所有目录和文件
  目录:目录不是文件夹,那是windows带来的误导,它仅仅是一个路径映射
  路径:从指定起始点到目的地所经过的位置。
层次化管理:层次性结构可以实现很快的利用非常短的路径追溯一个目标,这样一个层次化文件管理机制叫做文件系统(file system)
绝对路径:从根开始找目标
相对路径:相对于当前所处位置的路径 //相对一定是从根到目的地中间路径的某个叉点上有这个位置,否则是无法相对的
目录(working directory,current directory):登录系统以后,在每一个时刻上都会处在某个目录上


pwd命令:
pwd(Printing Working directory):显示当前目录。Linux下最顶级的根用 / 表示,各路径之间的分隔符也用 / 表示,windows下使用的是反斜线 \

ls
  -l:长格式,显示完整信息
  //这是我以前学安全用的Ubuntu系统,其实也没用几次大部分都去琢磨kali了,升级之后不知道哪里不兼容了打不开,这是未克隆之前的
    yanhan@yanhan-virtual-machine:~$ ls
    BurpHelper.jar vmware-tools-distrib 图片 桌面
    burpsuite_pro_v1.7.30.jar 公共的 文档
    burpsuite_pro_v1.7.30_sts.zip 模板 下载
    VMwareTools-10.0.5-3228253.tar.gz 视频 音乐

    //博客园这一点很恶心,源格式复制不过来,源笔记在我电脑上,可以找我要

    yanhan@yanhan-virtual-machine:~$ ls -l
    总用量 124764
    -rw-r--r-- 1 yanhan yanhan 434154 12月 21 2017 BurpHelper.jar
    -rw-r--r-- 1 yanhan yanhan 27688550 12月 21 2017 burpsuite_pro_v1.7.30.jar
    -rw-rw-r-- 1 yanhan yanhan 27320168 5月 12 10:38 burpsuite_pro_v1.7.30_sts.zip
    -rw-rw-r-- 1 yanhan yanhan 72270857 11月 11 2015 VMwareTools-10.0.5-3228253.tar.gz
    drwxr-xr-x 9 yanhan yanhan 4096 11月 11 2015 vmware-tools-distrib
    drwxr-xr-x 2 yanhan yanhan 4096 4月 13 10:41 公共的
    drwxr-xr-x 2 yanhan yanhan 4096 4月 13 10:41 模板
    drwxr-xr-x 2 yanhan yanhan 4096 4月 13 10:41 视频
    drwxr-xr-x 2 yanhan yanhan 4096 4月 13 10:41 图片
    drwxr-xr-x 2 yanhan yanhan 4096 4月 24 20:05 文档
    drwxr-xr-x 2 yanhan yanhan 4096 5月 12 10:41 下载
    drwxr-xr-x 2 yanhan yanhan 4096 4月 13 10:41 音乐
    drwxr-xr-x 2 yanhan yanhan 4096 4月 13 10:41 桌面

    1、先看第一列,-rw-r--r--,这是十位,最左侧(第一位)是文件类型,是文件本身属性上区别的类型
    文件类型:
      -:普通文件(f)
      d:目录文件
      b:坏设备文件(block)
      C:字符设备文件(character)
      l:符号链接文件(symbolic link file)
      p:命令管道(pipe)
      s:套接字文件(socket)
    文件权限:9位,每三位一组,每一组:rwx(读、写、执行),如果没有对应的权限用 - 表示,比如rw-就是能读能写不能执行
    2、后面的数字(如后面的1、2、9):文件被硬链接的次数
    3、文件的属主(owner):yanhan
    4、文件的属组(group):yanhan
    5、文件大小(size):434154 //默认单位是字节
    6、时间戳(timestamp):这里显示的是最后一次被修改的时间戳
      访问:access
      修改:modify
      改变:change
      修改和改变的区别,一个文件他有两种数据,一种是文件自身的数据,另外一种是文件的属性数据,属性数据也叫元数据(metadata),修改是改变了文件的内容,改变是改变了文件的属性或者说元数据
    7、文件名
  -h:做单位转换
    yanhan@yanhan-virtual-machine:~$ ls -l -h //这里也可以写为 ls -lh
    总用量 122M
    -rw-r--r-- 1 yanhan yanhan 424K 12月 21 2017 BurpHelper.jar
    -rw-r--r-- 1 yanhan yanhan 27M 12月 21 2017 burpsuite_pro_v1.7.30.jar
    -rw-rw-r-- 1 yanhan yanhan 27M 5月 12 10:38 burpsuite_pro_v1.7.30_sts.zip
    -rw-rw-r-- 1 yanhan yanhan 69M 11月 11 2015 VMwareTools-10.0.5-3228253.tar.gz
    drwxr-xr-x 9 yanhan yanhan 4.0K 11月 11 2015 vmware-tools-distrib
    drwxr-xr-x 2 yanhan yanhan 4.0K 4月 13 10:41 公共的
    drwxr-xr-x 2 yanhan yanhan 4.0K 4月 13 10:41 模板
    drwxr-xr-x 2 yanhan yanhan 4.0K 4月 13 10:41 视频
    drwxr-xr-x 2 yanhan yanhan 4.0K 4月 13 10:41 图片
    drwxr-xr-x 2 yanhan yanhan 4.0K 4月 24 20:05 文档
    drwxr-xr-x 2 yanhan yanhan 4.0K 5月 12 10:41 下载
    drwxr-xr-x 2 yanhan yanhan 4.0K 4月 13 10:41 音乐
    drwxr-xr-x 2 yanhan yanhan 4.0K 4月 13 10:41 桌面
  -a:显示以.开头的隐藏文件
    yanhan@yanhan-virtual-machine:~$ ls -a
    . .presage
    .. .profile
    .bash_history .sudo_as_admin_successful
    .bash_logout VMwareTools-10.0.5-3228253.tar.gz
    .bashrc vmware-tools-distrib
    BurpHelper.jar .Xauthority
    burpsuite_pro_v1.7.30.jar .xinputrc
    burpsuite_pro_v1.7.30_sts.zip .xsession-errors
    .cache .xsession-errors.old
    .compiz 公共的
    .config 模板
    .dbus 视频
    .dmrc 图片
    .gconf 文档
    .ICEauthority 下载
    .local 音乐
    .mozilla 桌面
    .pki
  .表示当前目录 ls . 就是 ls
  ..表示父目录
  -A:显示所有目录但是不包括 . 和 ..
  -d:显示目录自身属性
    yanhan@yanhan-virtual-machine:~$ ls -ld .cache
    drwx------ 20 yanhan yanhan 4096 5月 6 15:28 .cache
  -i:index node,inode 显示文件的索引节点号,每个文件前面多的一串数字。我们是以名字记忆的,计算机以数字查找
    yanhan@yanhan-virtual-machine:~$ ls -i
    276054 BurpHelper.jar 397116 公共的 397111 下载
    276058 burpsuite_pro_v1.7.30.jar 397115 模板 397118 音乐
    917560 burpsuite_pro_v1.7.30_sts.zip 397120 视频 397104 桌面
    275297 VMwareTools-10.0.5-3228253.tar.gz 397119 图片
    275299 vmware-tools-distrib 397117 文档
  -r:逆序显示
  -R:递归(recursive)显示,递归是相当消耗资源的

文件名是不是文件的数据?想象一下,当我们往文件系统里存放一个文件,这个文件我们是不是通常都是使用文件名去找的,那文件名存放在什么地方?文件内容存放在什么地方?

cd(change directory):切换目录 cd的只能是目录
  yanhan@yanhan-virtual-machine:/opt$ pwd
  /opt
  yanhan@yanhan-virtual-machine:/opt$ ls /
  bin dev initrd.img lost+found opt run sys var
  boot etc lib media proc sbin tmp vmlinuz
  cdrom home lib64 mnt root srv usr
  yanhan@yanhan-virtual-machine:/opt$ cd /bin
  yanhan@yanhan-virtual-machine:/bin$ pwd
  /bin

  cd不加任何参数,就是回到用户的主目录或者说家目录(home directory)
    当我们登录主机后,登录的时候一般而言只要用户有家目录,就在家目录。对于家目录,用户有所有的操作权限

  现在切换到root下玩
    yanhan@yanhan-virtual-machine:~$ su root
    密码:
    root@yanhan-virtual-machine:/home/yanhan#

  cd ~USERNAME:进入到指定用户的家目录。只有管理员才有权限进别人家
    root@yanhan-virtual-machine:~# pwd
    /root
    root@yanhan-virtual-machine:~# cd ~yanhan
    root@yanhan-virtual-machine:/home/yanhan# pwd
    /home/yanhan
  cd -:在当前目录和前一次所在的目录来回切换

linux命令类型:
  内置命令(shell内置)
  外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
环境变量:变量是命名的内存空间
printenv:显示环境
    PATH:使用冒号分隔的一堆路径

hash:可以理解为一种缓存,在缓存中记录了使用过的命令的路径,每一次在使用时不会先去PATH里找了,会先直接来缓存里找历史
  缓存保存的是一个hash列表,hash是o(1)的:我们从一个列表中查找一个数据的速度随着列表长度变化而发生变化的比例,无论这个队列有多长,我们从一个中找和从一万个中去找花费的时间是一样的
  所以说缓存是实现系统加速的

clear:清屏

type:显示指定属于哪种类型
  root@yanhan-virtual-machine:~# type cd
  cd 是 shell 内建
  root@yanhan-virtual-machine:~# type ls
  ls 是 `ls --color=auto‘ 的别名
  root@yanhan-virtual-machine:~# type su
  su 是 /bin/su

硬件时钟和系统时钟
date:时间管理。显示当前系统内的时间
  2018年 10月 10日 星期三 19:11:04 CST

  rtc:实时时钟,每一次操作系统开机的时候,都是从这个硬件时钟当中读取当前时间,设置当前系统时间
  ntp:网络时间协议
  linux和windows不同的在于,linux在开机的时候它会通过rtc读取时间,一旦读取时间成功就不在使用这个时间,内核(操作系统)自身会通过软件的方式模拟振荡器的方式在系统内部来维持时钟
clock(hwclock):硬件时钟
  root@yanhan-virtual-machine:~# hwclock
  2018年10月10日 星期三 19时25分03秒 -0.880505 秒
  root@yanhan-virtual-machine:~# date
  2018年 10月 10日 星期三 19:24:40 CST
  root@yanhan-virtual-machine:~#
  
hwclock
  -w:将系统时间写到硬件中去
  -s:将硬件写到系统中来

修改时间:date 1010202218.30 //月2位、日2位、时间4位、年2位、.30是秒 可省略

获取命令的使用帮助:
  内部命令:
    help COMMAND
  外部命令:
    COMMAND --help
  命令手册:manual
    man COMMAND

    whatis COMMAND:显示这个命令的摘要信息以及和出现在哪些章节当中了

  man分章节:
    1、用户命令(/bin, /usr/bin, /usr/local/bin)
    2、系统调用 //如果显示的有乱码,是字符集不匹配,使用 export LANG=en 命令
    3、库用户
    4、特殊文件(设备文件)
    5、文件格式(解释某一个命令对应的配置文件的语法)
      yanhan@yanhan-virtual-machine:~$ cat /etc/passwd //当时玩命令注入的时候,爆过一次 & cat /etc/passwd 带敏感文件出来
      root:x:0:0:root:/root:/bin/bash
      daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
      bin:x:2:2:bin:/bin:/usr/sbin/nologin
      sys:x:3:3:sys:/dev:/usr/sbin/nologin
      sync:x:4:65534:sync:/bin:/bin/sync
      games:x:5:60:games:/usr/games:/usr/sbin/nologin
      man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
      lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
      mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
      news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
      uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
      proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
      www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
      backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
      list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
      irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
      gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
      nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
      systemd-timesync:x:100:104:systemd Time Synchronization,,,:/run/systemd:/bin/false
      systemd-network:x:101:105:systemd Network Management,,,:/run/systemd/netif:/bin/false
      systemd-resolve:x:102:106:systemd Resolver,,,:/run/systemd/resolve:/bin/false
      systemd-bus-proxy:x:103:107:systemd Bus Proxy,,,:/run/systemd:/bin/false
      syslog:x:104:110::/home/syslog:/bin/false
      messagebus:x:105:112::/var/run/dbus:/bin/false
      uuidd:x:106:113::/run/uuidd:/bin/false
      avahi:x:107:116:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
      dnsmasq:x:108:65534:dnsmasq,,,:/var/lib/misc:/bin/false
      whoopsie:x:109:118::/nonexistent:/bin/false
      avahi-autoipd:x:110:122:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
      speech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false
      kernoops:x:112:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
      pulse:x:113:124:PulseAudio daemon,,,:/var/run/pulse:/bin/false
      rtkit:x:114:126:RealtimeKit,,,:/proc:/bin/false
      saned:x:115:127::/var/lib/saned:/bin/false
      usbmux:x:116:46:usbmux daemon,,,:/var/lib/usbmux:/bin/false
      colord:x:117:128:colord colour management daemon,,,:/var/lib/colord:/bin/false
      hplip:x:118:7:HPLIP system user,,,:/var/run/hplip:/bin/false
      lightdm:x:119:129:Light Display Manager:/var/lib/lightdm:/bin/false
      yanhan:x:1000:1000:yanhan,,,:/home/yanhan:/bin/bash
      guest-VgI3lW:x:120:132:Guest,,,:/tmp/guest-VgI3lW:/bin/bash
      guest-lUXOag:x:121:133:Guest,,,:/tmp/guest-lUXOag:/bin/bash
      yanhan@yanhan-virtual-machine:~$
    6、游戏
    7、杂项:Miscellaneous
    8、管理命令(/sbin, /usr/sbin, /usr/local/sbin)

   MAN:
    NAME:命令名称及功能简要说明
    SYNOPSIS:用法说明,包括可用的选项
    DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
    OPTIONS:说明每一个选项的意义
    FILES:此命令相关的配置文件
    BUGS:bugs报告给谁
    EXAMPLES:使用示例
    SEE ALSO:另外参照

在线文档:
  info COMMAND

文档:
  /usr/share/doc

还有我们的神器google

cal:日历

<>:必须给出的内容
[]:可省略的
...:可以出现多次
|:多选一
{}:分组,没有特殊意义

翻屏:
  向后翻一屏:SPACE
  向前翻一屏:b
  向后翻一行:ENTER
  向前翻一行:k
查找(索引):
  /KEYWORD:向后
  n:下一个
  N:前一个
  ?KEYWORD:向前
  n:下一个
  N:前一个
  q:退出

换行:
  echo:换行
    echo [选项] [字符串]
  printf:
    默认不打印换行符,得手动指定


看不懂的问我,或者神器google

 

2_Linux操作系统和基础命令行

标签:管理命令   oop   printing   isp   硬件   sbin   key   cst   实时   

原文地址:https://www.cnblogs.com/xian-luo/p/9769540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!