2_Linux操作系统和基础命令行
非图形页面下执行程序
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 //友情提醒:工作中密码一定要具有复杂性规则,每次看到什么什么被脱裤子了,我们第一想到的肯定是管理员是不是使用了弱口令,而且要定期更换密码,密码尽量不要和名字生日手机号关联
密码不是进入系统的唯一手段,利用漏洞提权为多。
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
还有我们的神器google
cal:日历
<>:必须给出的内容
[]:可省略的
...:可以出现多次
|:多选一
{}:分组,没有特殊意义
翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
查找(索引):
/KEYWORD:向后
n:下一个
N:前一个
?KEYWORD:向前
n:下一个
N:前一个
q:退出
换行:
echo:换行
echo [选项] [字符串]
printf:
默认不打印换行符,得手动指定
看不懂的问我,或者神器google
2_Linux操作系统和基础命令行的更多相关文章
- Mac 下 Git 的基础命令行操作
Mac 下 Git 的基础命令行操作 sudo apt-get install git-core //安装Git 用户配置 git config --global user.name "Yo ...
- 2、链接数据库+mongodb基础命令行+小demo
链接数据库并且打印出数据的流程:1.在CMD里面输入 mongod 2.在CMD里面输入 mongo 3.在输入mongodb命令行里面进行操作,首先输入 show dbs 来查看是否能够链接得上库4 ...
- Git入门(安装及基础命令行操作)
一.安装 1.Mac 在Mac中安装Git的方法不止一种.最简单的要数通过Xcode命令行工具.对于Mavericks(10.9)或更高版本的操作系统,当你第一次尝试在终端执行git命令时,系统会自动 ...
- MongoDB 基础命令行
本文专门介绍MongoDB的命令行操作.其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅. 登录和退出 mongo命令直 ...
- 【Linux基础】Linux基础命令行学习笔记
绝对路径:cd /home/python相对路径:cd Downloads . 表示:当前那路径..表示:当前路径的上一层../.. 表示:当前路径的上二层 没有...或者以上的 ls: ls 查看当 ...
- Windows操作系统----锁住命令行窗口
第一步: 新建一个.txt文档,输入如下内容: @echo off echo. setlocal :checkpassword set /p password=请输入密码: if "%pas ...
- GITHUB中GIT BASH基础命令行
PS:转自https://www.cnblogs.com/WangXinPeng/p/8016293.html 1.常用命令行工具: ①cmd ②powershell ③git ba ...
- linux基础命令行
1.ls ls //显示所有文件(不显示隐藏文件) ls -a //显示所有文件(显示隐藏文件) ls -l //显示所有文件详细信息 ls -S //以大小排序 ls -t //以时间排序 2.cd ...
- 2018美赛准备之路——Matlab基础——命令行功能函数
clc 清屏(只清除显示内容) clear 清除所有变量(运算结果) who 显示workspace的所有变量 whos 详细显示workspace的所有变量 help sin 显示sin函数 ...
随机推荐
- python语法_字符串拼接
+号可以用来做字符串拼接 print("abc"+"efg"+"def") abcefgdef 字符串(str)与数字(int)不能使用+进 ...
- 创业维艰-->>书摘+乱七八糟
我把我的思路告诉了比尔:在不破产的情况下, 退出云计算服务的唯一办法是提高销售额, 因为即“即使我们将所有员工全部辞掉,如果销售额无法实现大幅增长的话, 基础设施成本依然会把我们逼上绝路.我进一步解释 ...
- SQL中什么时候需要使用游标?使用游标的步骤
https://zhidao.baidu.com/question/568932670.html 例子table1结构如下id intname varchar(50) declare @id intd ...
- H5 C3
为什么学习HTML5 a.因为语义化标签的出现网页结构更加清晰 b.因为多媒体的出现,让网页播放音频和视频没有了依赖 c.因为CSS3的出现,让页面变得更加炫酷和多彩 d.因为新的API的出现,使的开 ...
- 委托/lambda表达式/事件
委托 委托是执行安全的类,它的使用方式与类类似(即都需要定义再实例化),不同在于,类在实例化之后叫对象或类的实例,但委托在实例化后仍叫委托,委托可以把函数作为参数传递. 语法声明: delegate ...
- 网络对抗实验一 逆向及Bof基础实践
网络对抗实验一 逆向及Bof基础实践 一.实验目的 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. ...
- 初步了解Fork/Join框架
框架介绍 Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个子任务,最终汇总每个子任务的执行结果以得到大任务结果的框架.Fork/Join框架要完成两件事 ...
- 7.0-uC/OS-III中断管理
1.CPU的中断处理 理器通常有多个中断源. 例如, UART中断. DMA中断. ADC中断.定时器中断等. 2.中断器件标志中断处理器,然后中断处理器将优先级最高的中断提交给CPU. 现在的中断控 ...
- [js]js设计模式-工厂模式
// 定义一个人 var p1 = { name: 'wxb', age: 22, writejs: function () { console.log(this.name + ' can sing. ...
- <c:forEach>详解
<c:forEach>详解 <c:forEach>标签的语法定义如下所示. <c:forEach var="name" items="exp ...