秒懂Linux之实用命令大全

Posted ShuSheng007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了秒懂Linux之实用命令大全相关的知识,希望对你有一定的参考价值。

[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007

概述

Linux毫无疑问是当今服务器领域的霸主,当今世界主流操作系统多少与其有血缘关系,例如androidios,嵌入式系统等等,所以只要你是从事IT相关的工作,或多或少都会接触Linux,偶尔还要使用一下。我也是其中一员,日常不需要经常使用,但是偶尔使用的时候却怎么也想不起那些实用的命令。这个也正常,人的脑子是用来记住那些对自己至关重要的信息的,所以此处将记录自己日常使用中的一些实用Linux命令,供自己和他人查阅。

使用方法(此渔非鱼)

Linux命令是海量的,要想全记住那是傻子或者天才干的事,你我平常人最好掌握有效的方法,才能事半功倍。

命令结构

每条Linux命令都是按照固有结构设计的:

command [option(s)] [argument(s)]

是不是还有点懵逼?那个option是啥,为什么后面还有个(s)? argument 又是什么jb玩意?你用[]括起来是几个意思?同学不懂就学,不带骂人的啊…你不懂,是因为这个是个结构,是经过抽象的,抽象的东西往往就比较难理解,举个实例你就明白了。

rm -r my-folder

上面的命令作用是删除当前目录里的folder文件夹及其内容。

rm 对应command,-r 对应option ,my-folder对应argument 。(s) 表示一个命令可以有多个option,多个argument,[]表示有的命令option与argument都可以省略。

rm -r -f my-folder  或者
rm -rf my-folder

上面的命令就使用了多个option,表示在删除my-folder文件夹内容时候不要询问我某个文件是否删除,老子知道自己在干啥,就是删库跑路,全部force删除。

cp file1.txt file2.txt

上面的命令就使用了多个argument,但是没有使用option,其表示将当前路径下的文件file1.txt复制一份命名为file2.txt

如何查找

命令结构一旦清楚了,那么就轮到如何查找这些命令说明的矛盾上了。

apropos(通过关键字查询手册)

通过这个命令你可以查到某个关键字的相关命令列表。例如我想复制一个文件,但是我不知道那个命令叫啥就可以使用这个方法来查找。其实此时我们一般都是要Google/Baidu了…,因为我知道是要操作文件,那么我就使用下面的命令来查找与file相关的命令。

apropos files

输出:

...
cat (1)              - concatenate files and print on the standard output
...
cp (1)               - copy files and directories
...

从输出列表中通过描述我们就可以找到cp 这个命令。虽然命令是找着了,但是我不会用咋办?这就是另一个命令出场的时候了。

man

通过man 我们可以查看某个命令的详细用法

man cp

输出:

NAME
       cp - copy files and directories

SYNOPSIS
       cp [OPTION]... [-T] SOURCE DEST
       cp [OPTION]... SOURCE... DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...

DESCRIPTION
       Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --archive
              same as -dR --preserve=all

       --attributes-only
              don't copy the file data, just the attributes

...

内容很多,按空格键翻页,查看完后输入quit退出。

其实除了还有man,我们也会使用--help这个option来查看某一个命令的说明信息,例如

cp --help

关于使用-还是--好像是Unix的一种约定,使用-后面就跟option的一个字符的简称,使用--就跟完整的option,例如-h--help

账户相关

Mac通过Terminal连接远端服务器

ssh  服务器的用户名@服务器IP或域名

输入密码即可

Mac断开与服务器的ssh连接

logout

切换账户

su 

su是 substitute(替换) 或者 switch user(切换账户)的缩写,我更倾向于SwitchUser,更直观,更好记

root@xxxxxxxxxxx:~# su ben

root切换到ben

ben@xxxxxxxxxx:/root$ su root
Password: 

ben切换到root,需要输入密码

note: root 账号的起始符为 #,而普通账号的起始符为 $

权限相关

提升账户权限

sudo

sudo 简称为 super user do,干超级用户才能干的事。具体使用方式请查看 秒懂Linux的sudo命令

修改文件所属的用户和用户组

chown

ch 代表change,own代表owner 组合起来就是改变所有者,是不是很好记。

chown root:tomcat   ./my-file.txt

将当前目录下的my-file.txt的所有者修改为root用户,将其group修改为tomcat

修改文件的权限

chmod   

change file mode bits, 这不太好理解,反正记住是修改文件权限的就可以了,具体使用方法可参考:秒懂Linux文件权限及chmod命令

文件相关

如何删除文件

删除单个文件

rm 文件名

删除多个文件

rm 文件1 文件2
rm *.txt

删除文件时询问

rm -i 文件名

如何删除文件夹

删除空文件

rmdir 文件夹
或
rm -d 文件夹

删除整个目录,包括里面的文件及文件夹

rm -r 目录名

安全的拷贝文件

scp

用于在本地和服务器,服务器与服务器之间安全的拷贝文件

从服务器copy文件到本地

 scp username@server_host:file.txt  /local/directory/

从本地copy文件到服务器

 scp file.txt username@server_host:/remote/directory/

从服务器copy整个目录到本地

 scp -r username@server_host:/remote/directory/  /local/directory/

从本地copy整个目录到服务器

scp -r /local/directory/  username@server_host:/remote/directory/

从服务器copy文件到另一个服务器

scp username1@from_host:/remote/directory/file.txt  username2@to_host:/remote/directory/

其中服务器路径部分的写法为

你服务的用户名@你服务器的IP或域名:服务上的文件路径

本地路径就是普通的路径即可。

查看文件夹大小

du -h --max-depth=1

--max-depth 表示深入的层数,下面展示的是/opt文件夹下的内容

root@iZ28k2ghmchZ:/opt# du -h --max-depth=1
390M	./jdk
1.3M	./linux_learn
139M	./tomcat
1.1G	./my-ml-env
1.6G	.

查看文件大小

 ls -hl

第5列可以看到是文件的尺寸,其中h表示人类友好表示,例如1.3M总比给你弄成1xxxxxxx字节强吧。

total 1.3M
-rwxr--rw- 1  root root  12      Apr   5  2020 filePermissionTest.txt
-rw-rw-r-- 1  root root   11      May  3  2020 helloLinux.html
-rw-r--r-- 1   r oot root  184    May  3  2020 HelloVim.txt
-rw-r--r-- 1   root root   1.3M  Dec  20  2016 idea快捷键.jpg

网络

查看某个端口号是否被占用

netstat -antp | grep 端口号

番外篇

Redis

卸载redis

# if you use apt-get to install redis then use
sudo apt-get purge --auto-remove redis-server

下面这些一般不用执行

# Now delete everything related to Redis server from /usr/local/bin/
sudo rm /usr/local/bin/redis-*

# Now delete Redis Configuration files directory and it’s content.
sudo rm -r /etc/redis/

# Delete existing Redis log files.
sudo rm /var/log/redis_*

# Delete existing Redis data directory and it’s content.
sudo rm -r /var/lib/redis/

# Delete existing Redis server init scripts
sudo rm /etc/init.d/redis_*

# Remove existing Redis PID files (Only if exists)
sudo rm /var/run/redis_*​

以上是关于秒懂Linux之实用命令大全的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用(实用)命令大全

超级便捷:实用Linux命令大全手册+安全的Linux系统下载站

一天一门编程语言Linux 实用命令大全

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

Linux实用快捷键大全