秒懂Linux之实用命令大全
Posted ShuSheng007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了秒懂Linux之实用命令大全相关的知识,希望对你有一定的参考价值。
[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007
文章目录
概述
Linux毫无疑问是当今服务器领域的霸主,当今世界主流操作系统多少与其有血缘关系,例如android、ios,嵌入式系统等等,所以只要你是从事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之实用命令大全的主要内容,如果未能解决你的问题,请参考以下文章