Linux 环境常用命令有很多,这次我们系统总结一些常用的命令:

一、关机相关命令

1、shutdown 会给系统计划一个时间关机。它可以被用于停止、关机、重启机器。
 shutdown -P now   ### 关闭机器
 shutdown -H now   ### 停止机器
 shutdown -r09:35    ### 09:35am 重启机器
shutdown -c    要取消即将进行的关机,
2、halt 命令通知硬件来停止所有的 CPU 功能,但是仍然保持通电。你可以用它使系统处于低层维护状态。注意在有些情况会它会完全关闭系统。
 halt ### 停止机器
 halt -p ### 关闭机器
 halt --reboot ### 重启机器
3、poweroff 会发送一个 ACPI 信号来通知系统关机。
 poweroff     ### 关闭机器
 poweroff --halt     ### 停止机器
 poweroff --reboot     ### 重启机器
4、reboot 命令 reboot 通知系统重启
reboot ### 重启机器
reboot --halt ### 停止机器
reboot -p ### 关闭机器
二、文件与目录管理命令
ls: 列出目录 ---ll
cd :切换目录 pwd :显示目前的目录
mkdir :创建一个新的目录
rmdir :删除一个空的目录
cp: 复制文件或目录 -----scp 网络复制
scp /data/myimages.tar 10.0.0.7:/data

rm: 移除文件或目录

mv: 移动文件与目录,或修改文件与目录的名称
#比如移动当前文件到其他目录
mv user-system.jar bak/user-system.jar

#将文件移动到上一个目录
mv filename ..
三、硬链接与软链接
1 硬连接
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号 (I
node Index) 。在 Linux 中, 多个文件名指向同一索引节点是存在的 。比如: A B 的硬链接( A B 都是文件名),则 A 的目录项中的 in
ode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件, A B 对文件系
统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止 误删 的功能。其原因如上所述,因为对应该
目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的
连接才会被释放。也就是说, 文件真正删除的条件是与之相关的所有硬连接文件均被删除
2 软连接
另外一种连接称之为符号连接( Symbolic Link ),也叫软连接。 软链接文件有类似于 Windows 的快捷方式 。它实际上是一个特殊的文件。在符
号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如: A B 的软链接( A B 都是文件名), A 的目录项中的
inode 节点号与 B 的目录项中的 inode 节点号不相同, A B 指向的是两个不同的 inode ,继而指向两块不同的数据块。但是 A 的数据块中
存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。 A B 之间是 主从 关系,如果 B 被删除了, A 仍然存在(因为两个是不同的文
件),但指向的是一个无效的链接。
例如:
$touch a
# 创建一个测试文件 a
$ ln a b
# 创建 a 的一个硬连接文件 b
--echo 123 > a ##a,b 的内容同时变为 123
$ ln - s a c
# 创建 a 的一个符号连接文件 c
$ ls - li
# -i 参数显示文件的 inode 节点信息
四、最常用的是 cd 命令
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为 “/“ ,则执行完后还在 “/ " " .. " 为上级目录的意思);
cd ../.. 返回上两级目录;
五、新建文件夹和文件: mkdir touch
mkdir 创建文件夹
mkdir dirname 直接跟文件夹名,可在当前目录下创建文件夹
mkdir /opt/lamp/ dirname 可跟路径
mkdir -p /opt/lam/ dirname 假如 lam 不存在,需要用 -p 才可以创建该文件夹
touch 新建文件
touch dilename 可直接跟文件名在当前目录下创建新的文件
六、cat/less/more/tail 等文件查看命令
-n -number :有 1 开始对所有输出的行数编号;
-b --number-nonblank :和 -n 相似,只不过对于空白行不编号;
-s --squeeze-blank :当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A :显示不可打印字符,行尾显示 “$”
-e :等价于 "-vE" 选项;
-t :等价于 "-vT" 选项;
-e :文件内容显示完毕后,自动退出;
-f :强制显示文件;
-g :不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l :搜索时忽略大小写的差异;
-N :每一行行首显示行号;
-s :将连续多个空行压缩成一行显示;
-S :在单行显示较长的内容,而不换行显示;
-x< 数字 > :将 TAB 字符显示为指定个数的空格字符。
-< 数字 > :指定每屏显示的行数;
-d :显示 “[press space to continue, 'q' to quit.]” “[Press 'h' for instructions]”
-c :不进行滚屏操作。每次刷新这个屏幕;
-s :将多个空行压缩成一行显示;
-u :禁止下划线; +< 数字 > :从指定数字的行开始显示。
Space 键:显示文本的下一屏内容。
Enier 键:只显示文本的下一行内容。
按斜线符 | :接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
H 键:显示帮助屏,该屏上有相关的帮助信息。
B 键:显示上一屏内容。
Q 键:退出 rnore 命令。
--retry :即是在 tail 命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项 “——follow=name”
连用;
-c ——bytes= :输出文件尾部的 N N 为整数)个字节内容;
-f 或; --follow :显示文件最新追加的内容。 “name” 表示以文件名的方式监视文件的变化。 “-f” “-fdescriptor” 等效;
-F :与选项 “-follow=name” “--retry " 连用时功能相同;
-n ——line= :输出文件的尾部 N N 位数字)行内容。
--pid=< 进程号 > :与 “-f” 选项连用,当指定的进程号的进程终止后,自动退出 tail 命令;
-q ——quiet ——silent :当有多个文件参数时,不输出各个文件名;
-s< 秒数 > —— sleep -interal=< 秒数 > :与 “-f” 选项连用,指定监视文件变化时间隔的秒数;
-v ——verbose :当有多个文件参数时,总是输出各个文件名;
一般 tail 命令最常用的 -n -f ,例:
tail filename 读取 filename 最后 10 行内容
tail -f filename 实时动态读取 filename 最后 10 行内容
tail -20f filename 实时动态读取 filename 最后 20 行内容
cat less more 指令相似, cat 是一次性读取所有内容,文件内容较多时速度较慢。 less more 的区别在于: less 可以
前后翻页查看, more 只能向前翻页查看。
tail 则用于实时获取 log 信息,从后向前读取内容
上述四种命令均可跟 grep 搭配使用 cat/less/tail |grep mysql
七、查看文件大小的命令 du/df
du - sh * 显示当前目录下所有文件的大小
du -sh filename
显示该文件大小
du -sh
显示当前目录所占空间大小
-s 或 仅显示总计,只列出最后加总的值。
-h 或 以 K M G 为单位,提高信息的可读性。
df 显示磁盘占用信息
直接 df 默认一 k 为单位
df -lh 显示本地系统的占用信息,以 K M G 为单位
八、重点 -- 文本编辑器 vi
vi 命令是 UNIX 操作系统和类 UNIX 操作系统中最通用的全屏幕纯文本编辑器。
Linux 中的 vi 编辑器叫 vim ,它是 vi 的增强版( vi Improved ),与 vi 编辑器完全兼容,而且实现了很多增强功能。
vi 编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用 vi 编辑器就必须
熟练掌握着两种模式的切换。
默认情况下,打开 vi 编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“ esc ”键,从命令模式切换到编辑模式使用“ A ”、“ a ”、
O ”、“ o ”、“ I ”、“ i ”键。
vi 编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
1 Ctrl+u :向文件首翻半屏;
2 Ctrl+d :向文件尾翻半屏;
3 Ctrl+f :向文件尾翻一屏;
4 Ctrl+b :向文件首翻一屏;
5 Esc :从编辑模式切换到命令模式;
6 ZZ :命令模式下保存当前文件所做的修改后退出 vi
7 : 行号:光标跳转到指定行的行首;
8 :$ :光标跳转到最后一行的行首;
9 x X :删除一个字符, x 删除光标后的,而 X 删除光标前的;
10 D :删除从当前光标到光标所在行尾的全部字符;
11 dd :删除光标行正行内容;
12 ndd :删除当前行及其后 n-1 行;
13 nyy :将当前行及其下 n 行的内容保存到寄存器 ? 中,其中?为一个字母, n 为一个数字;
14 p :粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
15 P :粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
16 / 字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
17 name :文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
18 a bs/F/T :替换文本操作,用于在第 a 行到第 b 行之间,将 F 字符串换成 T 字符串。其中, “s/” 表示进行替换操作;
19 a :在当前字符后添加文本;
20 A :在行末添加文本;
21 i :在当前字符前插入文本;
22 I :在行首插入文本;
23 o :在当前行后面插入一空行;
24 O :在当前行前面插入一空行;
25 :wq :在命令模式下,执行存盘退出操作;
26 : w :在命令模式下,执行存盘操作;
27 : w !:在命令模式下,执行强制存盘操作;
28 :q :在命令模式下,执行退出 vi 操作;
29 :q !:在命令模式下,执行强制退出 vi 操作;
30 :e 文件名:在命令模式下,打开并编辑指定名称的文件;
31 :n :在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
32 :f :在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
33 :set nu :在命令模式下,用于在最左端显示行号;
34 :set nonu :在命令模式下,用于在最左端不显示行号;
35 : 1 ,3y 复制第一行到第三行
36 : 1 ,3d 删除第一行到第三行
37 : 1 ,3s/str/str_new/g 替换第一行到第三行中的字符串
38 : 1 ,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
39 : 1 , 3 g/str /d 删除第一行到第三行中含有这个字符串的行
九. 查看服务
netstat -nlpt|grep 80 查看该端口号是否被占用
free -m // 查看 LINUX 内存剩余容量
ps 可以查看具体的进程信息,一般与管道符连接其他命令使用,如: grep
ps 常用参数 -ef/-aux ,一般最常用还是 -ef ,例: ps -ef|grep mysql 查询 mysql 进程
top 也可查看进程信息,而且是动态显示
whoami 查看当前登陆用户
who 查看多少用户在使用系统
date 查看系统时间,可跟时间格式使用
cal 查看日历,可跟年份,查看指定的年份
chkconfig --list # 查看系统服务启动
chkconfig iptables on # 开机启动该服务
chkconfig iptables off # 开机不启动该服务
service iptables start # 启动该服务
service iptables restart # 重启启该服务
ps -ef| grep mysql| grep -v grep | awk '{print $2}' ps -ef| grep mysql 是查询 mysql 服务的进程
| 后的 grep -v grep 是匹配不包含 grep 的行 awk 是取查询结果的第几列, awk '{print $2}' 则是取第二列的值
grep 无参数则显示匹配的行
-c 显示匹配的行数
-v 显示不匹配的行
十. 杀掉进程 kill 命令
kill 最常用的参数是 -9 ,用法: kill -9 进程号 即可强制杀掉该进程
统计命令 wc
常用的参数是 -l 用法: wc -l ,例:
ps -ef| grep mysql| wc -l 统计查询出的 mysql 进程的行数
查找命令 find/locate/whereis/which
find -name 后跟文件名,可查看文件所在目录,可跟 user ,查看属于 user 的文件
find -name filename 查找 filename 所在目录
find -name name* 查找开头为 name 的文件所在目录
find -name *name 查找结尾为 name 的文件所在目录
find -name *name* 查找包含 name 字符串的文件所在目录
find -user faith 查看用户 faith 的文件
locate 用法与 find 基本相似,只是 locate 搜索速度较快些, locate 一般系统不会自带,需要安装,可用 yum 安装
whereis 只能搜索程序名
which 则是只查询 path 中的环境变量
十一. 压缩和解压命令 gzip/guzip zip/unzip tar
gzip gunzip 一般可用参数是 -r ,例 :
gzip test.txt
压缩文件
gzip - r test
压缩所有 test 下的子文件
gunzip test.gz
解压文件
zip unzip 可用参数较多,例:
zip test 不跟参数直接使用
zip - r test 递归压缩 test 下所有文件
比如,把logs文件夹压缩一下命令:zip logs.zip logs
递归压缩:zip -r nginx.zip nginx/
压缩单个文件: zip archive.zip file.txt  
压缩多个文件:zip output_files.zip  /path/to/file1.txt /path/to/file2.txt
密码保护:zip -r -e output_folder.zip  /path/to/input_folder
unzip test 不跟参数直接使用
unzip - n 解压时不覆盖已存在的文件
unzip - o 解压时覆盖已存在的文件
unzip -d 将文件解压到目录中去
tar 使用的较为多些,用法也多,最常用的是 zxcvf 几个参数,例:
- c 创建新文档,就是代表压缩的意思
- x 解压文档
- f 使用归档文件
- z 使用 gzip 解压
- v 详细输出模式
最为常用的使用方法: tar -zcvf test. tar test test 压缩为 test.tar 并输出详细信息
tar -zxvf test. tar
test.tar 解压缩,并输出详细信息
-r:递归地将目录下的所有文件和子目录都打包到ZIP文件中。
-q:安静模式,不显示压缩过程。
-v:详细模式,显示压缩过程的详细信息。
-u:更新ZIP文件,只添加新的文件和修改过的文件。
-d:从ZIP文件中删除指定的文件。
-l:列出ZIP文件中的文件信息。
-9:使用最高级别的压缩(压缩率最高),但压缩速度最慢。
-P:设置密码来保护压缩文件的内容。
-s:分割ZIP文件为指定大小的多个文件,以便在存储和传输时更方便。

这就是linux常用的基础命令,后续我们还会不断的丰富!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐