Linux(ubuntu16.04)下的一些常用命令操作细节整理
# 本文整理了Linux(ubuntu16.04)上常用的大约几十个命令,并讲述了相关的操作细节:
# cd、pwd、ls、clear、mkdir、touch、rm、cp、mv、tree、chmod、find、grep、重定向>、ln 软链接、硬链接 、压缩zip tar 、exit 等等
----------------------------------------------------------------------------------------------------------------------------------
- 1.touch 如果文件不存在则创建,如果文件已存在不会创建(覆盖)
- 2.mkdir 创建目录 如果目录和文件名重名:
- 先存在文件或目录,再创建目录 —— 报错:文件已存在,无法创建
- 新建目录的名称不能与当前目录中已有的目录或文件同名
- 先存在目录,再touch同名文件,则不会报错,也不会创建(覆盖)存在的目录
- 可以递归创建目录 mkdir 1/2/3/4/4 -p
- 递归创建(新建)的目录和子目录可以重名
- 先存在文件或目录,再创建目录 —— 报错:文件已存在,无法创建
- 3.rm 删除指定的文件名
- 如果指令后面接多个文件或目录,则会删除命令后所有文件的同时,提示:xxx不是文件;
- 如果在上述命令后增加选项 -r ,则会删除命令后面指定的文件或文件夹,但是提示:XXX文件不存在。
- 提示:有报错提示,但是不影响指令的执行
- -r 递归地删除目录下的内容,删除文件夹时必须加此参数
- -f 强制删除,忽略不存在的文件,无需提示
- -i 以进行交互式方式执行
- 5.查阅命令帮助信息:
- “command” --help # eg: rm --help
- man “command” # eg:man rm
- man是manual的缩写,和其配套的还有b,f,j,k,enter键,空格键,q(退出),\word # word是要查找的字符串
- 6.cp 路径/操作文件名 路径/目标文件名
- 文件名->文件名:如果目标文件名已经存在,则会覆盖,这个和touch不同
- 目录->目录:如果操作的是目录名,则 操作的是该目录内的所有内容
- 目录->目录:如果操作的是目录名,则 后面需要加选项 -r
- 目录->目录:如果操作的是目录名,则 后面必须也是一个目录
- 目录->目录:如果目标路径不存在,则 创建路径(目录)
- 文件名->目录/文件名:目录必须已经存在,否则报错;
- -a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
- -f 已经存在的目标文件而不提示
- -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
- -r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
- -v 显示拷贝进度
- 7.cd :切换目录:
- 后面不接参数和选项,则 切换到当前用户的主目录
- cd . & cd .. & cd ~ & cd - ...
- 8.mv : 移动、重命名
- 操作路径/文件名 -> 目标路径/目标文件名
- 如果目标路径存在,则 移动文件,并将路径后面的最有一个/后的内容作为新的文件名
- 如果目标路径不存在,则 报错
- -i 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
- -f 禁止交互式操作,如有覆盖也不会给出提示
- -v 显示移动进度
- 9.重定向命令:> & >>
- Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
- 如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
- 所谓重定向:修改了默认的输出(显示)方向
- 重定向可以用来合并文件
- > 先清空后添加
- >> 不清空,追加到文件的尾部
- 10.1.cat 查看文件内容,直接显示到终端
- 10.2.more 分屏显示
- 查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助
- 10.3.管道:|
- 一个命令的输出可以通过管道做为另一个命令的输入。
- ls -lh | more
- 11.软连接、硬链接:ln
- 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
- 硬链接:硬链接只能链接普通文件,不能链接目录。
- 硬链接格式:ln 源文件 链接文件
- 软连接格式:ln -s 源文件 链接文件
- 注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
- 涉及到在当前的文件夹查找文件名,如果相对路径,之后又把文件移动到原来的位置还是可以用的。
- 修改软连接打开的文件的时候,对应的文件也会修改。
- 修改硬链接打开的文件的时候,对应的原文件也会修改。
- 修改源文件后,通过软连接、硬链接打开都可以看到对应修改后的文件。
- 修改源文件后,对应的多个软、硬链接的文件都会跟着改变。
- 硬链接是同一个文件内容,多个不同文件名,执行ll会显示。
- 12.查看或者合并文件内容:cat
- 相对路径查看
- 绝对路径查看
- 合并:如:cat 1.txt 2.txt > 1_2.txt
- 13.文本搜索:grep
- grep一般格式为:grep [-选项] ‘搜索内容字符串’ 文件名
- -v 显示不包含匹配文本的所有行(相当于求反)
- -n 显示匹配行及行号
- -i 忽略大小写
- grep搜索内容串可以是正则表达式
- 14.查找文件:find
- find -name "*.txt" : 查找当前目录下以.txt结尾的文件
- find -name /home/python "[0-9]" : 查找python目录下的单个数字的文件夹或者文件
- find -size +50k -size -5M : 查找当前目录下文件大小在2k~5M的文件,注意这里k小写;M大写。
- find ./ -perm 777 查找当前目录下权限为777的文件或目录
- 15.归档管理:tar
- tar使用格式 tar [参数] 打包文件名 文件
- -c 生成档案文件,创建打包文件
- -v 列出归档解档的详细过程,显示进度
- -f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
- -t 列出档案中包含的文件
- -x 解开档案文件
- 注意: 除了f需要放在参数的最后,其它参数的顺序任意。
- tar -cvf test.tar * : 将当前目录内所有文件打包成文件名为test.tar
- tar -xvf test.tar : 解压刚才的文件。
16.1. 文件压缩解压:gzip
- tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
- gzip格式:gzip [选项] 被压缩文件
- -d 解压
- -r 压缩所有子目录
- gzip -r test.tar test.tar.gz
- 可以简写:gzip test.tar
- gzip -d test.tar.gz
- 解压缩,注意哟:下面的都是tar命令
- tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
- 压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...
- -z :指定压缩包的格式为:file.tar.gz
- tar -zcvf test.tar.gz * : 将当前路径下的所有文件以文件夹打包并压缩到test.tar.gz文件中
- 解压格式: tar zxvf 压缩包包名
- tar -zxvf test.tar.gz : 解压到当前路径下
- 解压到指定目录:-C (大写字母“C”)
- tar -zxvf test.tar.gz -C /home/python/Desktop : 解压到桌面
16.2. 文件压缩解压:bzip2
- 压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
- 解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
- 总之,和上面用法在于 z --> j ,换一个选项
16.3 文件压缩解压:zip、unzip
- 通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
- 压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
- 解压文件:unzip -d 解压后目录文件 压缩文件
- 目录如果不存在会自动创建,如果放在当前目录,则会出现各种交互式提示
- 17.查看命令位置:which
- 如果找到就显示这个命令的路径,否则不显示
- 18.修改文件权限:chmod
- 字母法VS数字法
- 字母法:chmod u/g/o/a +/-/= rwx 文件
- u user 表示该文件的所有者
- g group 表示与该文件的所有者属于同一组( group )者,即用户组
- o other 表示其他以外的人
- a all 表示这三者皆是
- 增加权限
- 撤销权限
- = 设定权限
- r read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
- w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
- x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
- eg: chmod u+r,g-w,o=wrx 1.py : 对于1.py文件,user
- eg: chmod u-w,g+r,o= 1.py
- r 读取权限,数字代号为 "4"
- w 写入权限,数字代号为 "2"
- x 执行权限,数字代号为 "1"
- - 不具任何权限,数字代号为 "0"
- chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename
- 注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限
19.1.切换到管理员账号root
- $ 表示普通用户
- # 表示管理员账户
- whoami
- sudo -s
19.2.设置用户密码:passwd
- 在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户密码。用户也可以直接使用该命令来修改自己的密码,而无需在命令后面使用用户名。
19.3. 退出登录账户: exit
- 如果是图形界面,退出当前终端;
- 如果是使用ssh远程登录,退出登陆账户;
- 如果是切换后的登陆用户,退出则返回上一个登陆账号。
19.4.查看登录用户:who
- who命令用于查看当前所有登录系统的用户信息。
- -q或--count : 只显示用户的登录账号和登录用户的数量
- -u或--heading : 显示列标题; 这个也是默认模式
- 20.关机重启:reboot、shutdown、init
- reboot 重新启动操作系统
- shutdown –r now : 重新启动操作系统,shutdown会给别的用户提示
- shutdown -h now : 立刻关机,其中now相当于时间为0的状态
- shutdown -h 24:12 : 系统在今天的24:12 会关机
- shutdown -h +10 : 系统再过十分钟后自动关机