
本篇我将详细介绍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/file12.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 查看当前目录路径
三、文件查看命令 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.cpp3.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退出而是直接叉掉,也许下次打开此文件将会报错
解决方法:
这样再次打开此文件,就会恢复到你之前未更改编辑的状态
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 编译器指令 ,因为编译器需要使用它们;
(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)
6.2 gzip:将ab.cpp打包命名为a.tar
查看a.tar都包括哪些文件
GNU 之后的 tar 命令 : 可解压两种格式 :tar.gz 和 tgz 格式 ; tar zxf xxx.tar.gz tar zxf xxx.tgz
压缩或者解压 压缩: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:显示变量类型
感谢观看!如有帮助,点赞收藏反复学习!