终端常用命令

学习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.tar
tar -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
  • 查看当前有几个角色:
cat /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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值