今日要求:了解linux和相关文件、系统的命令。
一、 Linux
Linux、winsows、mac、android、ios是目前所了解到的操作系统,它们作为设备和应用程序的连接纽带。Linux和Windows一样,只是目前市场中个人桌面这块Windows大家接触的多;但在服务器方面,Linux则比较突出,它具有免费、高效、稳定等特点。而且在嵌入式领域的应用十分广泛。
二、 命令
2.1 文件和目录
家目录为 /home/user 或者 ~
目录分为两种:
绝对目录,从根目录开始写
相对目录:相对当前所在的位置开始写
2.1.1 命令的格式
command [-options] [parameter1][parameter2]...
command:命令名,相当于do;
options:选项,相当于how,对命令进行规范,有时几个可以同时使用,大多数情况下不分先后顺序(目前已知打包-f必须放在最后);有时也可省略。
parameter:命令的对象。
notes:查看命令的位置:which command
自动补全命令按Tab键
上下方向键可以快速切换之前输入的命令,输入history直接看到所有输入的命令(history | more分屏,q键退出)
退出一般按q键,无效的情况按Ctrl+C键,Ctrl+Z是将进程暂时挂起,fg再次运行,bg后台运行。
2.1.2 命令的帮助
在使用命令的时候出现问题,可用下面两种方法采取帮助。(以ls为例)
- --help:ls --help
- man:man 1 ls
man手册分为8类,第一类是标准命令,如不输入类别则是按1-8的顺序搜索。
b键上一页,空格下一页,h键手册指南,q键退出。(man ls | more分屏显示ls --help | more)
2.2 文件管理命令
2.2.1 切换工作目录 cd
目录分为两种:从/根目录开始的绝对目录和从./当前目录开始的相对目录
cd ~直接切换到家目录/home/user/
cd .(cd ./)目录不变
cd ..(cd ../)切换到上一层mulu
cd -切换到上一层目录所在位置
cd 后可直接跟绝对目录和相对目录
显示当前路径 pwd;清屏clear(快捷键Ctrl+L)
2.2.2 查看当前目录下的文件目录 ls
ls -a 也显示当前目录下的隐藏文件
ls -l 以列表的形式显示,显示文件的详细信息(包括权限、硬链接数、最后一次修改时间、文件名等)。
ls -lh 以列表的形式显示,额外显示文件的大小(-h不单独使用)
通配符:*可以代替多个字符,?代表任意一个字符,转义字符使得*、?失效,当*、?放在[]内时失效,-放在[]外时也失效。
查看以a开头的文件名:ls a*
查看.py结尾的文件名:ls *.py
查看名为*a.py的文件名:ls *a.py
此外还有:ls a?.py;ls a[abcd].py;ls a[a-z].py
2.2.3 重定向指令
ls 和 cat 均可,>先清除文件中的内容,再重新输入。>>不清除,在文件内容末尾处直接添加『cat [文件名],表示查看该文件内容』
ls a.py > b.py(cat a.py > b.py)或者ls a.py >> b.py(cat a.py >> b.py)
关于ls和cat重定向的区别:在ls重定向的新文件内容是文件名;cat重定向的新文档内容是文件内容。
2.2.4 管道与分屏显示
|:管道,用|将命令隔开,一次可以输入n个命令(同时创建删除文件可行,再切换目录这一步失效)。
more:分屏显示,一般与|合用。(也可more 文件名)
2.2.5 创建目录和删除目录
创建目录:
创建一级目录,直接输入mkdir 文件夹名
创建多级目录,添加选项-p,如:mkdi -p 文件夹名/文件夹名/文件夹名/.... (-p位于文件夹名前后都可以)
删除目录:
rmdir 文件夹名(必须为空文件夹)
2.2.6 拷贝文件 cp 和移动文件 mv
拷贝文件: sudo cp [-options] 原文件所在目录及文件名 拷贝文件目录及其文件名(在同一目录下则不用sudo 和写文件名,当前路径就是文件所在路径也可省略)
选项:-a 拷贝时文件属性不变
-v 拷贝进度
-r 拷贝文件夹
-f 拷贝时不再提醒文件名重复等
移动文件:sudo mv [-options] 原文件所在目录及文件名 拷贝文件目录及其文件名(在同一目录下则不用sudo 和写文件名,当前路径就是文件所在路径也可省略)
选项:-f 移动时不提醒
-i 提醒
-v 显示移动进度
Notes:mv 文件名1 文件名2 对文件1进行重命名为文件名2
2.2.7 创建和删除文件
创建:
touch:创建文件,例如:touch txet.py
gedit:新建编辑保存文件,例如:gedit text.py
删除:rm :删除文件,例如:rm a.py ;
-i: 挨个删除,一一确认;(yes或y)
-r:对于文件夹必须添加-r选项;
-f:删除不存在的文件,无需提示。
2.2.8 建立链接文件:ln
ln软链接文件类似于Windows的快捷方式;硬链接类似于复制粘贴,且只能链接文件。
跨目录的话建议用:sudo ln [-s] /原文件的位置/ /链接的位置/
2.2.9 查找文件 find find / 所要查找的目录/ [-options] '字符串‘
find /所要查找的目录/ -name 文件名
find /所要查找的目录/ -name ‘*.py'
find /所要查找的目录/ -name "[a-z]*" (文件名这块用双括号和单括号没有区别)
find /所要查找的目录/ -size +4k -size -2M
find /所要查找的目录/ -perm 777(或者0777,几个零无所谓)
2.2.10 文本搜索 grep grep [-options] ‘字符串’
选项:-v 除输入的字符串以外的行
-n 显示行数
-i 搜索不区分大小写
通配符:
grep -n '^a' 文件名 在文件中搜索以a开头的行
grep -n '.py$' 文件名 在文件中搜索.py结尾的行
grep -n [lL]ik[Ee] 文件名 在文件中搜索like、Like、likE、Like所在的行
grep -n 'e.e' 文件名 (.代表任一一个字符)在文件中搜索三个字符的字符串所在的行,该字符串中间字符任意
2.2.11 归档打包tar tar [-options] 打包名.tar 被打包文件名1 被打包文件名2...(-f 不能省)
选项:-c 打包
-x 拆包
-v 显示进度
-f 指定打包的文件名称,必须放在选项最后一个,后跟打包名.tar
-t 列出打包件中的东西 (tar -tf 打包名.tar)
2.2.12 文件压缩解压
- tar -z (-j)压缩命令:压缩包名可为:名tar.gz;也可是名tar.gz2,或者是名.tar.bz,或者是名.tar.bz2
压缩:tar -cvzf 压缩包名 被压缩包名1 被压缩包名2...
解压:tar -xvzf 压缩包名(解压到指定目录,在压缩包名后添加 -C /目录/)
- gzip压缩命令:
压缩: gzip [-r] 压缩包名.tar
解压: gzip -d 压缩包名.tar.gz
- zip/unzip
压缩:zip [-r] 压缩包名(.zip) 被压缩包名1 被压缩包名2...
解压:unzip -d 解压后的目录 压缩包名.zip
2.3 Linux 命令-用户、权限管理
用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。
exit : 退出终端(打开用Ctrl+Alt+T)
whoami: 查看当前用户的身份(查看系统用户信息:cat /etc/passwd)
who : 查看当前所有登录系统的用户信息
选项:
-q (--count) 只显示登录的用户名和用户的数量
-u 显示用户最后一次操作到现在的时间间隔
--heading 显示列标题
切换用户:su
sudo su [-] 用户(用户无则表示切换至root用户)
- :表示切换用户后,目录也切换至新用户主目录
无-:则仅仅是切换用户,目录不变
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是 ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。
添加、删除用户组账号groupadd、groupdel (查看系统用户组: cat /etc/group)
添加:sudo groupadd 组账号
删除:sudo groupdel 组账号
修改用户所在组 usermod
usermod -g 组账号 用户名
添加用户账号:useradd usersdd [-选项] 用户账号
选项:-g 指定组名称
-m 自动建立目录
-d 主动建立主目录,否则在家目录中自动建立与用户名同名的主目录
Notes: Linux 个用户必须有主目录,一般都在/home目录中,用户的主目录和用户名一般一样。
删除用户账号:userdel
userdel [-r] 用户名
-r表示是否删除该用户的同时是否删除其主目录
设置用户密码:passwd passwd 用户名
修改文件权限:chmod
- 第一种:字母法 chmod u/g/o/a +/-/= rwx 文件名
u:user,用户;g:group,用户所在用户组;o:others,其他用户组;a:all,所有用户。
+:增添权限;-:去除权限,=:重新赋予权限。
r:read,具有浏览的权限,如:浏览该目录的内容;w:write,具有编辑的权限,如:创建新文件;x:execute,具有运行的权限,如:切换到该 目录的权限。
- 第二种:数字法 chmod 777 文件名
r=4,w=2,x=1,-=0,rwx所在位置权限对应数字相加。如:rwxrw-r--对应数字为764;rwx------对应数字为700.
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限(-R位置可前可后)
修改文件所有者:chown chown 用户名 文件
修改文件所属组:chgrp chgrp 用户组 文件
2.4 系统管理
cal :查看日历 -y 查看整年的日历
date:显示时间
设置时间格式:sudo date MMhhmmccyy.ss(MM月份,hh小时,mm分钟,cc年前两位,yy年后两位,ss秒)
ps :查看进程信息 ps [-]options
选项:-a 显示终端上的所有进程
-x 显示没有控制终端的进程
-r 显示正在运行的进程
-u 显示进程的详细信息
kill :结束进程 kill [-signal] PID (PID 通过ps查看;信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。)
top : 动态显示进程 -d 指定时间间隔,单位:s
M键:按内存占有率排序
P键:按cpu占有率排序
T键:按运行时间排序
U键:输入用户名筛选进程,Enter;退出:Ctrl+C
K键:输入PID来结束进程,Enter,退出:Ctrl+C
H键:帮助
Q键:退出
reboot:重新启动(等同于 init 6)
shutdown -r now :重启,并通知其它用户
shutdown -h now:关机(等同于 init 0)
shutdown -h time :在time时刻关机
shutdown -h +time:time时间后自动关机
df :检查文件系统的磁盘占用和空余情况(df :只显示非空的情况)
选项:-T:显示文件系统的类型
-t 文件系统 :显示指定文件系统的磁盘占用和空余情况
-m: 以1024字节为单位显示
-a :显示所有文件系统的磁盘使用情况
du:统计目录或文件占磁盘空间的大小
选项:-a 目录:递归显示指定目录中各文件和各子目录中文件占磁盘空间的大小
-s 目录:显示指定文件或目录占磁盘的大小(-a 详细描述,-s只统计整体的大小)
-b:以字节为单位显示占磁盘的大小情况
-l : 计算所有文件大小,包括硬链接
网卡信息:查看网卡信息:ifconfig
更改ip:sudo ifconfig 网卡代码 新ip(网卡代码:ens33、eth0等)
测试远程主机连通性:ping (一直跑的情形说明已连接)
ping ip地址(网址)