Linux指令学习
Linux命令格式:命令名 选项 参数
Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等,在职场中,大量的服务器维护工作都是在远程通过SSH 客户端来完成的,并没有图形界面,所有的维护工作,都需要通过命令来完成,在职场中,作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令,Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已。
文件及目录操作
linux下,我们是看不到硬件盘符的,我们只能看到文件夹(目录)


linux主要目录速查表
/ :根目录,Ubuntu只有一个根目录,所有文件都在它下面
/home/user:用户工作目录或者家目录。
/bin、/usr/bin:可执行二进制文件的目录
/boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz;系统引导管理器:/boot/grub
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
/home:系统默认的用户家目录,新增用户账号
- ~ 表示当前用户的家目录
 - ~edu 表示用户 edu 的家目录
 
/root:系统管理员root的家目录
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
/usr:应用程序存放目录
- /usr/bin:存放应用程序
 - /usr/share:存放共享数据
 - /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
 - /usr/local:存放软件升级包
 - /usr/share/doc:系统说明文件存放目录
 - /usr/share/man:程序说明文件存放目录
 
/var:放置系统执行过程中经常变化的文件
- /var/log:随时更改的日志文件
 - /var/spool/mail:邮件存放的目录
 - /var/run:程序或服务启动后,其 PID 存放在该目录下
 
小技巧
- ctrl + shift + = 放大终端窗口的字体显示
 - ctrl + - 缩小终端窗口的字体显示
 - 自动补全:在敲出 文件/目录/命令 的前几个字母之后,按下tab键,如果输入的没有歧义,系统会自动补全
 - 按 上 / 下 光标键可以在曾经使用过的命令之间来回切换
 - 如果想退出,并且不想执行当前选中的命令,可以按 ctrl+ c
 
目录文件操作
查看当前目录:pwd
显示目录内容:ls
- 作用:ls命令用来查看当前文件夹的文件和子目录
 - 参数: 
- ls -l 以列表方式显示文件的详细信息
 - ls -a 显示全部(包括隐藏文件)
 - ls -t 按照修改时间排序
 - ls -l -h 配合-l以人性化的方式显示文件大小
 
 
ls -l 执行结果:

说明:执行结果从左到右含义分别为:文件权限、连接数或子目录数、文件拥有者、文件所在组、文件大小、最后修改时间、文件名称
切换目录:cd 目录
| 符号 | 含义 | 
| cd | 切换到当前用户的主目录(/home/用户目录) | 
| cd ~ | 切换到当前用户的主目录(/home/用户目录) | 
| cd . | 当前目录 | 
| cd .. | 上级目录 | 
| cd - | 上一次所在目录 | 
相对路径和绝对路径
- 相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
 - 绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
 
创建目录:mkdir 目录
- 参数:mkdir -p 如果父目录不存在,同时创建父目录
 
文件操作
创建空文件:touch
例如:touch test.txt temp.p
向文件写入内容:echo
格式:echo>文件名
例如:echo 'abc' > test1.txt (将abc字符串写入test1.txt,会覆盖原来的内容;如果不想覆盖原来的内容,使用两个大于符号>>)
查看文件内容:cat 文件名
以树状图的形式查看目录文件结构:tree [目录名]
查看文件前几行:head -n 行数 文件名
- 搜索文件名包含1的文件 find -name "*1*"
 - 搜索所有以.txt为扩展名的文件 find -name "*.txt"
 - 搜索以数字1开头的文件 find -name "1*"
 
查看文件最后几行:tail -n 行数 文件名
文件查找:find 查找路径 -name 文件名/目录名
文件复制:cp 原文件 新文件
文件移动:mv 原文件名 新文件名
文件删除:rm [选项] 文件名|目录名
- 选项
- -f 强制删除(慎用!)
 - -i 互动模式,在删除前询问
 - -r 递归删除目录下的内容,删除文件夹时必须的加此参数
 
 
打包压缩
windows常用rar,Mac常用zip,Linux常用tar.gz。linux中常使用tar命令进行打包、压缩、解压操作,gz后缀名表示进行了压缩,tar后缀名表示进行了打包,加后缀名是为了清晰、易于理解,而不是必须的。
打包/解包
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tar
参数:
- c 创建打包文件
 - x 解开打包文件
 - v 列出详细过程,显示进度
 - f 执行打包的文件名称,f后面一定是.tar文件,所以必须放在选项后面
 
压缩与解压
1、gzip
tar与gzip命令结合可以实现文件 打包和压缩
- tar只负责打包文件,但不压缩,
 - 用gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz
 
压缩:tar -zcvf 压缩包名字.tar.gz 文件1 文件2 目录3
- 参数:
- z 使用gzip方式压缩
 - c 创建包 create
 - v 显示操作文件的细节,显示进度
 - f 要操作的文件名,f后面一定是.tar文件,所以必须放在选项后面
 
 
解压:tar -zxvf 压缩包名字.tar.gz
- 参数:
 - z 使用gzip方式压缩
 - c 创建包 create
 - v 显示操作文件的细节
 - f 要操作的文件名 file
 
解压文件到指定路径:tar -zxvf 打包文件.tar.gz -C 目标路径
解压缩到指定目录,注意:要解压缩的目录必须存在
2、bzip2(two)
tar与bzip2命令结合可以实现文件打包和压缩,tar只负责打包文件,但不压缩。用bzip2压缩tar打包后的文件,其扩展名用xxx.tar.bz2
在tar命令中有一个选项-j可以调用bzip2,从而可以实现实现压缩和解压缩的功能
- 压缩的文件:tar -jcvf 打包文件.tar.bz2 被压缩的文件
 - 解压缩文件:tar -jxvf 打包文件.tar.bz2
 
网络操作
查看本机网络地址:ifconfig
测试网络连通性:ping [对方主机地址]
文件权限管理
三个权限参数:读 写 执行
- 参数:r可读,w可写,x可执行,-什么都不行
 
在rwx三个权限中,从右至左依次用值4、2、1来表示,所以拥有某个文件的读、写、执行权限也可以用三个权限值累加的方式来表示,如下表所示:
| 权限 | 含义 | 对应值 | 
| rwx | 可读、可写、可执行 | 4+2+1=7 | 
| rw- | 可读、可写、不可执行 | 4+2+0=6 | 
| r-x | 可读、不可写、可执行 | 4+0+1=5 | 
| r-- | 可读、不可写、不可执行 | 4+0+0=4 | 
| -wx | 不可读、可写、可执行 | 0+2+1=3 | 
| -w- | 不可读、可写、不可执行 | 0+2+0=2 | 
| --x | 不可读、不可写、可执行 | 0+0+1=1 | 
| --- | 不可读、不可写、不可执行 | 0+0+0=0 | 
修改文件权重:chmod {权限值} {文件/目录名}
- 例如:给文件test1.txt添加可执行权限 chmod +x test.txt
 - 例如:设置文件,拥有者有读、写、执行权限,其他用户没有访问权限 chmod 700 test1.txt
 
通配符
| 通配符 | 含义 | 
| * | 代表任意个数字符 | 
| ? | 代表任意一个字符,至少1个 | 
| [] | 表示可以匹配字符组中的任意一个 | 
| [abc] | 匹配a、b、c中的任意一个 | 
| [a-f] | 匹配从a到f范围内的任意一个字符 | 
远程管理常用命令
关机/重启:shutdown 选项 时间
- shutdown now 现在就关闭电脑
 - shutdown 20:10 时间20:10分关闭电脑
 - shotdown -r +10 十分钟后重启电脑
 - shotdown -c 取消之前指定的关机计划
 - -r 重新启动
 - 不设置选项和参数:默认1分钟后 关闭电脑
 
查看或匹配网卡信息
- ifconfig :查看/配置计算机当前的网卡配置信息
 - ping ip地址 :检查目标 ip地址 的连接是否正常,数值越大,速度越慢
 
远程登录和复制文件
- 关机/重新启动 ssh 用户名@ip
 - 远程复制文件: scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径
 
软件安装
通过apt安装/卸载软件
安装软件:sudo apt install 软件包
卸载软件:sudo apt remove 软件包
更新软件:sudo apt upgrade 软件包
Linux指令学习的更多相关文章
- Linux man 用法小结(Linux指令学习笔记)
		
今天买了一本<<Linux命令行与shell脚本编程大全>>,想利用暑假放假的时间系统的学习一下 Linux的shell脚本.今天看了一下书,才发现我之前学习,把Linux s ...
 - linux指令学习笔记(一)
		
1. 查看目录下有什么文件/目录 > ls //list列出目录的文件信息 > ls -l 或ll //list -list以“详细信息”查看目录文 ...
 - Linux mkisofs 创建光盘镜像文件(Linux指令学习笔记)
		
mkisofs命令 创建光盘文件的系统的命令是mkisofs.光盘系统有多种格式,利用Linux系统提供的光盘文件系统创建 命令mkisofs,可以创建多种iso9660文件系统. 我们一般不用mki ...
 - Linux 我的第一个makefile(Linux指令学习笔记)
		
我的第一个makefile 最近学到了makefile的文件的编写.makefile是一个能达到方便编译链接生成目标程序的文件, make确实很方便,在写makefile的过程也能更好的理解gcc编译 ...
 - Linux 指令学习
		
查询java安装地址 which java ls -lrt /bin/java ls -lrt /etc/alternatives/java # 如果已经配好,则echo $JAVA_HOME 更改环 ...
 - 【Linux】指令学习
		
Linux学习记录 生命不息,写作不止 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 1.虚拟机网卡配置 服务器重启完成之后,我们可以通过linux的指令 ip addr ...
 - Linux LVM学习总结——扩展卷组VG
		
Linux服务器由于应用变更或需求的缘故,有可能出现分区空间不足的情况,此时往往需要进行扩容(要增加分区的空间),而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小.如下所示,分区 ...
 - Linux 指令。
		
从16年11月21号开始吧,加班变得特别频繁,基本上一周加5天,周六也会加,下班也很晚,一般都是10点9点,回家之后很疲惫,已经很久没有给自己充过电了,自己的学习计划和健身计划也打乱了,对工作的压力也 ...
 - 别出心裁的Linux系统调用学习法
		
别出心裁的Linux系统调用学习法 操作系统与系统调用 操作系统(Operating System,简称OS)是计算机中最重要的系统软件,是这样的一组系统程序的集成:这些系统程序在用户对计算机的使用中 ...
 
随机推荐
- 数据库访问工具 DBUtl(公孙二狗)
			
数据库访问工具 DBUtil DBUtil 用于简化数据库的访问,只要准备好配置文件,调用 DBUtil 的静态函数就能直接得到查询数据库的结果. 本文主要内容有: 数据库访问的思考 DBUtil 实 ...
 - ios 时间戳 当前时间 相互转化
			
1.今天在做一个webservice的接口的时候,被要求传一个时间戳过去,然后就是开始在Google上找 2.遇到两个问题,一,当前时间转化为时间戳,二,获取的当前时间和系统的时间相差8个小时 一,转 ...
 - excel操作for(lutai)
			
条件统计某个区域的值 第一种方法: =SUMIFS(P2:P5,L2:L5,A2) 第一个参数:被求和的单元格范围 第二个参数:明细表条件值单元格范围 第三个参数:主表条件单元格(可以是范围) 公式的 ...
 - 天气预报API接口
			
原文:天气预报API接口 一.中央气象台API接口: 1. XML接口 http://flash.weather.com.cn/wmaps/xml/china.xml 这个是全国天气的根节点,列出所有 ...
 - android  adb socket 通信
			
今天遇到一个问题:pc客户端和android的App通信,心跳通道(心跳包27个字节,是一个业务空包)在部分pc上总是会超时(5秒超时),nagle算法也给禁用了,pc端时按按量发送心跳的,怀疑来怀疑 ...
 - WP8.1的shell:SystemTray去哪了?
			
WP8.1 中的SystemTray被 StatusBar 代替了.在Windows.UI.ViewManagement 命名空间下,而且只能在后台代码中设置,XAML中不行.用法是这样的: Stat ...
 - Qt https 用户认证authenticationRequired()
			
用QNetworkAccessManager以POST方式访问https需要用户认证,所以用SIGNAL(authenticationRequired(QNetworkReply *, QAuthen ...
 - 开源中国的 IT 公司开源软件整理计划介绍
			
直击现场 <HTML开发MacOSApp教程> http://pan.baidu.com/s/1jG1Q58M 开源中国的 IT 公司开源软件整理计划介绍 oschina 发布于: 20 ...
 - CPU的最小执行单位是线程,协程不需要qt支持...直接用现成的协程库就行了
			
协程也就在I/O操作上才有优势,Qt事件循环,本事很多I/O已经是异步了,利用好异步(虽然都说异步有点反人类思维).因为CPU的执行最小单位是线程,协程也只是在其之上又调度而已. 我的意思是利用好异步 ...
 - 亿方云(用电话或者qq沟通是远远不够的,容易忘还不能反复催,最好的方式就是指定一个平台,团队内的人定期查看最新记录)
			
作者:城年链接:http://www.zhihu.com/question/20579359/answer/106319200来源:知乎著作权归作者所有,转载请联系作者获得授权. 更新,文字发完后,好 ...