常用的shell命令
一、终端的使用
1、打开
ctrl+alt+t
鼠标右键点击桌面快捷方式
通过搜索按钮找到终端Terminal
2、关闭
ctrl+d
点击左上角的X
3、放大或者缩小
放大:ctrl+shift+加号
缩小:ctrl+减+减
4、在终端上复制
复制:ctrl+shift+c
粘贴:ctrl+shift+v
选中要复制的字符串,点击鼠标滚轮
5、关闭当前进程(强制)
ctrl+c
二、shell命令(所有的命令输入完毕,按回车键执行)
1、管理员权限的切换
sudo su sudo -s
输入密码(密码不回显)
2、退出管理员
exit
3、临时使用管理员权限
sudo 命令
4、man(manual)
=====================
man有九个手册
第一手册:shell的解释
第二手册:系统IO函数的解释
第三手册:标准IO函数的解释
如何用man去查找想要的信息?
man 手册数 关键字(命令、函数、配置文件)
例如查找命令: man 1 ls
如果不清楚要查找的信息在哪一个手册?
man -f 关键字
根据返回的提示信息去选择需要查找的手册
5、ls(list) 查看指定路径的文件信息
================================
ls --》查看当前目录文件名
ls 路径 —》查看指定路径下的文件名
ls -l -》查看当前目录文件的详细信息
drwxr-xr-x 2 root root 4096 11月 30 2020 Desktop
linux下有七种文件类型:
d:目录
-:普通文件
p:管道文件
s:套接字文件
b:块设备文件
c:字符设备
l:链接文件
ls -lh —》以带单位的方式显示文件大小,必须加上l一起用
ls -a ----》查看所有(全部)文件(隐藏文件特点,都以点开头)
备注:
drwxr-xr-x 16 gec gec 4096 3月 29 17:47 .
表示当前目录
drwxr-xr-x 16 gec gec 4096 3月 29 17:47 …
表示上一级目录
6、cat/tac/less/more(查看文件内容)
==============================
cat filename —》把文件内容打印到终端
cat /etc/vim/vimrc —》查看/etc/vim/路径下的vimrc
cat filename -n ----》把文件行号也显示出来
7、rm(remove) 删除文件、目录
==============================
rm filename -----》删除普通文件
rm dir/ -r —》删除目录,-r表示递归的删除目录及其子目录
8、mkdir/rmdir(make/remove directory) 创建目录、删除空目录(rmdir只能删除空目录)
================================
mkdir dir1/ —》创建一个dir1的目录
mkdir dir2/dir21/di211 -p --》创建嵌套空目录
rmdir dir/ —》删除空目录
备注:
安装tree工具,查看嵌套目录的结构,以树状图的方式显示
sudo apt update
sudo apt install tree
tree 路径 -L 2 //查看指定路径下的两个层次文件夹
9、touch/gedit (创建普通文件、更新文件时间)
==============================
touch filename —》如果filename存在那么就更新filename时间,如果不存在就创建filename文件
touch 1.txt 2.txt 3.pdf —》一次性创建多个文件
gedit filename —>如果文件存在就打开编辑(读、写),如果不存在就打开文件
10、cp(copy)复制文件
================================
cp file1 file2 --》文件到文件
cp file dir/ —》文件到目录
cp dir1/ dir2/ -r —》目录到目录,-r递归的复制目录及其子目录
11、mv(move)移动、重命名
================================
mv file1 file2 ----》重命名
mv file dir -----》移动
mv dir1 dir2 -----》移动目录文件,这里不需要跟上-r
cp和mv的区别:
1、 cp用来拷贝文件,mv用来移动文件
2、 cp拷贝文件之后,原文件还在,mv移动文件,原文件就不见了
3、 cp在拷贝目录文件的时候,需要加上-r进行递归,而mv移动的时候,不需要
目录文件存放的是文件索引
12、cd(change directory) 切换当前路径
=================================
cd 或者 cd ~ -----》切换到家目录(/home/gec)
cd - ----》切换到上一次操作的路径
cd 路径 -----》切换到指定的路径下
cd …/ ----》切换到上一级目录
cd …/…/ ----》切换到上上级目录
绝对路径:从根目录“/”开始访问目标文件
相对路径:从当前目录开始访问目标文件
13、find(查找文件)ls可以跟find有相同的作用
============================
find 路径 按什么方式 要查找的内容
find / -name stdio.h --》按名字查找文件
14、grep(查找字符串)
=============================
grep ‘as’ filename ----》在指定的文件中找字符串as
grep ‘as’ dir/ -rnH ---->递归的在指定路径下所有文件中查找字符串
ls | grep txt —》把ls的结果通过管道给到grep作为输入(不常用)
15、head/tail(查看文件前面的行数内容,文件末尾的行数内容)(不常用)
=================================
head filename —》查看文件前面的行内容
head -n 6 filename —>查看文件前6行内容
tail filename —》查看文件前面的行内容
tail -n 6 filename —>查看文件末尾6行内容
16、sort(排序)(不常用)
=================================
sort filename -----》把文件正序输出到屏幕
sort filename -r ----》把文件逆序输出到屏幕
17、uniq(去除相同的相邻行)(不常用)
================================
uniq filename -----》把文件中相邻相同的行去掉输出终端
sort file | uniq ----》先排序,把排序的结果通过管道(|)给到uniq的命令
sort 3.txt | uniq > 33.txt —》先排序,把排序的结果通过管道(|)给到uniq的命令,然后通过输出从定向写入一个新文件
18、diff(different)对比两个文件的差异、生成补丁
==================================
diff file1 file2 -u —》对比两个文件的差异
diff dir1 dir2 -ru —》对比两个目录的差异
19、file(查看文件属性)
=================================
file filename -----》查看文件属性
20、env(environment)查看系统环境变量(不常用)
===================================
env ------》在终端上打印系统环境变量
21、echo在中上显示变量或字符串(不常用)
====================================
echo abc ----》在终端原样打印
echo hello > 1.txt ---->把hello从定向到文件中
echo $A ----》在终端打印变量A的值
备注:在shell中想要使用变量,需要$解释出来
22、export 设置环境变量
====================================
export PATH=
P
A
T
H
:
/
h
o
m
e
/
y
e
n
g
/
D
e
s
k
t
o
p
添
加
一
个
路
径
,
一
定
要
用
PATH:/home/yeng/Desktop 添加一个路径,一定要用
PATH:/home/yeng/Desktop添加一个路径,一定要用引用PATH原来的值添加
备注:
1、在终端上执行的命令都是临时有效
2、想要永久生效,就要把命令写入~/.bashrc
3、.bashrc是shell软件的配置文件(脚本)
4、把新配置的添加到文件末尾
备注:
1、环境变量PATH的作用是,存放系统中的程序所在的路径,使得运行这些程序时不需要再特定指明所在的路径
2、环境变量LD_LIBRARY_PATH的作用是,存放系统中的库所在的路径,使得链接库时不需要再特定指明其所在路径
23、tar 归档或者压缩文件、释放归档或解压
=========================================
tar 参数选项 压缩名 压缩文件列表 —》创建归档或解压
tar 参数选项 压缩名 ----》解压
c 创建
x 释放
v 显示过程
f 指定文件
z 压缩或者解压gzip格式
j 压缩或者解压bz2格式
-C 解压时指定解压路径
tar cvf test.tar 3.txt 3.txt 5.txt demo.txt --》创建一个归档文件test.tar
tar xvf test.tar —》释放归档文件
tar cvfz t1.tar.gz 3.txt 5.txt demo.txt —》z参数压缩成gzip格式文件
tar xvfz t1.tar.gz ----》解压gzip格式
tar cvfj t2.tar.bz2 3.txt 5.txt demo.txt —》j参数压缩成bz2格式文件
tar xvfj t2.tar.bz2 ----》解压bz2格式
tar xvfj t2.tar.bz2 -C /tmp
24、ln(link) 创建链接文件(硬链接、软链接)
===================================================
ln a.txt b.txt 创建一个硬链接
ln -s /mnt m —》创建一个软链接(符号文件)
25、pwd(present work directory) 显示当前工作路径
=================================================
pwd —》得到当前路径
26、who 显示系统上已登录的用户
==============================
who
备注:ssh服务器安装使用
sudo apt install openssh-server
ifconfig 查看当前ip
27、adduser添加一个新的用户
===============================
sudo adduser zhangsan
28、write 给其他用户发消息
================================
write zhangsan
29、uname 查看系统信息
===============================
uname -a 打印所有信息
uname -p 查看当前处理器
30、通配符
===============================
星号*: 代表任意长度任意字符串
cp *.txt …/ 把当前目录里面的所有的txt文件复制到上一级目录
问号?: 代表一个任意字符
花括号{}:创建序列
touch aa{1…9}.txt 创建出aax.txt文件,其中的x范围1~9
中括号[]:只能查找
31、ps(process state)
=============================
ps -ef 查看当前系统进程信息
ps -aux 查看当前系统进程信息
备注:
ps -ef | grep bash 筛选与bash相关的进程
32、top 动态显示进程信息
============================
Top 退出按Q
33、kill/killall 发送信号
================================
kill -l 查看信息所有的信号
kill -信号 进程号 kill -9 hello
kill 信号名 进程号 kill SIGKILL hello
killall -信号 进程名 killall -9 hello
killall 信号名 进程名 killall SIGKILL hello
备注:
gcc 编译程序的命令
gcc -o hello hello.c 编译hello.c通过-o指定生成的可执行文件名字叫做hello
./hello & 执行程序 &表示程序后台运行
34、df(disk format) 查看分区信息
==========================================
df -hT 查看磁盘使用情况,带单位显示
35、du(disk usage)查看磁盘使用情况
==========================================
du -sh dir/ 查看目录使用
36、chmod(change mode) 修改文件权限
==========================================
chmod 三位八进制 filename
chmod 0777 1.txt user、group、other对文件1.txt有全部权限
37、adduser/userdel 创建用户和删除用户
==================================
sudo adduser lisi 添加一个用户lisi
sudo userdel lisi 删除一个用户lisi
38、addgroup/delgroup 创建用户组和删除用户组
========================================
sudo addgroup Gtest 添加一个用户组Gtest
sudo delgroup Gtest 删除一个用户组Gtest
39、chown/chgrp 更改所属者、所属组
sudo chown zhangsan file 更改file所属者
sudo chgrp zhangsan file 更改file所属组
Linux的文件系统是以/开头的,其他的文件都是从这个地方开始的
Bin:系统中最常用的可执行文件(shell)
Sbin:存放可执行文件,不常用
Home:家目录
Tmp:Linux用来存放临时文件的
Dev:存放所有的设备文件
Lib:存放共享的库文件,bin和sbin的可执行文件的库
Etc:存放系统配置文件
Mnt:挂载目录
Usr:存放用户的文件,比如你用到的标准C库的头文件/usr/include 比如标准C库,/usr/lib
Apt-get 软件管理器
更新软件源
Sudo apt-get update
安装某一个工具
Sudo apt-get install xxx
卸载某一个工具
Sudo apt-get remove xxx
Vi编辑器
1、升级vi工具为vim
sudo apt install vim
2、修改vim的配置文件,使之可以使用方向键、鼠标、行号……
sudo gedit /etc/vim/vimrc
删掉其中set前所有的",然后在最后一个set后加上set number
3、两种模式
进入编辑模式:i o a
进入命令模式:Esc
4、保存退出:命令模式输入:wq即可保存退出
快速到末尾:shift+g