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 | cat README.TXT | xsel |
Mac 复制粘贴
1 | cat a.txt | pbcopy # 将a.txt文件类容写入剪切板,相当于 cmd + C |