命令行是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序。一般说的“命令行”是指Linux命令,Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。Linux命令在系统中有两种类型:内置Shell(脚本文件)命令和Linux命令( Linux 系统的基本操作命令)。
计算机系统资源通常分为两大部分:计算机硬件和计算机软件。
- 计算机硬件是指人能看得见、摸得着的各种计算机部件,包括处理器、存储器、输入/输出(I/O)设备和系统总线等。一台基本的个人计算机的硬件系统可以抽象为如下模型,其中处理器和存储器是计算机硬件资源的核心,二者通常称为主机。
- 计算机软件是一个为计算机系统配置程序和数据的集合,它能充分发挥硬件潜能,扩充硬件功能,并能组织、协调好硬件的使用,完成各种系统任务和应用任务。计算机系统的层次结构图如下,操作系统是所有软件中最靠近硬件的,或者说程序员不会直接和这些硬件打交道,所以在裸机的基础之上,计算机安装了一层软件(操作系统),能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型。
系统操作
usr@localhost:~$ shutdown 关机
usr@localhost:~$ reboot 重启
usr@localhost:~$ login 登录系统
usr@localhost:~$ logout 注销登录
usr@localhost:~$ passwd 修改登录密码
usr@localhost:~$ sudo 以root权限执行一条命令
文件目录
- 进入文件目录:
命令行符号:#表示超级管理员身份,$符号表示普通用户。
usr@localhost:~$ cd /filename 进入 '/filename' 目录
usr@localhost:~$ cd .. 返回上一级目录
usr@localhost:~$ cd - 返回上次所在的目录
usr@localhost:~$ cd 进入根目录
root@localhost:~# cd ../.. 返回上两级目录
- 查看目录中的文件:
usr@localhost:~$ ls 列出目录中的文件名
usr@localhost:~$ ls -l 列出文件的详细信息,可简写为ll
usr@localhost:~$ ls -a 显示隐藏文件
usr@localhost:~$ tree 以树形结构列出指定目录下的所有内容,包括文件和子目录
- 创建目录:
usr@localhost:~$ mkdir dir1 创建一个叫做 'dir1' 的目录
usr@localhost:~$ mkdir dir1 dir2 同时创建两个目录
usr@localhost:~$ mkdir -p /tmp/dir1/dir2 创建一个目录树
- 删除目录:
usr@localhost:~$ rm -f file1 删除一个叫做 'file1' 的文件
usr@localhost:~$ rm -rf dir1 dir2 同时删除两个目录及它们的内容
usr@localhost:~$ rmdir dir1 删除一个叫做 'dir1' 的目录
- 复制和移动文件:
usr@localhost:~$ mv dir1 new_dir 重命名/移动'dir1'目录到'new_dir'
usr@localhost:~$ cp file1 file2 复制'file1'文件为'file2'
usr@localhost:~$ cp -a dir1 dir2 复制一个目录
usr@localhost:~$ cp dir/* . 复制一个目录下的所有文件到当前工作目录
usr@localhost:~$ cp -a /tmp/dir1 . 复制一个目录到当前工作目录
usr@localhost:~$ scp username@servername:/path/filename /local_dir 基于ssh登陆进行安全的远程文件拷贝命令
usr@localhost:~$ scp -r local_dir(本地文件)username@servername:/path (远程目录)
- 文件批量重命名:
usr@localhost:~$ rename -v 's/_name1/_name2/' *.png
- 建立目录链接:
如果需要在系统中维护同一个文件的两个或者多个副本,不需要使用多个物理副本,可以只使用一个物理副本和多个虚拟副本。这种虚拟副本就称为链接,链接是目录中的占位符,指向实际的位置。
硬链接:新建的文件是已经存在的文件的一个别名,新建的文件含有与源文件有关的信息和位置,当原文件删除时,新建的文件仍然可以使用。
软链接:也称为符号链接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件,当源文件被删除时,新建的文件将不可使用。
不能在不同挂载点下的文件之间创建硬链接,这种情况下只能创建软连接。
$ ln -s file1 lnk1 创建一个指向文件或目录的软链接
$ ln file1 lnk1 创建一个指向文件或目录的物理链接
文件管理
- 浏览文件:
$ cat README 从上到下显示整个'README'文本文件的内容
$ cat -b README 对行进行编号 -b(只对非空白行进行编号)-n(可以对所有行进行编号)
$ more readme.txt 将文件内容一页一页的显示,最基本的指令是按空白键(space)往下一页显示,按b键(back)就会往前一页显示
$ less readme.txt 将文件内容一页一页的显示,可随意查看,使用pageup和pagedown翻页
$ head -n 5 readme.txt 将文件内容的前五行显示
$ tail -n 5 readme.txt 将文件内容的后五行显示,常用查看日志文件
$ clear 用于清除屏幕
- 查找文件:
$ grep 可以在指定文件中搜索特定的内容,并将含有这些内容的行标准输出
$ grep '[0-9 ]/{3 /}/.[0-0/{3/}/' ipfile 能使用正则表达式搜索文本,并把匹配的行打印出来
$ find 在指定目录下查找文件
$ find / -name help.conf 将整个硬盘下下名是'help.conf'的文件列出来
$ find . -name '*abc*'将当前目录及其子目录下包含'abc'字符的文件列出来
- 修改文件权限:
$ chmod 用于改变文件或目录的访问权限,r 表示可读取,w 表示可写入,x 表示可执行
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
$ chmod 777 file1 打开'file1'文件的所有权限
$ chmod -R a+r * 将当前目录下的所有文件与子目录设为任何人可读取
a表示u,g,o三者皆是,u表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o表示其他以外的人
- 文件压缩:
$ rar a file1.rar file1 创建一个叫做 'file1.rar' 的包
$ unrar file1 file1.rar 解压rar包
$ tar -zcvf file1.tar file1 将file1文件夹压缩成file1.tar
$ tar -tf file1.tar 显示一个压缩包中的内容
$ tar -zxvf ./file1.tar 将当前目录下的file1.tar文件解压缩
$ zip file1.zip file1 创建一个zip格式的压缩包
$ zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
$ unzip file1.zip 解压一个zip格式压缩包
查看进程
$ top 显示进程信息
$ nvidia-smi 查看GPU运行占用情况
$ sudo fuser -v /dev/nvidia* 查看GPU显卡对应占用程序的ID
$ ps 进程查看命令,直接使用会显示所有进程状态
$ ps -ef | grep python 查看所有进程里python的进程信息
$ ps -aux | grep python 其中 -aux 显示所有状态
$ netstat -apn 查看所有的进程和端口的使用情况
$ kill -9 [PID] 结束进程指令,其中 -9 强迫进程立即停止
$ killall name 杀死指定名字的所有进程
网络通信
$ ifconfig 用于查看和更改网络接口的地址和参数
$ ping 检测主机网络接口状态
$ netstat 主要用于Linux查看自身的网络状况
$ route 用来查看和设置Linux系统的路由信息,以实现与其它网络的通信
安装包
$ apt-get update 升级列表中的软件包
$ apt-get upgrade 升级所有已安装的软件
$ apt-get install package 安装/更新一个deb包
$ dpkg -i package.deb 安装/更新一个deb包
$ dpkg -l 显示系统中所有已经安装的deb包
$ pip install package pip是python的软件安装工具
编辑文本
$ gedit readme.txt gedit是一个Linux环境下的文本编辑器,类似于一个写字板
$ vim test.py vim是从vi发展出来的一个文本编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富。分为文本输入模式和ESC进入命令模式。