Linux指令学习 【博客园】windows10 ubuntu子系统 WSL文件位置
Linux命令格式:命令名 选项 参数
Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等,在职场中,大量的服务器维护工作都是在远程通过SSH 客户端来完成的,并没有图形界面,所有的维护工作,都需要通过命令来完成,在职场中,作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令,Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已。
文件及目录操作
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 -l 以列表方式显示文件的详细信息
- ls -a 显示全部(包括隐藏文件)
- ls -t 按照修改时间排序
- ls -l -h 以人性化的方式显示文件大小
cd 目录 :切换路径
- cd 和 cd ~ :切换到当前用户的主目录(/home/用户目录)
- cd . :当前目录
- cd .. :上级目录
- cd – :上一次所在目录
mkdir 目录 :创建目录
- mkdir -p :如果父目录不存在,同时创建父目录
文件操作
touch 文件名 :创建文件
echo 内容 > 文件名 :向文件写入内容
- echo \’abc\’ > test1.txt (将abc字符串写入test1.txt,会覆盖原来的内容;如果不想覆盖原来的内容,使用两个大于符号>>)
cat 文件名 :查看文件内容
tree 目录名 :以树状图的形式查看目录文件结构
head -n 行数 文件名 :查看文件前几行
tail -n 行数 文件名 :查看文件最后几行
find /(查找范围) -name \’查找关键字\’ -type d :查找目录
- find / -name \’tomcat7\’ -type d :查找tomcat7文件夹所在的位置
find /(查找范围) -name 查找关键字 -print :查找文件
- find / -name \’server.xml\’ -print :查找server.xml文件的位置
- find -name “*1*“ 搜索文件名包含1的文件
- find -name “*.txt“ 搜索所有以.txt为扩展名的文件
- find -name “1*“ 搜索以数字1开头的文件
cp 原文件 新文件 :文件复制
mv 原文件路径 新文件路径 :文件移动
rm [选项] 文件名|目录名 :文件删除
- -f 强制删除(慎用!)
- -i 互动模式,在删除前询问
- -r 递归删除目录下的内容,删除文件夹时必须的加此参数
权限管理
三个权限参数: 读 写 执行
- 参数:r可读,w可写,x可执行,-什么都不行
在rwx三个权限中,从右至左依次用值4、2、1来表示,所以拥有某个文件的读、写、执行权限也可以用三个权限值累加的方式来表示,如下表所示:
权限 | rwx | rw- | r-x | r– | -wx | -w- | –x | — |
含义 |
可读4 可写2 可执行1 |
可读4 可写2 不可执行0 |
可读4 不可写2 可执行1 |
可读4 不可写2 不可执行0 |
不可读0 可写2 可执行1 |
不可读0 可写2 不可执行0 |
不可读0 不可写2 可执行1 |
不可读0 不可写2 不可执行0 |
对应值 | 4+2+1=7 | 4+2+0=6 | 4+0+1=5 | 4+0+0=4 | 0+2+1=3 | 0+2+0=2 | 0+0+1=1 | 0+0+0=0 |
修改文件权重:chmod {权限值} {文件/目录名}
- 给文件夹增加权限(-R表示递归):chmod -R 777 文件夹
- 给文件增加权限:chmod 777 文件
- 给文件test1.txt添加可执行权限 chmod +x test.txt
- 设置文件,拥有者有读、写、执行权限,其他用户没有访问权限chmod 700 test1.txt
- 如果给所有人添加可执行权限:chmod a+x 文件名
- 如果给文件所有者添加可执行权限:chmod u+x 文件名
- 如果给所在组添加可执行权限:chmod g+x 文件名
- 如果给所在组以外的人添加可执行权限:chmod o+x 文件名
通配符
- *:代表任意个数字符
- ?:代表任意一个字符,至少1个
- []:表示可以匹配字符组中的任意一个
- [abc]:匹配a、b、c中的任意一个
- [a-f]:匹配从a到f范围内的任意一个字符
linux的通配符和正则表达式有很多相似点,可以参考我写正则表达式的这篇文章
压缩与解压
windows常用rar,Mac常用zip,Linux常用tar.gz。linux中常使用tar命令进行打包、压缩、解压操作,gz后缀名表示进行了压缩,tar后缀名表示进行了打包,加后缀名是为了清晰、易于理解,而不是必须的。
tar格式
参数:
- c 创建打包文件
- x 解开打包文件
- v 列出详细过程,显示进度
- f 执行打包的文件名称,f后面一定是.tar文件,所以必须放在选项后面
- z 使用gzip方式压缩
压缩
tar -cvf jpg.tar *.jpg :将目录里所有jpg文件打包成jpg.tar
tar -czf jpg.tar.gz 文件1 文件 2 目录 *.jpg :将目录里所有jpg文件打包成jpg.tar.gz
tar与gzip命令结合可以实现文件 打包和压缩
- tar只负责打包文件,但不压缩
- 用gzip压缩tar打包后的文件,其扩展名一般用 xxx.tar.gz
解压
tar -zxvf xxx.tar.gz :解压xxx.tar.gz到当前位置
tar -zxvf xxx.tar.gz -C 解压到指定的文件位置 :解压xxx.tar.gz到指定位置,注意:要解压缩的目录必须存在
tar -xvf xxx.tar :解压xxx.tar到当前位置
tar -xvf xxx.tar -C 解压到指定的文件位置 :解压xxx.tar到指定位置,注意:要解压缩的目录必须存在
tar -xjvf xxx.tar.bz2 :解压xxx.tar.bz2
tar -xZvf xxx.file.tar.Z :解压tar.Z
zip格式
压缩
zip -r dataset.zip dataset/ :将dataset文件夹压缩成dataset.zip
zip -r dataset.zip p225.wav p226.wav :将p225.wav 和p226.wav压缩成一个压缩包 dataset.zip
zip -dv test.zip file1 :从压缩文件 test.zip 中删除文件 file1
zip -q -r soft.zip /home/soft :将 /home/soft/ 这个目录下所有文件和文件夹打包为当前目录下的 soft.zip:
解压
unzip dataset.zip :将 dataset.zip 解压到当前文件夹
unzip -o dataset.zip -d dataset/ :将dataset.zip解压到dataset文件夹,如果已有相同的文件存在,要求unzip命令覆盖原先的文件
其他命令
网络操作
ifconfig :查看/配置计算机当前的网卡配置信息
ping ip地址 :检查目标 ip地址 的连接是否正常,数值越大,速度越慢
ssh 用户名@ip :远程登录
复制文件
1、拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/root目录下
scp -r /home/wtf/test/ root@192.168.100.1:/root/
2、拷贝单个文件至远程主机
scp /home/wtf/test/wtf.txt root@192.168.100.1:/root/
关机
命令格式: shutdown 选项 时间
shutdown now :现在就关闭电脑
shutdown 20:10 :时间20:10分关闭电脑
shotdown -r +10 :十分钟后重启电脑
shotdown -c :取消之前指定的关机计划
shutdown :不设置选项和参数:默认1分钟后 关闭电脑
软件安装与卸载
通过apt安装/卸载软件
sudo apt install :安装软件
sudo apt remove :卸载软件
sudo apt upgrade :更新软件
autoreconf命令
autoreconf [参数] [目录] :更新已经生成的配置文件
使用autoreconf命令可以重复编译指定目录下的系统文件或configure-ac指定的目录树。默认情况下,它只编译比以前编译文件更新的文件。
常用参数
- -v:详细报告处理
- -d:不删除临时文件
- -f:认为所有的问价都是过期的文件,强制执行
- -i:复制辅助文件
- -s:创建符号链接,而不是复制
- -m:当可用时,重新运行命令./configure 和 make
- -w:报告语法错误信息
window平台安装ubuntu子系统
1、安装Ubuntu子系统,具体的操作步骤可以参考Win10安装Ubuntu子系统超详细攻略这篇知乎文章,步骤一步一步的进行下去就OK了。
2、在文件夹中,我们可以通过shift + 鼠标右键,快速打开 linux shell,即wsl。
微软为我们提供了一个默认的变量可以直接指向WSL的目录 wsl$ , 你可以在运行(win+R)或资源管理器的路径里直接输入 \\wsl$ 进入Ubuntu的目录,
知道WSL的网络路径后你可以直接将它添加到资源管理器的网络位置里