栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 系统运维 > 运维 > Linux

Linux常用命令及操作演示(细节满满)

Linux 更新时间:发布时间: 百科书网 趣学号

本篇我将详细介绍linux基本命令,详细操作过程!欢迎收藏学习!

一、目录操作命令 1.1 目录切换

(1)绝对路径

绝对路径名是沿着层次树,从根目录(/)开始,由到达相应文件的所有目录名连接而

成的,各目录名之间以 / 字符隔开

/home/stu/dir218

/home/stu/桌面

(2)相对路径

是从当前目录开始到指定位置的相对路径;

. 代表当前目录

.. 代表该目录的父目录(上一层目录)

1.2 目录查看 1.3 创建目录

1.4 删除目录

1.5 修改目录(重命名,剪切)

将tmp1下的kk文件夹移动到上一次目录love中 

将tmp1文件夹名改为tmp2

1.6 拷贝目录

将kk复制到tmp2文件夹下

 二、文件操作命令 2.1 新建一个文件

2.2 删除文件

2.3 修改文件

将tmp2文件夹里面的b.txt移动到上层目录

将ab.c文件名改为ab.cpp

 将多个文件移动到别的目录下

2.4 拷贝文件

cp源文件(文件夹)目标文件(文件夹)

拷贝文件语法 :cp 源文件的路径 + 文件名 目的路径

cp a.txt b.txt   将文件a.txt 复制成文件 b.txt

拷贝+重命名的语法:cp 源文件+文件名 目的文件+新文件名

将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1
2.5 查找操作
find 搜索路径 -name 文件名(按文件名搜索)
find 搜索路径 -cmin -n(搜索过去n分钟内修改的文件);
find 搜索路径 -ctime -n(搜索过去n天内修改的文件);

find . -name *liuyazhuang* 查找当前目录下名称中含有"liuyazhuang"的文件
find / -name *.conf  查找根目录下(整个硬盘)下后缀为.conf的文件
find / -perm 777 查找所有权限是777的文件
find / -type d 返回根目录下所有的目录

find功能:用来寻找文件或目录。
格式:find [<路径>] [匹配条件]
find / -name httpd.conf  搜索系统根目录下名为httpd.conf的文件

搜索kk文件

grep: grep:在文件中过滤出包含指定字符串的行; 语法: grep 字符串 文件名
ps -ef | grep sshd  查找指定ssh服务进程 
ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 
ps -ef | grep sshd -c 查找指定进程个数
管道命令  | : 将前一个命令的输出结果作为后一个命令的输入 例 1: touch test.o test.cpp twdoxj.ll testoo.x ls ls | grep test 例 2: ls /bin ls /bin |grep sh wc命令:

统计文件中单词的个数(-w),字符的个数(-c),行数(-l)

wc -w 文件名 wc -c 文件名 wc -l 文件名 su/sudo :

su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root

su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

退出返回之前的用户:exit

切换为管理员的命令:sudo su 关机与重启:
shutdown -h now:立刻关机
shutdown -h 5        5分钟后关机
halt:关机
init 0:关机
shutdown -r now :立刻重启
shutdown -r 5        5分钟后重启
reboot:重启
init 6:重启


runlevel:查看系统运行级别
0:关机
1:单用户模式
2:多用户无网络服务
3:完全的多用户 文本界面
4.未定义或自定义
5.图形化界面
6.重启
帮助的命令:
man:帮助手册
 (1)代表命令
 (2)代表系统调用
 (3)代表库函数
man printf:查询命令printf
man 3 printf:查询库函数p

 查看当前目录:pwd

命令:pwd     查看当前目录路径

三、文件查看命令 3.1 cat:

显示文件内容,也可以将数个文件合并成一个文件

1.查看test.cpp文件的内容

cat test.cpp

2.将test.cpp文件和tet.cpp文件合并成一个新文件起名叫al.cpp

cat test.cpp tet.cpp > al.cpp

cat  test.txt | more  :逐页显示test.txt文件中的内容
cat  test.txt >> test1.txt :将test.txt的内容附加到test1.txt文件之后
3.2 more:

用于翻页显示文件内容(只能向下翻页)

more命令是一般用于要显示的内容会超过一个画面长度的情况。为了避免画 面显示时瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格健或者回车键继续显示下一个画面,或按q键停止显示。

使用方法:more 文件名

3.3 less:

翻页显示文件内容(带上下翻页)按下上键翻页,按q退出

看完内容之后不会显示到屏幕上 3.4 head:

显示文件的头几行内容

n:文件前n行

使用方法: head -n 文件名  默认是10行

打开test.cpp文件前两行
head -n test.cpp
3.5 tail:

显示文件的末尾几行(默认10行)

-n:指定显示的行数

-f:追踪显示文件更新 (一般用于查看日志,命令不会退出,而是持续显示新加入的内容)  tail -n  文件名
查看tet.cpp文件后3行内容
tail -3 tet.cpp

四、文件编辑命令 (vim)

在使用linux时,可以通过vim命令打开vim编辑器进行编辑代码等等

vim + 目标文件路径 的形式使用vim 如果目标文件存在,则vim打开目标文件,如果目标文件不存在,则vim新建并打开该文件 : q:退出vim编辑器                                                                             

4.1 vim的三种模式  vim 分为三种模式 :命令模式,插入模式(编辑模式),末行(ext)模式                                                         用户刚刚启动vi/vim,便进入了命令模式.此状态下敲击键盘会被vim识别为命令,而非输入字符.任何模式都可以通过esc键回到命令模式,命令模式下可以键入不同的命令完成选择、复制、粘贴、撤销等操作。 4.1.1 在命令模式下(vim模式)

常用指令:

 命令模式转为插入模式:

 命令模式转为末行(ext)模式:

 

4.1.2  末行(ext)模式下的操作命令:

*注意: 如果在打开vim后,并未q退出而是直接叉掉,也许下次打开此文件将会报错

 

解决方法:

  1. q退出
  2. ls -a 找到 . 文件名 .swp
  3. 删除此文件 : rm .文件名.swp

    这样再次打开此文件,就会恢复到你之前未更改编辑的状态 

五、编译链接(gcc/g++)  5.1 编译链接的过程 :

main.c 通过预编译 生成 main.i 文件 main.i 通过编译生成 main.s 文件 main.s 通过汇编生成 main.o 文件 链接阶段 : 将所有的 .o .a( 静态库文件 ) .lib( 库文件 ) .obj 文件链接起来 , 生成 .out 文件 ELF 格式的可执行文件 .out 文件 (Windows 生成的是 .ext 文件 )
5.1.1 各个阶段所做的事情:  (1)预编译阶段: a)删除所有的 "#define", 并且展开所有的宏定义 ; b) 处理所有的条件预编译指令 ,"#if","#ifdef","#endif" 等 ; c) 处理 "#include" 预编译指令 , 将被包含的文件插入到该预编译指令的位置 ; d) 删除所有的注释 ; e) 添加行号和文件名标识 , 以便于编译器产生调试用的符号信息及编译时产生编译错 误和警告时显示行号 ; f) 保留所有的 #pragma 编译器指令 ,因为编译器需要使用它们;
(2)编译阶段: 词法分析,语法分析, 语意分析 , 代码优化 , 汇总符号 ; (3)汇编阶段: 将汇编指令翻译成二进制格式 , 生成各个 section, 生成符号表 (4)链接阶段 : a) 合并各个 section, 调整 section 的起始位置和段大小 , 合并符号表 , 进行符号解析 , 给符 号分配虚拟地址 ; b) 符号重定位 , 即在使用符号的地方全部替换成符号的虚拟地址 ; 5.2 关于一步执行文件:

(1)可以三步合为一步,即不经过预编译,编译,汇编三步,直接一步生成.o文件:

gcc -c main.c -o main.o
gcc -o main main.o
(2) 可以四步合为一步 :
gcc -o main main.c

在这里以已经编写好的代码为例:

 

 一步编译链接:

因为之前我已经编译过产生了test那个绿色的文件,这里的main可以改为任何名称,实际中最好产生的编译文件名与需要编译的文件名相同。这里写的是c++代码,我使用的是g++,但其实gcc也可以用来编译c++代码。

5.3 编译多个源文件:

(1)两步两步:

gcc -c main.c
gcc -c add.c
gcc -c max.
gcc -o main main.o add.o max.o
(2) 一步完成
gcc -o main main.c add.c max.c
六、文件压缩解压命令 6.1 tar: tar: 打包或者解包 tar cvf xxx.tar( 打包好 的名字 ) 需要打包的所有文件名
tar cvf out.tar lll  打包一个归档(将文件"ll"打包)
tar xvf ll.tar     释放一个归档(释放ll.tar)

将ab.cpp打包命名为a.tar

 查看a.tar都包括哪些文件

 

GNU 之后的 tar 命令 : 可解压两种格式 :tar.gz 和 tgz 格式 ; tar zxf xxx.tar.gz tar zxf xxx.tgz
6.2 gzip:
压缩或者解压
压缩:gzip 打包的名字
例如:gzip mytar.tar
解压:gzip -d xxx.tar.gz
例如:gzip -d my.tar.gz
压缩a.tar文件

解压a.tar.gz

七、其他命令:  7.1 查看进程:ps -ef
默认显示与当前中断有关的进程信息; -e:显示系统中所有的进程信息 -f:显示更多的进程属性信息 -L:显示进程中的线程ID;

 

7.2 kill:
语法:kill PID
结束或者挂起一个进程;
-9 强制结束进程
kill -STOP PID: 挂起一个进程 1) 前后台 如何启动一个进程 : 路径 + 可执行文件名 路径 + 可执行文件名 &( 将进程放到后台去执行 ) 2) 演示杀死进程 语法 :kill +PID; 7.3  pkill: 语法 :pkill + 进程名 结束一组同名的进程 7.4 jobs:

显示当前终端的任务,显示后台执行的或者挂起的任务

7.5 fg bg: fg % 任务号 将后台运行的或者挂起的进程挪动前台执行 bg % 任务号 将挂起的进程唤醒到后台去执行 7.6 top: 查看系统资源使用情况以及进程信息 q 退出 7.7 显示命令:
date:查看或设置当前系统的时间:格式化显示时间:+%Y--%m--%d;
date -s:设置当前系统的时间
hwclock(clock):显示硬件时钟时间(需要管理员权限);

cal:查看日历
格式cal [参数] 月年
cal:显示当月的日历   cal4 2004 :显示2004年4月的日历
cal- y 2003: 显示2003年的日历
uptime:查看系统运行时间

7.8 gdb调试:
(1)debug版本:
在编译阶段会加入某些调试信息;
调试信息是在编译的过程中加入到中间文件.o文件的;
gcc -c main.c -g:生成包含调试信息的中间文件
gcc -o main main.o
一步执行:gcc -o main main.c -g
(2)release版本:
发行版本,没有调试信息;
gcc默认生成release版本;
(3)gdb基础命令:
gdb 可执行文件名
加断点: b 行号
显示代码: l
启动程序:r
查看断点信息: info break/info b
删除断点信息:delete 断点编号
单步执行:n
打印 :p
显示:display 变量名:
退出:q
gdb命令(全):
l:显示main函数所在的文件的源代码
list 文件名:num 显示文件名文件num行上下的源代码
b 行号:给指定行添加断点
b 函数名:给指定函数的第一有效行添加一个断点
info break:显示断点信息;
delete 断点号:删除指定断点
r(run):运行程序
n(next):单步执行
c(continue):继续执行,直接执行到下一个断点处
s:进入将要被调用的函数中执行
finish:跳出函数;
q:退出调试
bt:显示函数调用栈
disable 断点号:将断点设定为无效的,不加断点号,将所有断点设置为无效
enable 断点号:将断点设定为有效的,不加断点号,将所有断点设置为有效;
p val:打印变量val的值
p &val:打印变量val的地址
p a+b:打印表达式的值
p arr(数组名):打印数组所有元素的值
 *parr@len:用指向数组的指针打印数组所有元素的值
display:自动显示,参数和p命令一样;
info display:显示自动显示信息
undisplay+编号:删除指定的自动显示
ptype val:显示变量类型

 感谢观看!如有帮助,点赞收藏反复学习!

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/867971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号