用生命谱写代码的赞歌

0%

Linux 常用命令

Linux 命令

一些常用的 Linux 命令,不定时更新……

Linux 文件和目录

目录

  • /: linux根目录
    • /bin: 可执行的二进制文件目录,如常用的命令ls/tar/mv/cat等
    • /sbin: 放置系统管理员使用的可执行命令
    • /usr: 用户相关
    • /lib: 系统使用的函数库的目录

路径

  • .和..: 每个目录下都有.和..
    • . 表示当前目录
    • .. 表示上一级目录,即父目录
    • 根目录下的. 和 .. 都表示当前目录

Linux简单命令

sudo -s: 获取管理员权限(Ubuntu)

man: 手册帮助(manual)

man是linux提供的一个手册,分成很多章节(section),使用时可以指定不同章节来浏览

man ls或者man 2 printf

q可退出man手册,h可查看man手册如何操作

grep: 文本搜索

一般格式: grep [-选项] '搜索内容串' 文件名

  • grep -v 'abc' abc.py: 显示不包含abc的所有行
    • v 表示不包含匹配文本的所有行(相当于求反)
    • n 表示显示匹配行及行号
    • i 表示忽略大小写

搜索内容串可采用正则表达式

history: 查看输入过的历史命令

history > history.txt: 将历史记录到处到 TXT 文件中
cp ~/.bash_history myHistory.txt: 将历史记录复制到任意命名的文件中

cat: 查看或者合并文件内容,重定向

cat 1.py > 2.py: 将1文件的内容写入到2文件,如果没有2文件则新建2文件

cat 1.py 2.py > 3.py: 将1文件和2文件的内容追加写入到3文件

>>: 追加重定向

more: 分屏显示

more index.html: 当一个屏幕显示不全可使用more命令分屏显示,每次只显示一页,按下空格键显示下一页,按下q键退出,按下h键获取帮助

管道 |

管道: 一个命令的输出可以通过管道作为另一个命令的输入,例如:

ls -alh | more

find: 查找文件

find / -name aa.py: 从根目录开始查找aa.py文件(文件名可以使用正则表达式)

find / -size +2M: 从根目录开始查找文件大小大于2M的文件

find / -size -2M: 从根目录开始查找文件大小小于2M的文件

cp: 拷贝文件

  • cp aa.py python/: 拷贝aa.py文件到当前的python目录下

  • cp python python2/ -r: 拷贝python文件夹到当前的python2文件夹中

  • cp bb.py python/ -avi:

    • v表示显示拷贝进度;
    • a表示复制目录时保留链接、文件属性,并递归地复制目录,即保持文件原有属性
    • i表示交互式复制,在覆盖目标文件之前提示用户;
    • r表示递归复制目录下的所有子目录和文件;
    • f表示强制执行,已经存在的目标文件不提示

ln: 硬链接与软链接

ln abc.py abclink.py: 硬链接,只能链接普通文件,不能链接目录.相当于一个文件有多个名字,删除一个不影响另一个

ln -s abc.py abclink_s.py: 软链接,不占用磁盘空间,删除源文件则链接失效,相当于windows的快捷方式

mv: 移动文件,可用于重命名

mv cc.py python/: 移动cc.py文件到python文件夹

mv python python2: 移动python文件夹到python2文件夹

mv cc.py dd.py: 相当于将cc.py重命名为dd.py

tar: 打包与 gzip/zip: 压缩文件

tar -cvf test.tar 1.txt 2.txt 3.txt: 打包1 2 3文件到test.tar

tar -xvf test.tar: 解包test.tar

gzip -r test.tar test.tar.gz或者简写为gzip test.tar: 压缩test.tar

gzip -d test.tar.gz: 解压缩test.tar.gz

tar -zcvf test.tar.gz *.py: 打包并压缩所有后缀名为py的文件

tar -zxvf test.tar.gz: 解压并解包

tar -zxvf test.tar.gz -C python/: 解压并解包到指定文件夹

tar -jcvf test.tar.bz2 *.py: 打包并压缩为bz2格式

tar -jxvf test.tar.bz2: 解压缩并解包

zip -r myzip *.*或者简写为zip myzip *.*: 压缩为zip格式

unzip -d test myzip.zip: 解压zip文件到test文件夹中

which: 查看命令

which ls: ls命令在哪
which sudo: sudo命令在哪

ps: 查看进程信息

ps -ef|grep nginx: 查看包含nginx的进程
lsof -i:8989: 查看8989端口是否被占用
ps -lu hsj: 查看属于用户hsj的进程
pgrep -l re: 查看进程名中含有re的进程

top: 动态显示进程

kill: 杀死进程

kill -9 进程pid号: 强制杀死

reboot/shutdown/init: 关机重启

df: 检测磁盘空间

ifconfig: 查看或配置网卡信息

ping: 测试远程主机连通性

Linux用户管理

查看/添加/删除用户

who: 查看当前登录的信息

whoami: 查看我是谁

ssh 用户名@ip地址: 远程登录某台机器

useradd xxx或者adduser yyy: 添加新用户

useradd laowang -m: 添加新用户并添加家目录

useradd laowang -d /home/xxx: 添加新用户并且自己指定家目录

passwd xxx: 为xxx用户添加密码

userdel -r laowang: 删除用户并删除该用户家目录

su - laowang: 切换账户并把当前目录更换到家目录(Ubuntu)

su laowang: 切换账户(Ubuntu)

su root: 切换到root用户

Linux修改文件权限

  • 字母法: chmod u/g/o/a +/-/= rwx 文件名
    • u: user表示文件所有者
    • g: group表示与该文件的所有者属于同一组(group)者,即用户组
    • o: other表示其他人
    • a: all表示这三者都是
    • +: 增加权限
    • -: 撤销权限
    • =: 设定权限
  • 数字法: chmod 751 文件名
    • r: 读取权限,数字代号4
    • w: 写入权限,数字代号2
    • x: 执行权限,数字代号1
    • -: 不具任何权限,数字代号0

Linux修改文件所有者

chown 用户名 文件或目录名

Linux修改文件所属组

chgrp 用户组名 文件或目录名

Linux 复制粘贴

1
2
3
4
5
6
7
cat README.TXT | xsel
cat README.TXT | xsel -b # 如有问题可以试试-b选项
xsel < README.TXT
# 将readme.txt的文本放入剪贴板

xsel -c
# 清空剪贴板

Mac 复制粘贴

1
2
cat a.txt | pbcopy   # 将a.txt文件类容写入剪切板,相当于 cmd + C
pbpaste # 将刚刚存入剪切板的a.txt内容复制到终端,相当于 cmd + v