45-命令行基础操作
LInux命令行基础
LInux命令基础知识
Linux的Gul与CLI
- GUI , Graphical User Interface,图形用户界面。用户界面的所有元素图形化,主要使用鼠标作为输入工具,使用按钮、菜单、对话框等进行交互,追求易用。
- CLI , Command Line Interface,命令行界面。用户界面字符化,使用键盘作为输入工具,输入命令、选项、参数执行程序,追求高效。
为什么使用Linux命令行
- 命令行更高效:
Linux系统中使用键盘操作速度要比鼠标更快。
图形化界面不可重复,而命令行可以编写的脚本完成所有过程(例如∶删除过期日志文件)。 - 图形化界面开销大:
运行图形化界面会占用很多的系统资源,运行命令行可以让系统资源释放给它更应该做的事情。 - 命令行有时候是唯一的选择:
口大部分服务器操作系统不会安装图形界面(GUI)。
口联网设备的维护管理工具本来就没有图形化界面供我们使用。
Linux命令语法格式
- 命令格式:命令【-选项】【参数】
- 示例: ls -la /etc
- 说明:
个别命令使用不遵循此格式,【】符号表示非必选项。
当有多个选项时,可以写在一起。
简化选项(一个-)与完整选项(两个–),比如ls -a等于ls --all。 - 这里举几个例子的含义:
-
ls -a /etc :表示显示根目录下etc目录中所有的文件,包括隐藏文件(ls是命令,-a 是选项,/etc 是参数。并不是所有的命令满足(-a)这样的形式,比如下一个例子)
-
chmod u+x 1.txt : 表示给1.txt的文件所有者增加文件的可执行权限(u+x 不遵守一般命令中横杠选项的横杠语法格式)
-
ls: 列出当前目录的内容(在这里省略的选项和参数)
-
ls -l : 以长格式列出当前目录的内容
-
ls -a : 表示列出当前目录的所有内容,包括隐藏文件
-
ls -al : 表示以长格式列出当前目录的所有内容,包括隐藏文件的内容
Linux命令分类
LInux基础命令
登录命令
- login的作用是登录系统,使用权限是所有用户。
- 如果选择用命令行模式登录Linux的话,看到的第一个Linux命令就是login。
- Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。
- 这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。
- 每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。
- 虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6。
- 例子:
先输入一个死循环
- alt + f2 :进入到另一个控制台界面
- top命令 : 监视当前项目进程(ipd : 7207)
- kill 7202 :在第二个控制台终止第一个控制台的
- last : 查看最近的登录记录
- last -n : 显示最近的n条登录记录(last -n 3 : 最近三次登录记录 。 简化:last -3)
- last tty2 : 显示指定的虚拟控制台2的登录记录
last root : 显示指定用户(root)的登录记录 - exit : 退出系统
电源管理命令
电源命令1: shutdown
- shutdown命令的作用是关闭计算机,使用权限是超级用户。
- 主要参数:
/- h : 关机后关闭电源。
/- r : 关机后打开电源(相当于重启)。
/- t : 在改变到其它运行级别之前,告诉init程序多久以后关机。
/- k : 并不真正关机,只是送警告信号给每位登录者。
/- f : 在重启计算机时强迫fsck。
/- time : 设定关机前的时间。
/- c : 取消这个关机计划 - shutdown命令可以安全地将系统关机,使用直接断掉电源的方式来关闭Linux系统十分危险。
- Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备。
- 在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。
电源命令2: halt
. halt命令的作用是关闭系统,使用权限是超级用户。
- 主要参数:
-n : 防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。
-w : 并不是真正的重启或关机,只是写wtmp (/var/log/wtmp)纪录。
-f : 没有调用shutdown,而强制关机或重启。
-i : 关机(或重启)前,关掉所有的网络接口。
-f : 强迫关机,不呼叫shutdown这个指令。
-d:关闭系统,但不留下纪录。
电源命令3: reboot
- reboot命令的作用是重新启动计算机,使用权限是系统管理者
- 主要参数:
-n:保存数据后再重新启动系统。
-w:并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d:不把记录写到/var/log/wtmp文件里( - n这个参数包含了- d)。
-i:关闭网络设置之后再重新启动系统。
文件管理命令Linux文件目录结构(1)
- 在Linux操作系统中,一切皆是文件
- Linux的文件目录结构是树形,“I”称为根目录
/dev : 存放硬件设备文件的目录
/bin : binary的缩写,存放我们经常使用的目录
/boot : 存放着启动Linux是使用的核心文件
/etc :存放所有系统管理所需要的配置文件和子目录
/lib : libary存放系统最基本的动态连接共享库(其中的文件相当于windows的dll文件)
/midia : Linux会自动识别出u盘等设备,被识别后挂载到这个目录
/mnt : 让用户可以临时挂载别的文件系统,比如把光驱挂载到这里,可以在这里看到它的内容
/opt : 给主机额外安装软件存放的目录,可以把另外给系统安装的软件放在这里
/proc : 系统内存的映射,访问这个目录,获取系统的信息
/root : 超级用户的主目录
/run : 临时文件系统,存放系统存放以来的系统信息,系统重启以后这个目录下的文件会被清除
/sbin : 存放设系统管理员使用的系统管理程序
/srv : 存放一些服务启动之后需要提取的数据
/sys : 这里安装了Linux2.6内核中新出现的一个文件系统sysfs
/tmp : 存放这系统临时文件
/usr : 用户和很多应用程序的文件存放在这里(类似于wiindows中的 program fils文件)
/var : 习惯把经常需要修改的文件放到这里(例如各种日志文件)
/home : 用户的主目录,每一个用户都有一个以自己的用户名命名的目录
Linux文件路径
- 在用shell或调用应用程序的时,都要写明被调用的程序路径。
- 路径分为绝对路径和相对路径。
1 绝对路径 : 在Linux中,绝对路径是从/(也被称为根目录)开始的,如果一个路径是从/开始的,那一定是绝对路径。
2 相对路径 : 相对路径就是相对当前所在目录来说的路径。
帮助命令
目录操作,文件操作和查看操作
文件命令1: pwd
- pwd命令用于打印出当前的工作目录。
- pwd命令有两个选项,-L和-P,其作用类似于cd命令的同名选项。
- -L目录连接链接时,输出连接路径。
- -P输出物理路径。
文件命令2: cd
- cd命令用于改变当前工作目录。
- 语法: cd [dir]
cd /usr : 进入目录/usr中。
cd .. : 进入(退到)上一层目录,两个点代表父目录。
cd . : 进入当前目录
cd : 不带参数,则默认回到家目录。
cd - : 进入前一个目录,适用于在两个目录之间快速切换。
cd ~ : 进入家目录
文件命令3: ls
- ls命令是Linux命令中使用频率最高者之一,用于列出目录的内容,或者文件的信息,该命令的输出结果默认按照文件名排序,如果不指定目标,则列出当前目录的内容。
- 语法:ls [OPTION]… [FILE]…
-a ; 显示所有文件及目录,包括隐藏的文件和目录。
-l : 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出。
-t : 将文件依建立时间之先后次序列出。
-s : 将文件将大小排序列出
-R : 若目录下有文件,则以下之文件亦皆依序列出。
-d:-directory将目录像文件一样显示,而不是显示其下的文件
文件命令4: mkdir
- mkdir命令用于创建目录(文件夹)。
- 语法: mkdir [OPTION]… DIRECTORY…
mkdir -p 父目录/子目录 :同时创建父目录和子目录
实践:
文件命令6: cp
- cp命令用于复制文件或者目录,可以一次复制单个文件,也可以一次复制多个文件
(cp命令属于高危命令,使用不慎就会有丢失数据的危险)。 - 语法: cp [OPTION]… SOURCE… DIRECTORY
-a : 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。
-p : 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r : 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l : 不复制文件,只是生成链接文件。
文件命令7: mv
- mv命令用于移动件或者目录(高危命令,使用不慎就会有丢失数据的危险)。
- 如果原文件和目标文件在同一个父目录里面,则mv命令的效果就相当于给文件改名。
- 语法: mv[选项]源文件或目录目标文件或目录。
-b : 若需覆盖文件,则覆盖前先行备份。
-f : force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i : 若目标文件(destination)已经存在时,就会询问是否覆盖。
-u : 若目标文件已经存在,且source比较新,才会更新(update)。
实践:
文件命令8: rm
- rm命令用于删除文件或者目录。
- rm命令属于高危命令,没有一个工具能够100%恢复rm命令删除的文件,rm命令删除文件时并不是把文件放到类似图形界面的“回收站”
里,所以没有“撤销删除”操作可用。 - 语法: rm [OPTION] file_or_dir
-f, --force : 忽略不存在的文件,从不给出提示。
-i, --interactive进行交互式删除。
-r, -R, --recursive : 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose : 详细显示进行的步骤。
文件命令9: cat
- cat命令用于读取文件的全部内容,或者将几个文件合并为一个文件。
- 语法: cat [OPTION] [FILE]
-A, --show-all 等价于—vET。
-b, --number-nonblank 对非空输出行编号。
-E, --show-ends 在每行结束处显示$。
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号。
-> : 将前面文件的内容覆盖到后面文件中
->> : 将前面文件的内容追加到后面文件的末尾
文件命令10: head
- head用来显示文件的开头内容,默认head命令打印其相应文件的开头10行。
- 语法: head [OPTION][FILE]
- 命令参数:
-q : 隐藏文件名
-v : 显示文件名
-c<字节> : 显示字节数
文件命令11: tail
- tail命令用于读取文件的尾部。
- 语法: tail [OPTION].….[FILE]…
- 主要参数:
-f : 循环读取。
-q : 不显示处理信息。
-v : 显示详细的处理信息。
-c<数目> : 显示的字节数。
-n<行数> : 显示行数。
实践:
分页查看操作和查找操作
文件命令12: more
-
more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键
(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件。 -
语法:more [OPTION].… [FILE]…
+n 从第n行开始显示。
-n 定义屏幕大小为n行。
+/pattern 在文件显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示。
-c 从顶部清屏,然后显示。 //eg : more -c -3 file.txt 指定每页为三行,每次到下一页上一页清空 -
使用more命令在读取文件信息时,可以进行交互操作。
Enter : 向下n行,需要定义。默认为1行。
Ctrl+F : 向下滚动一屏。
空格键 : 向下滚动一屏。
Ctrl+B : 返回上一屏。
= : 输出当前行的行号。
V : 调用vi编辑器。
!命令 : 调用shell,并执行命令。
q : 退出more。
文件命令13: less
- less命令读取内容,分屏显示,less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
- 语法: less [OPTION].….[FILE]…
- 常用操作:
/字符串 : 向下搜索“字符串”的功能。
?字符串 : 向上搜索“字符串”的功能。
q : 退出less命令。
空格键 : 滚动一页。
回车键 : 滚动一行。
page up 或 page down : 向上向下翻页键
文件命令14: find
- find命令用来在指定目录下查找文件。
- 可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。
- 常用语法: find [path…] [expression]
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-user 按照文件属主来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件。
-type : 按照文件的类型查找文件(d表示目录,f表示文件,l表示软连接)
-empty : 可以查找文件中的空文件和空目录
-empty -delete : 可以查找文件中的空文件并删除 - eg : find ./ -name “*.txt”
./表示在当前目录中查找(可以省略)
-name 表示按名称查找 后面加字符串
* 是通配符
.txt 是通配符后面的后缀,表示我们查找是以.txt为名称后缀的文件
实践:
文件命令16: which
- which命令在PATH所指定的目录中查找可执行文件。
- 使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
- 语法: which [options] programname […]
压缩和打包操作
文件命令15: gzip
- gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令。(不带参数直接压缩文件)
- gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间。
- 语法: gzip[参数][文件或者目录]
-d或–decompress或----uncompress : 解开压缩文件。
-f或–force : 强行压缩文件,不理会文件名是否存在以及该文件是否为符号连接。
-l或–list : 列出压缩文件的相关信息。
-r或–recursive : 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose : 显示指令执行过程。 - 缺点:
无法将多个文件打包到同一个压缩文件中
文件命令16: tar
-
tar命令可用于打包文件,把多个文件打到一个包中,方便数据的移动。(使用时一般加上-f选项以备份原文件)
-
语法: tar [OPTION…] [FILE]
-c : 建立新的压缩文件。
-x : 从压缩的文件中提取文件。
-t : 显示压缩文件的内容。
-z : 支持gzip解压文件。
-j : 支持gzip2解压文件。
-v : 显示操作过程。
-C : 把打包后的压缩文件放在指定目录 -
eg : tar -czf dir.tar.gz dir
使用了三个参数:
c : 表示建立一个新的文件
z : 指定压缩工具为gzip
f : 表示备份文件
文件命令17: ln (1)
- ln命令用于创建链接文件。
- Linux中有软链接和硬链接两种。
- In命令在不带参数的情况下,默认创建的是硬链接。
- 语法: In [ -f | -n] [ -s ] SourceFile [ TargetFile ]
-b : 删除,覆盖以前建立的链接。
-d : 允许超级用户制作目录的硬链接。
-f : 强制执行。
-i : 交互模式,文件存在则提示用户是否覆盖。
-n : 把符号链接视为一般目录。
-s : 软链接(符号链接)。