终端常用命令

来源:互联网 发布:论坛刷积分软件 编辑:程序博客网 时间:2024/05/18 02:22

学习Linux操作,必须懂得命令。接下来将记录一些Linux操作系统中常用的的一些命令:
- 查看当前目前所有文件与文件夹:

// 查看当前目录所有文件与文件夹ls// 查看指定路径下所有文件与文件夹(例:查看当前目录下的android文件夹的所有文件与文件夹)ls ./android/// 查看当前目录所有隐藏文件与文件夹ls -a// 分屏显示内容,内容过长分屏显示,按空格键可以查看下边部分内容ls | more// 查看当前目录所有文件与文件夹(详细,不包括隐藏的):d开头的为文件夹,-开头的为文件ls -l// 查看当前目录所有文件与文件夹(详细,包括隐藏的):d开头的为文件夹,-开头的为文件ls -al// 查看当前目录所有文件与文件夹(详细-显示文件具体大小,不包括隐藏的):d开头的为文件夹,-开头的为文件ls -lh(或:ls -hl,顺序不影响)// 查看当前目录所有文件与文件夹(详细-显示文件具体大小,包括隐藏的):d开头的为文件夹,-开头的为文件ls -lah(或:ls -alh,ls -hla皆可,顺序不影响)
  • 通配符:
// 查看当前目录下以.png结尾所有文件与文件夹ls *.png// 查看当前目录下以1开头的所有文件与文件夹ls 1*// 查看当前目录下以1开头.txt结尾的所有文件与文件夹ls 1*.txt// 查看当前目录下以1开头.txt结尾的所有文件与文件夹://**  * ? 只匹配一个字符,*可匹配多个字符.  * 例:abc.txt,adddc.txt: 用 ls a*c.txt 命令可以全部获取到;而 ls a?c.txt 只可以获取到abc.txt文件  *//ls 1?.txt// 查看当前目录下abc文件:ls a[b]c.txt// 查看当前目录下aac,abc,acc,adc等txt文件,[]匹配abcd中的其中一个ls a[abcd].c.txt// 查看某个区间下的所有文件:下面操作可获取到a1c.txt,a2c.txt.a3c.txt.a4c.txt文件ls a[1-4]c.txt// 查看*.txt文件,因为*是关键字,此时需要用到转义ls \*.txt
  • 重定向
// 重定向:让原本输出的信息,写入到desc.txt文件(文件不存在会自动创建),若文件有内容,则会被覆盖ls -l > desc.txt// 效果与上面相同,区别:内容不会覆盖ls -l >> desc.txt
  • 进入当前文件下的某个目录(例:python文件夹),有两种方法:
cd ./python/cd python/
  • 自动补全路径:cd phy(“phy”应在当前目录唯一) + tab键
  • 回退到当前目录的父目录:
cd ..
  • 回退到上一次的目录:例:上一次的目录为/Users/Video/Android/,后进行cd /Users/Video/Python/ 命令后进入当前目录,进行如下操作后会回到/Users/Video/Android/ 路径下
cd -
  • 回到家目录
cd ~
  • 进入某个文件夹里面(绝对路径):
cd /Users/Video/python/
  • 创建/删除文件(警告:删除后数据不可恢复)
// 创建1.txt文件touch 1.txt// 删除1.txt文件rm 1.txt
  • 创建/删除文件夹(警告:删除后数据不可恢复)
// 创建python文件夹mkdir python// 删除python文件夹(非空文件夹不能删除)rmdir python// 删除python文件夹(非空文件夹也可以删除),原理:先删除里面的文件,后才将文件夹删除rm python -r// 强制删除,无需提示rm python -rf 或者 rm python -r -f
  • 文件/文件夹的拷贝与剪切:
// 文件拷贝cp abc.txt python/// 文件夹拷贝cp android/ python/ -r// 文件剪切mv abc.txt python/// 文件夹剪切mv android/ python/// 文件重命名mv abc.txt abcd.txt
  • 读取文件内容
// 显示全部内容cat desc.txt// 将desc.txt文件的内容写入到abc.txt文件里(相当于内容复制),abc.txt不存在会自动创建cat desc.txt > abc.txt// 将多个文件的内容写入到一个文件中,>>不覆盖以前的内容,>会覆盖以前的内容cat desc.txt aaa.txt >> abc.txt // 显示全部内容,内容过长会分屏,按空格显示下边内容more desc.txt
  • 在文件中查找内容:
// 在abc.txt文件中查找python关键字grep 'python' abc.txt// 在abc.txt文件中查找python关键字,并显示行号grep -n 'python' abc.txt// 在abc.txt文件中查找py[abcd]on(匹配到abcd中的其中一个),并显示行号grep -n 'py[abcd]on' abc.txt// 在abc.txt文件中查找p开头的那一行,并显示行号grep -n '^p' abc.txt// 以abc.txt文件中查找H或h开头的那一行grep -n '^[Hh]' abc.txt// 在abc.txt文件中查找n结尾的那一行,并显示行号grep -n 'n$' abc.txt// 以abc.txt文件中查找H或h结尾的那一行,并显示行号grep -n '[Hh]$' abc.txt
  • 文件查找:
// 查找当前目录下的demo.py文件(可指定路径查找)find ./ -name demo.py// 查找当前目录下的py结尾的文件(可指定路径查找)find ./ -name '*.py'// 查找当前目录下的abc开头的文件(可指定路径查找)find ./ -name 'abc*'...// 查找当前目录下2M的文件(可指定路径查找)find ./ -size 2M// 查找当前目录下大于2M的文件(可指定路径查找)find ./ -size +2M// 查找当前目录下小于2M的文件(可指定路径查找)find ./ -size -2M// 查找当前木下大于2M小于5M的文件(可指定路径查找)find ./ -size +2M -size -5M
  • 往文件里面写入内容
    • vi aaa.txt 进入命令模式,此时可进行如下命令:

      注意:此时区分大小写
      kjhl 代表上下左右键
      A 行尾 I行首
      G 文本末端 数字+G代表移动到第几行(例:2G移动到第二行)
      dd 删除当前光标所在的行
      u 撤销
      << 光标所在行整行左移 >> 光标所在行整行右移
      yy 复制当前行 p 粘贴
    • 按i键进入编辑模式,此时可是书写内容
    • 按esc退出编辑模式 进入命令模式。
    • 按shift+;进入末行模式,此时可进行如下命令

      %s/sm/ms/g 将所有sm字符替换成ms字符
      5,15s/sm/ms/g 在5-15之间的所有sm字符替换成ms字符
      5,15<<<< 5-15行之间整体左缩进4次
      5,15>>>> 5-15行之间整天右缩进4次
    • 按wq回车退出保存
  • 打包解包:
// 打包tar -cvf 包的名字.tar 文件名 ... 文件名// 解包tar -xvf 包的名字.tar// 将a.py b.py c.py打包成python.tartar -cvf python.tar a.py b.py c.py// python.tar解包tar -xvf python.tar
  • 压缩/解压
--------------------gzip--------------------// 压缩tar -zcvf 包的名字.tar.gz 文件名 ... 文件名// 解压tar -zxvf 包的名字.tar.gz// 解压到指定路径tar -zxvf 包的名字.tar.gz -C 路径// 压缩tar -zcvf python.tar.gz *.py// 解压tar -zxvf python.tar.gz// 解压到指定路径tar -zxvf python.tar.gz -C ./python/--------------------bzip2--------------------// 压缩tar -jcvf 包的名字.tar.bz2 文件名 ... 文件名// 解压tar -jxvf 包的名字.tar.bz2 // 解压到指定路径tar -jxvf 包的名字.tar.bz2 -C 路径--------------------zip--------------------// 压缩zip 包名(可不加.zip扩展名) 文件名 ... 文件名// 解压unzip 包名.zip// 解压到指定路径unzip -d 路径 包名.zip// 压缩zip python *.py// 解压unzip python.zip// 解压到指定路径unzip -d python python.zip
  • 创建文件链接(即快捷方式):
// 软链接:ln -s 源文件 链接文件ln -s a.py a_link.py// 硬链接:ln 源文件 链接文件ln a.py a_link.py区别:软连接,源文件删除之后,链接文件将不能使用,而硬链接源文件删除之后可继续使用。
  • 查看当前目录的绝对路径:
pwd
  • 获取某个命令的作用(例:查看ls命令的作用):
man ls
  • 获取某个函数的作用(查看printf的作用,显示第1章节。注:并不是所有的函数能查到):
man 1 printf
  • 查看使用过的历史命令:
history
  • 强制杀死某个程序
// 杀死kill 程序对应的PID// 强制杀死kill -9 程序对应的PID
  • 重启操作系统(需要超级管理员角色)
// 重启reboot// 重启int 6
  • 关机(需要超级管理员角色)
// 关机shutdown// 立即关机shutdown -h now// 系统在20:20分自动关机shutdown -h 20:20// 10分钟后自动关机shutdown -h +10// 关机int 0 
  • 查看当前IP地址
ifconfig
  • 远程登录某个人的电脑
ssh 用户名@他的电脑IP地址
  • 查看当前有多少人登录我的电脑
// 查看当前有多少人登录我的电脑who// 查看当前我的登录名whoami// 查看当前一共有多少人登录我的电脑who -q// 
  • 清屏
clear
  • 进入超级管理员角色
sudo -s
  • 创建角色(需切换到超级管理员才能操作)
// 创建角色,不创建家目录useradd laowang// 创建角色自动创建家目录地址useradd laowang -m// 创建角色指定家目录地址useradd laowang -d 路径// 为角色设置密码passwd laowang
  • 删除角色(需切换到超级管理员才能操作):当前用户没在使用,才可以删除
// 删除角色,但不删除该用户的家目录userdel laowang// 删除用户,并且删除用户的家目录userdel -r laowang
  • 切换角色
// 切换到老王角色su laowang// 切换用户并同时切换到当前用户的家目录su - laowang// 修改密码passwd
  • 查看当前有几个角色:
car /etc/passwd/
  • 查看当前用户组:
// 查看当前用户组,并显示用户组有哪些人cat /etc/group// 查看当前用户组groupmod 按两至三下Tab键// 只查看sudo组cat /etc/group | grep 'sudo'// 查看某个用户在哪个用户组(例:查看老王在哪些用户组里)groups laowang
  • 添加/删除用户组(需要超级管理员角色)
// 添加名为WWW的用户组groupadd WWW// 删除名为WWW的用户组groupdel WWW
  • 修改/增加角色的用户组
// 修改老王的默认用户组usermod -g AAA laowang// 增加用户组usermod -a -G BBB laowang
  • 修改文件与文件夹权限(只有文件创建者或超级管理员才能修改):若文件夹无执行权限,则不能点进该文件夹里面
常见文件权限:-rw-rw-r--第一个"-"为标识为文件,其他可分为三组:第一组"rw-",标识为u, 本用户有读写权限,无执行权限;第二组"rw-",标识为g,跟本用户同组的用户拥有读写权限,无执行权限;第三组"r--",标识为o,其他用户只有读全下,没有写入和执行权限// 修改1.py文件权限,是本用户拥有执行权限chmod u+x 1.py// 修改1.py文件权限,使跟本用户同组的用户拥有执行权限chmod g+x 1.py// 修改1.py文件权限,使其它用户拥有写入权限chmod o+w 1.py// 批量操作,本用户有读写权限,跟本用户同组的用户有读写权限,其他用户只有读权限chmod u=rw,g=rw,o=r 1.py// 批量操作,使所有用户无任何权限chmod u=,g=,o= 1.py// 批量操作,使所有用户无任何权限(a代表all)chmod a= 1.py---------------修改文件权限的另一种方式---------------注:读取=4 ,写入=2,执行=1,无任何权限=0,有任何权限=4+2+1=7// 本用户有任何权限,同组者有读写权限,其他用户只有指定权限chmod 761 1.py
  • 修改文件的创建者(需要超级管理角色)
// 把老王变为1.py文件的创建者chown laowang 1.py
  • 修改文件所在的组
// 将1.py修改到AAA组chgrp AAA 1.py
  • 退出当前登录角色
exit;
  • 向远端服务器上传下载文件
// 将perosn.py上传到laowang的/home/laowang/python文件夹中scp ./person.py laowang@192.168.10.20:/home/laowang/python// 上传文件scp -r ./python laowang@192.168.10.20:/home/laowang/python// 从远程下载文件到本地scp laowang@192.168.10.20:/home/laowang/python/1.py ./python// 从远程服务器下载文件夹到本地scp -r laowang@192.168.10.10:/home/laowang/python ./python
原创粉丝点击