一、Linux终端命令行
更多命令可以查看:https://blog.csdn.net/Edward1027/article/details/138787772
(一) 基础命令
1.显示当前目录内容:ls
①显示当前目录内容:ls
【list directory contents】
②详细显示日期、大小、读写权限:ll
或者ls -l
(部分版本不支持缩写ll,只能输入完整命令ls -l)
查看权限:
ls -l
(有些系统可简写为ll
)
ls -l、-a、-i、-h
2.切换路径:cd
cd ..
返回上级目录: .
当前目录 ..
上级目录
cd ~
返回家目录
cd /
返回根目录
cd -
返回上次目录
3.联想:Tab
4.创建空文件夹:mkdir 目录名
创建文件夹:mkdir 目录名
删除空文件夹:rmdir 目录名
5.编译:gcc、g++、-o
gcc:编译C程序
g++:编译C++程序
- o
命令可以自定义可执行文件名
g++ 通讯录.cpp -o 通讯录
./通讯录
6.执行当前目录下的可执行文件:./可执行文件名、./a.out
①默认情况下,g++编译生成的 Linux可执行文件名为 a.out
(Windows下为.exe)
②执行当前目录下可执行文件:./a.out
7.删除命令rm
(1)删除文件
1.删除单个文件
rm 文件名
2.删除多个文件
rm 文件名1 文件名2
(2)删除目录(文件夹)
1.循环删除目录
rm -r 目录名
2.强制(不提示) 递归删除文件夹及内部所有内容
rm -rf 目录名
3.删除当前目录下所有文件,不可恢复
rm -rf *
-r
recursive 循环
-f
force 强制,不提示
8.文件拷贝 cp
cp 文件名 路径 (绝对路径/相对路径)
cp file ../ //拷贝到上级目录 (相对路径)
9.文件改名、文件移动 mv
mv 原文件名 新文件名
10.打印当前工作路径:pwd
print working directory
pwd
注意:引用动态库时路径不要用pwd,因为鼠标点击的目录即为pwd,而不是脚本的同级目录
11.显示当前目录树结构:tree
1.若没有tree则先安装
sudo apt-get install tree
2.查看目录结构,尤其是只看2级结构
tree -L 2
12.创建文件:touch 文件名
touch debug.log
13.查看文件内容: cat 文件名
①cat 文件名
:适合查看小文件。一次性加载文件全部内容。查看文件内容(若文件名不存在,则会创建该名称的文件)
②vim 文件名:编辑文件
③less
文件名:适合查看大文件。当日志文件非常庞大时,less可以先加载一点,随着鼠标滑动慢慢加载需要预览的部分。
14.echo 回显
1.用echo的新内容覆盖原来的旧内容
echo "内容" > 文件名
2.在原来旧内容的基础上追加新内容
echo "内容" >> 文件名
3.查询指代路径/变量:
echo ${HOME}
显示:
/home/用户名
15.测试连接 ping
ping www.baidu.com
16.查看历史命令 history
history:能看到以前关闭的终端里都输过什么命令行
(1)查看历史记录,尤其是最近20条历史记录
history 20
(2)增加显示时间
举例:查看历史命令中带make的命令
export HISTTIMEFORMAT='%F %T ' //显示日期时间
history | grep make
永久开启时间显示,需要将export命令写入系统文件:https://blog.csdn.net/Dome_/article/details/79119880
(3)删除历史记录
history -c
清空内存中命令历史
history -d 数字
删除指定的历史命令,比如 history -d 100 ,就是删除第100条命令历史
history参数:https://blog.51cto.com/zz6547/1830928
(二) 进阶命令
1.查找文件:find
find:查找文件 (在目录中递归地查找)
(1)按文件名进行查找
find 目录 -name "文件名"
举例:在当前目录cppBase下查找figure.cpp文件
find . -name "figure.cpp"
如果存在,将得到路径:
./Cpp23/bind/figure.cpp
(2)按文件类型进行查找
例:查找当前目录下,名字含有pytest的目录
find . -name "*pytest*" -type d
2.打包/压缩、解压命令
tar 是 text archive 的缩写
(1)zip
若是.zip,需要使用unzip 包裹名
命令
1.打包:
zip [选项] 压缩包名称.zip 文件或目录
2.解压
unzip [选项] 压缩文件名.zip
-r:递归压缩目录中的所有文件和子目录
-e:加密压缩包,设置密码
-d:指定解压目录
(2)tar
1.打包、压缩为tar
tar -cvf 压缩包名称.tar 要压缩的目录/
举例:
tar -cf test.tar kernel_interface/
2.解压
tar -xvf 压缩包名.tar
举例:
tar -xf test.tar
(3)tar.gz
1.打包、压缩为tar.gz
tar -czvf 压缩包名称.tar.gz 要压缩的目录/
2.解压命令
tar -xzvf 包裹名.tar.gz
3.选项介绍
①-c:create,创建归档文件,即创建压缩包
②-f:file,指定归档文件的名称。-f 选项必须紧跟文件名,放在所有选项的最后
③-v:verbose,显示详细的处理过程信息
④-x:extract,从归档文件中提取文件,即解压压缩包
⑤-z:gunzip,即使用gzip算法对归档文件进行压缩或解压缩,默认文件结尾 .tar.gz
。-z选项是专门针对gzip算法的,即tar.gz
⑥-t:查看压缩包内容
⑦-r:追加
3.scp
scp 文件名 用户名@IP:绝对路径
scp efvs-1.0.8-x86_64-linux-dbg.deb root@10.42.128.20:/root/ 【然后需要输入密码:root123456】
4.搜索命令 grep
命令 | grep 搜索词
①cat 文件名 | grep 关键词
:查找文件中的某个词,并显示在终端
②export |grep LD
:显示带LD的环境变量
| 管道符,将一个命令的输出作为另外一个命令的输入
5.awk:按行号提取内容
要求返回第一行和第三行的neritic
modinfo enrigin | awk 'NR==1 || NR==3'
6.权限设置:chmod
修改文件 读、写、执行 权限:chmod
chmod 权限值 被执行文件名
chmod 755 start.sh //举例,7=4+2+1; 5=4+1;
sudo chmod +x 文件名
读 r 4
写 w 2
执行 x 1
无权限 - 0
三个数字分别代表:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
7.临时设置环境变量和查看环境变量:export
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH //export 变量名=变量值
参考:https://blog.csdn.net/lj19990824/article/details/120738486
8.预设安装路径 --prefix=
./configure --prefix=/home/edward/Downloads/lib/
9.启动4个cpu进行编译
make -j4
ninja -j 56
ninja install -j56
10.查找依赖库ldd
ldd 可执行文件名
ldd YeecohReader |grep libjsoncpp.so
11.切换用户:su 用户名
1.切换到root用户
su
建议不要用su,切换到root用户很危险,而且密码不一定知道。有事情请用sudo,仅当前命令可以使用root权限,结束后回到普通权限
2.创建用户:
useradd -m 用户名 -s /bin/bash
如果不加-s。创建新用户什么也没有,全是白的。字体颜色、Tab联想功能、删除backspace、vim编辑器
3.给用户添加密码
passwd 用户名
4.删除用户
userdel -r 用户名
二、vim
vim编辑器:https://blog.csdn.net/Edward1027/article/details/147295194
三、Linux、Xshell快捷键
1.Xshell切换到下一个标签页:crtl + tab
2.Xshell切换到刚才的标签页:shift + tab
3.清空当前行的命令:crtl + U
4.光标移动到命令行首:crtl + A
5.Linux下的复制:crtl+insert
6.Linux下的粘贴:shift+insert
7.退出shell会话 (log out):Ctrl + D