您的位置:首页 > 运维架构 > Linux

linux 命令

2015-11-01 21:29 316 查看
linux 命令

1. 切换root用户

sudo -i


2. tree命令展示目录结构

基本命令:

tree <path> -<options>


<path>
可以省略,省略时表示当前目录。

常用的
<options>
有:

-d 只列目录
-a 列所有文件(包括隐藏文件)
-h 展示文件或文件夹大小
-C 打开颜色渲染
-L level 目录深度等级,level是一个数字(比如命令:tree -L 2)


3. 查看进程

显示所有进程

ps -ax


显示当前用户的所有进程

ps -u <user_name>


通过端口查找进程

netstat -nlp | grep <port>


查看进程状态

ps afx | grep <pid>


查看进程启动时间

ps -p <pid> -o lstart


4. kill进程

kill <PID>


5. 获得本机内网ip

ifconfig | grep 'inet '


返回结果中第二行就是。

如果要查询本机外网ip,

curl ifconfig.me


6. 压缩解压

#压缩
tar -czvf ***.tar.gz <your_folder>
tar -cjvf ***.tar.bz2 <your_folder>
#解压缩
tar -xzvf ***.tar.gz <des_folder>
tar -xjvf ***.tar.bz2 <des_folder>


7. 远程同步rsync

在执行命令时确保远程机器和本地机器都已安装rsync

rsync -avzP --delete --exclude '<dir_name>' -e 'ssh -p <remote_ssh_port>' <local_dir> <remote_user>@<remote_ip>:<remote_dir>


我们看一个例子:

rsync -avzP --delete --exclude '.*' -e 'ssh -p 27400' /Users/brown/Documents/Note root@172.93.39.11:~


-P
选项是
--progress
--partial
选项的组合,表示展示进度若传输中断继续

-a
选项表示archive,表示递归同步、保留链接文件、同步设备文件、同步修改时间、同步group owner信息、同步权限等;

-z
选项表示传输过程使用压缩,来降低网络负载;

--delete
表示删除的文件也被同步删除;

--exclude '.*'
表示不同步以
.
开头的文件或文件夹;如果有多个文件或文件夹需要忽略,请声明多次
--exclude
选项。

-e 'ssh -p 27400'
声明了ssh端口为
27400
,没有此选项时使用默认的
22
端口。

8. top命令

top命令能够实时显示系统中各个进程的资源占用状况

首先输入

top


然后进入top界面,上面一部分是total信息,下面一部分就是进程信息。重要字段意义:

字段含义
RES进程使用的物理内存(不包括SWAP内存)(单位是KB)
VIRT进程使用的所有内存(RES+SWAP)
S进程状态,R=运行;S=睡眠;D=不可中断的睡眠状态;T=跟踪/停止;Z=僵尸进程
然后你可以:

输入
u
,然后输入
<user>
进行用户进程筛选;

输入
M
,表示按照内存使用状况对进程排序;

输入
P
,表示按照CPU使用状况对进程排序;

输入
c
,显示完整的命令。

9. nohup

启动后台进程

nohup <your_command> &


比如

nohup python fuck.py &


这样你的进程就不会因为ssh掉线或者shell关闭而挂掉了。

10. crontab

输入下面命令,进入编辑模式:

crontab -e


文件格式:

<分> <时> <日> <月> <星期> <命令>


星期
0~590~231~311~120~7(0、7表示星期天)
简单例子:

0 0 * * * python fuck.py 1>> fuck.log 2>> fuck.err


表示每天晚上
00:00
执行
python fuck.py
命令,并将标准输出定向到
fuck.log
;将错误输出定向到
fuck.err


注意

当你的脚本单独执行时ok,但是放到crontab下执行异常时,很可能是环境变量的问题:即你执行脚本的用户和crontab的用户不是同一个,用户变量不同。此时可以在crontab文件下首先执行命令
source /etc/profile


更多例子:crontab使用例子

11. type

显示你的
alias


type <alias_key>


12. date

显示当前日期

date +"%Y-%m-%d %H:%M:%S"


%H:%M:%S
格式等价于
%T
,即

date +"%Y-%m-%d %T"


13. cut

cut命令对字符进行切分、提取。

echo brown_wong | cut -d _ -f 2


此命令会输出
wong


-d
选项声明分隔符

-f
选项声明第几个字段

你也可以使用awk来操作。

14. sed

sed命令是stream editor工具的缩写,主要进行一些文本操作。

查看文件的5~10行:

sed -n '5,10p' myfile.txt


查看整个文件,除了20~35行:

sed '20,35d' myfile.txt


查看文件的5~7行,10~13行:

sed -n -e '5,7p' -e '10,13p' myfile.txt


它也能做一些文本正则搜索、替换等操作,因为我们在vim里面同样可以做到,故不赘述。

15. 查看操作系统类型

cat /etc/issue


16. 创建软链接

ln -s <src> <link_name>


17. telnet查看ip端口通不通

telnet <ip> <port>


18. xargs

xargs将标准输入作为命令参数。linux的一些工具,比如
grep
是可以接受标准输入作为命令参数,但是很多工具,比如
echo
rm
mkdir
都不能。此时,xargs就派上用场了。

下面命令

echo "haha" | mkdir


想创建一个目录
haha
,但是会执行失败,因为
mkdir
不能直接把管道传过来的标准输入作为命令参数。但下面命令就会成功:

echo "haha" | xargs mkdir


-I
指定替换字符串

echo "9100" | xargs -I {port} python server.py 0.0.0.0 {port}


19. 查看文件大小

du -sh <file_or_dir_name>


-s
--summarize
,如果是一个目录,只显示total大小。

-h
--human-readable
,以人可读方式打印。

20. 查看磁盘剩余空间

df -h <dir_name>


Ref

https://www.cyberciti.biz/faq/linux-show-directory-structure-command-line/

https://www.tecmint.com/linux-sed-command-tips-tricks/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: