工作中经常用到的linux命令

ls: 列出当前文件夹下的所有文件,附带-al可显示隐藏文件,如果想查看文件占多少M或是多少G,可以接着附带–block-size=(可选M或G),比如查看当前所有文件夹下包括隐藏文件在内的所有文件,并显示它们所占多少M,可以这样写ls -al --block-size=M
cd: 打开对应的文件夹,如果后面的文件夹参数是~,则会打开用户文件夹,如果文件夹参数是/,则会跳到根目录
pwd: 显示当前文件路径
mkdir: 创建一个文件夹
touch: 创建一个空文件,当然有时候直接vim创建并保存可能更直接一点
rm: 删除指定文件,加上-r可以删除文件夹,加上-f可以强制删除,不用询问
mv: 移动旧的文件到新的路径,当然有时候可以用来重命名
cp: 复制文件,如果源文件是文件夹,则需要cp -r 源文件夹 目标文件夹
cat: 打印输出内容
less: 分页打印输入内容
head: 打印输入内容的头几行
tail: 打印输入的内容的最后几行,经常是 tail -f 目标日志文件 来调试输出
which: 查看目标命令是否存在以及对应文件路径
whereis: 同which,不过是查看二进程程序的文件路径
find: 查找对应目录下对应的文件,可以添加筛选条件,通常用法是 find . -name ‘xxxx’ 来查找对应文件名特征的文件
find -type f -size +1k -print0 寻找超过过size大小的文件
find -type f -size +1k -print0|xargs -0 du -h 找出大于1k的文件并罗列出来
chmod: 改变文件的读写执行权限,这个读写执行权限分别有三档,对应root用户,文件所属者用户,以及除前两者之外的其他用户,一般都是暴力得将文件设置为全部权限,即 chmod 777 目标文件
chown: 改变文件的所属用户和用户组,比如 chown biao:biao test.txt 将test.txt的用户和用户组都改为biao
diff: 比较文件的差异,不常用,毕竟用git diff了
date: 打印当前时间
grep: 搜索命令,相当好用,加上-r 可以在当前文件夹下深入到子文件夹进行搜索,如果只是想搜索对应文件而不必打印所有内容可以是附带-rl, 如果不想显示对应的文件名前缀可以附带-h,总之非常好用,必须要熟练的命令,比如要查询日志里面带有xxxx的日志,并根据时间排序输出可以这样子:grep -h “xxxx” interface.log*| sort >> xxxx.log
wc: 统计命令,我经常是wc -l来统计有多少条输出
ps: 查看所有linux进程,通常我是 ps -aux|grep “xxxx” 来查找对应目标进程的状态信息
kill: 杀死目标进程,比如停止一个python进程 kill -9 python进程的pid
top: 查看目前服务器硬件资源状态,通常都是用 top -n 20 查看目前前20个活跃进程占用系统cpu和内存资源的情况,顺便看下服务器cpu和内存资源是什么样的情况
free: 查看内存情况,不如top命令好用
crontab: 用来做定时任务的
ifconfig: 查看自己的网卡配置, curl ifconfig.me 可以查看自己服务器的外网地址
ping: 测试对应IP是否可以ping通
traceroute: 追踪到达目标IP对应服务器所经过的设备IP路径
netstat: 查看对应的端口网络状态,通常是 netstat -antp|grep “端口号” 来查看对应端口情况
telnet: 测试对应目标服务器的端口是否正常,比如 telnet 192.186.1.1 90 就是测试192.186.1.1服务器的90端口是否有正常开放,当然一般的都不会开放,所以这里的命令敲下去之后通常是什么都没有响应,如果正常响应会跳到telent控制台的
scp: 从远程服务器上传或拉取文件命令,比如scp -P 1111 192.186.1.1:/tmp/test.txt test.txt表示通过1111端口(因为192.186.1.1是通过1111端口来开放ssh服务的)从服务器的/tmp文件夹的test.txt复制到本地的test.txt,而scp -P 1111 test.txt 192.168.1.1:/tmp/test.txt则表示将本地的test.txt上传到服务器,对/tmp/test.txt文件进行覆盖.
wget: 获取对应的http网络资源,当然这命令都不常用了,打开浏览器就能搞定的事了还用什么wget
ln: 给可执行程序设置可全局运行的别名 ln -s 可执行程序的绝对路径 /usr/local/bin/别名
例子:ln -s /home/unclebiao/myproject/tools/temptools/node-v4.4.4-linux-x64/bin/cnpm /usr/local/bin/cnpm
df: 查看本地硬盘空间使用情况,df -h 查看文件夹占用情况 du -h --max-depth=N(N表示深度)
truncate: 清空文件 truncate -s 0 xxxxx(文件名)
id: 查看某个linux用户的属性
useradd: 建立新用户并创建对应的主目录 useradd -d /home/deploy -m deploy,注意如果是ubuntu的话可以使用adduser来创建新用户,赋予某个用户sudo权限,修改/etc/sudoers文件 使得改用户的权限和root一样
修改ssh端口: 在/etc/ssh/sshd_config中找到Port 22,将22改为目标端口
坑点,ubuntu坑逼之处,用其他linux重启ssh服务的方法是不行的,即使是 /etc/init.d/ssh restart 也不行,只能用service ssh restart 来重启
ubuntu保持ssh连接不断开的情况: 在 /etc/ssh/sshd_config里面配置 ClientAliveInterval 30,然后service ssh restart使得修改生效
设置单个用户的全局变量: sudo vim ~/.profile
在文件结尾添加 export PATH=“自定义PATH; P A T H " 例 子 : e x p o r t P A T H = " PATH" 例子: export PATH=" PATH":exportPATH="(npm prefix -g)/bin;$PATH”
也可以在 /etc/profile里进行修改,使配置文件生效可以 source /etc/profile
给机器命名: hostname xxxx,并且修改/etc/hosts文件,添加一行 127.0.0.1 xxxx

你可能感兴趣的:(linux)