{
0、一行命令中第一个输入的部分绝对是"命令"或"可执行文件"1、中括号[]并不存在实际的命令中,而加入参数设置时,通常参数前面会带"-"号 例如-h 有时候会使用参数的完整全名,则参数前面带有"--"符号,例如--help2、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 //友情提醒:工作中密码一定要具有复杂性规则,每次看到什么什么被脱裤子了,我们第一想到的肯定是管理员是不是使用了弱口令,而且要定期更换密码,密码尽量不要和名字生日手机号关联密码不是进入系统的唯一手段,利用漏洞提权为多。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:长格式,显示完整信息 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 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 还有我们的神器googlecal:日历<>:必须给出的内容[]:可省略的...:可以出现多次|:多选一{}:分组,没有特殊意义翻屏:
向后翻一屏:SPACE 向前翻一屏:b 向后翻一行:ENTER 向前翻一行:k查找(索引): /KEYWORD:向后 n:下一个 N:前一个 ?KEYWORD:向前 n:下一个 N:前一个 q:退出换行:
echo:换行 echo [选项] [字符串] printf: 默认不打印换行符,得手动指定看不懂的问我,或者神器google