创作不易,如果以下内容对你有帮助,别忘了点一个赞,让更多的小伙伴能看到吧~~
一、常用目录/文件操作命令
1.展示目录列表命令ls (list)
ls 展示当前目录下的可见文件
ls -a 展示当前目录下所有的文件(包括隐藏的文件)
ls -l(ll) 展示当前目录下文件的详细信息
ll -a 展示当前目录下所有文件的详细信息
ll -h 友好的显示当前目录下文件的详细信息(文件的大小可读性更强了)
2.切换目录命令cd(change directory)
cd test 切换到test目录下
cd .. 切换到上一级目录
cd / 切换到系统根目录下
cd ~ 切换到当前用户的根目录下
cd - 切换到上一级所在的目录
3.目录的创建(mkdir)和删除(rmdir)命令
mkdir test 在当前目录下创建一个test目录
mkdir -p test/a/b 在test目录下的a目录下创建一个b目录,如果上一级目录不存在,则连它的父目录一起创建
rmdir test 删除当前目录下的test目录(注意:该命令只能够删除空目录,如果想删除非空目录,rm -r test 删除)
4.文件的创建(touch)和删除(rm)命令
touch test.txt 在当前目录下创建一个test.txt文件
touch ~/Desktop/test.txt 在~/Desktop目录下创建test.txt文件
rm test.txt 删除test.txt的文件(带询问的删除,需输入y才能删除)
rm -f test.txt 强制删除text.txt文件
rm -r test 递归删除,即删除test目录以及其目录下的子目录(带询问的删除)
rm -rf test 直接删除test目录以及其目录下的子目录
5. 文件复制(cp) 和文件移动、重命名(mv)
cp test1/a.txt(源文件路径) test2/b.txt(复制目标路径) 将a.txt文件复制到test2目录下的b.txt文件
cp -r test1 test2 将目录test1复制到test2
-r:递归持续复制,用於目录的复制行为;(常用)
mv test1/a(源文件路径) test2/b(移动目标路径) 将a文件移动到test2目录下的b文件
mv a.txt b.txt 给a.txt重命名为b.txt
6.文件打包或解压命令tar
- 说明: Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
压缩:
tar -zcvf tar zcvf FileName.tar.gz(压缩后的文件名) DirName(要打包压缩的文件)
z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
解压:
tar zxvf FileName.tar.gz(解压文件名)
z:调用gzip压缩命令进行压缩
x:解压文件
v:显示运行过程
f:指定文件名
二、命令执行/基本的文件管理
1. 格式化输出时间(date)
时间(date)
date 显示当前日期(包括年月日、时分秒、星期)
date +%Y/%m/%d 格式化输出年月日(以指定的/链接)
%S:秒,取值为00-59
%M:分钟,取值为00-59
%H:小时,取值为00-23
%d:月中的某天,取值为01-31
%m:一年中的某月,取值为01-12
%y:一个世纪中的某年,取值为0-99
%Y:年,其格式为ccyy(4个数字)
%D:以格式%m%d%y表示的日期
%T:时间,格式为%H:%M:%S
日历(calendar)
cal 查看当前月份的日历
cal -y 查看一年中的日历
2. 开关机命令/切换身份(su)
shutdown –h now 立刻进行关机
shutdown –r now 现在重新启动计算机
su - 切换root用户权限
su - m 切换到root用户且保持在切换前的目录
passwd 修改用户密码
logout 用户注销
3. 常见的热键与操作技巧
- 【Tab】键:,命令自动补全,也可以文件名补全,变量补全
- 【Ctrc】+【C】 :中断一个运行的命令
- 【Shift】+【PageUP】,【Shift】+【PageDown】:上下移动屏幕界面
- 命令 --help 查看命令用法详情,如 ls --help
4. 管道命令
- 说明: “|” 表示 将前一个命令输出的结果作为后面的命令的输入来处理
ll /etc/ | grep 'passwd' 在ll /etc命令显示结果中匹配(grep) 'passwd'
5. echo文字/重定向(>和>>)
- echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用
echo "hello world"
终端返回: hello world
- Linux 允许将命令执行结果 重定向到一个 文件
将本应显示在终端上的内容 输出/追加 到指定文件中
其中- “>” 表示输出,会覆盖文件原有的内容
- “>>” 表示追加,会将内容追加到已有文件的末尾
echo "print('hello world')" > 01.py 将 "print('hello world')"覆盖01.py文件原有内容
echo "print('hello world')" >> 01.py 将 "print('hello world')"追加到01.py文件末尾
6. linux文件查看
cat 由第一行开始显示文件内容
nl 显示的时候,顺道输出行号
more 一页一页的显示文件内容,小写q退出
less 与more类似,但是比more更好的是,他可以往前翻页
head 只看头几行
tail 只看尾巴几行
7. 远程操作
说明:
- ssh协议: 安全外壳SSH(Secure Shell)协议由 IETF网络工作小组所制定,是使用在传输层和应用层的安全协议。是应用于远程登录及其他网络服务的安全性协议
ssh 用户名@IP地址 -p 端口号(端口号可省略) 远程连接服务器
scp ~/Desktop/01.py username@IP地址:/Demo 将 ~/Desktop/目录下的01.py文件远程复制到指定的服务器的某个目录下
scp -r ~/Desktop/demo username@IP地址:/Demo 将 ~/Desktop/demo目录下的所有文件都复制到指定服务器的某个目录下
8.其他实用命令
passwd说明:
- /etc/passwd 是用于保存用户信息的文件
- /usr/bin/passwd 是用于修改用户密码的程序
- which 命令可以查看执行命令所在位置
bin和sbin说明
- 在 Linux 中,绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin
- /bin ( binary )是二进制执行文件目录,主要用于具体应用
- /sbin ( system binary )是系统管理员专用的二进制代码存放目录,主要用于系统管理
- /usr/bin ( user commands for applications )后期安装的一些软件
- /usr/sbin ( super user commands for applications )超级用户的一些管理程序
查看命令所在位置
which ls 查看ls命令所在位置
终端返回: /bin/ls
which userdel
终端返回: /usr/sbin/userdel
查看当前用户名
whoami 查看当前登录的用户名
查看配置网卡信息
- 说明:ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢
ifconfig 查看网卡配置信息
ifconfig | grep inet 查看网卡对应的 IP 地址
ping 127.0.0.1 检测本地网卡工作正常
ping www.baidu.com 通过跟服务器通信,查看是否联网和网速
三、Linux文件权限与账号管理
1. 文件权限
说明:
-
linux的文件权限主要依据三种身份来确认
- user/owner(用户/所有者): 文件的所属人
- group(群组) : 这个文件附属于某一个群组的人
- others(其他人) :不是user(用户)也没加入group(群组)的账号,就是others(其他人)
-
文件权限查看(ll -a)
.
- -rw-rw-r-- 其中
- 首位的-表示此为文件,并非文件夹
rw- 表示 文件的user权限可读可写不可执行
rw- 表示 group权限可读可写不可执
r-- 表示others权限可读不可写不可执行 - 第一个leadingme表示该文件的user/owner(用户/所有者), 第二个leadingme表示该文件的 group(群组)
- 42表示该文件大小为42字节
- 4月 8 09:59 为文件创建日期
修改文件所有者(chown)
sudo chown ubuntu 01.py 修改01.py的所有者为ubuntu
命令返回值:-rw-rw-r-- 1 ubuntu leadingme 42 4月 8 09:59 01.py
修改文件拥有的组(chgrp)
sudo chgrp ubuntu 01.py 修改01.py的拥有的组为ubuntu
命令返回值:-rw-rw-r-- 1 ubuntu ubuntu 42 4月 8 09:59 01.py
修改文件操作权限(chomd搭配数字法)
- 说明:
r => read => 2^2 => 4 可读对应数字4
w => write => 2^1 => 2 可写对应数字2
x => eXecute => 2^0 => 1 可执行对应数字1 - 结论:
rwx 可用数字表示为 7
r-- 可用数字表示为 4
…
sudo chmod 775 01.py 修改01.py 权限为775(rwxrwxr-x)
命令返回值:-rwxrwxr-x 1 ubuntu ubuntu 42 4月 8 09:59 01.py
2.账号管理
用户管理
useradd -g usergroup -m username 创建一个用户
useradd -G progroup username
- g 用来指定创建用户拥有的主组(主组只能有一个)
- G 用来添加辅助组(可以添加多个)
- m 指定用户的登录目录,如果不写则无登录目录
usermod -G groupname username 将username用户添加到groupname组中
usermod -s bash username 修改用户的shell
sudo passwd username 修改某个用户的密码
userdel -r username 删除指定用户
- r 递归删除该用户的登录目录
id username 查看用户的用户名(编号),组名(编号)
群组管理
groupadd groupname 创建一个群组
grep groupname /etc/group 查看指定的组名是否存在,/etc/gropu存放系统所有的组名
grep groupname /etc/passwd 查看所有用户的信息
四、进程管理
1. 查看进程
说明:
-
F (flag): 代表进程的摘要标志,常见的是4,代表root .
-
S (stat):状态栏,主要的分类项有下面几种
- R(running):该进程正在运行
- S(stop):该进程当前正在睡眠状态,但可以被唤醒
- D:不可被唤醒睡眠状态,通常这个进程可能在等待I/O,例如打印
- T:停止状态(stop),可能是在工作控制(后台暂停)
- Z(Zombie): 僵尸状态,进程已经结束却无法从内存中移出
-
UID/PID/PPID:代表“此进程被该PID所拥有/进程的PID号码/此程序的父进程PID号码”
-
C:代表CPU使用率,单位为百分比
-
PRI/NI:表示该进程被CPU所执行的优先级,数值越小,越快被CPU执行
-
ADDR/SZ/WCHAN: 指出该进程在内存的哪一部分
-
TTY:登陆者的终端位置,若为远程登录则使用动态终端接口(pts/n)
-
TIME: 使用CPU的时间,注意,是此进程实际花费的CPU时间,而不是系统时间
-
CMD(command):触发次进程的命令
ps -l 查看当前的bash界面的相关进程(也称前台级进程)
pstree -a 以关联树的方式展示全部进程的信息及相关联系
ps -aux 查看系统中的进程信息全部输出,常用的命令
top 动态查看进程,每5秒更新一次
2. 终止进程
kill 进程的UID码 终止该进程
kill -9 进程的UID码 强制终止该进程
五、文件系统基本管理
1. 软连接和硬连接(ln)
说明:
- ln命令主要用途:将一个文件或目录在同一个文件系统或者另一个不同的文件系统的某个位置建立一个链接,类似windows系统中的超链接,这样当我们在链接处访问被链接的目录或文件时就可以通过此链接来访问,不必要再进入要访问的文件系统中。
- 建立链接有两种:硬链接和软链接
- 在linux中文件名和文件数据是分开存储的,文件名存储的是文件数据的引用(地址),通常通过文件名访问文件数据
- 软链接: 创建一个软连接,软连接名存储软链接数据(也就是指向文件名的路径),通过此方式间接访问文件数据。当文件名删除时,软链接失效
- 硬链接: 创建一个硬链接,硬链接相当于给文件数据取了一个别名,等同于原来的文件名。如果删除文件名,硬链接并不失效,只要有至少一个文件名指向文件数据,其数据所在磁盘空间不会释放
sudo ln -s ~/Desktop/01.py Desktop/03.py 给~/Desktop/01.py(绝对路径) 创建一个软链接,软链接名为03.py
sudo ln -d ~/Desktop/01.py Desktop/03.py 给~/Desktop/01.py(绝对路径) 创建一个硬链接,硬链接名为03.py
2. 文件系统的挂载
mkdir /srv/linux /srv/win 创建两个目录
mount /dev/sda4 /srv/linux 将/dev/sda4系统文件挂载到/srv/linux
mount /dev/sda5 /srv/win 将/dev/sda4系统文件挂载到/srv/win
df 查看系统的挂载点及可用的存储空间等
六、vim的基本操作
1. 常用模式
-
命令模式
-
插入模式
-
末行模式
-
可视化模式,命令模式按v进入
-
替换模式,命令模式下按r进入
2. 插入模式
- 默认进入文件打开的是命令模式,在这个模式下是不能插入字符的
- 在命令模式下,按"i"键,会切换到插入模式,然后可以编辑文件
- 当编辑完文件后,按"Esc"键又回到命令模式
3. 命令模式
特殊字符
- “$” 光标移动到一行的最后
- “^” 光标移动到一行的最前
- “&” 在一行中括号两端切换
- “#” 上向切换行
- “:” 切换末行模式
常规字母
- “x” 删除光标处的字符
- “u” 恢复上一个操作的命令,相当于撤销;
- “yw” 复制光标处的单词
- “yl” 复制光标处的字母
- “yy” 复制一整行
- “p” 粘贴到光标处
- “cw” 剪切一个单词
- “cl” 剪切一个字母
- “cc” 剪切一整行
- “dw” 删除一个单词
- “dl” 删除一个字母
- “dd” 删除一整行- “i” 在光标处插入字符
特殊字母
- “I” 光标所在行的行首插入字符
- “o” 光标所在行的下一行新行插入字符
- “O” 光标所在行的上以行新行插入
- “s” 删除光标所在字符并插入字符
- “S” 删除光标所在行并插入字符
- “a” 光标所在字符的下一个字符插入
- “A” 光标所在行的行尾插入字符
- “gg” 光标移动到首行
- “G” 光标移动到尾行
4. 末行模式
- 在命令行模式下,按":"进入末行模式
- :q 就是退出
- :wq 保存并退出,通常连用,等同与:x
- :q! 强制退出不保存
- :wq! 强制保存退出,首先要你有足够的限权
- :sp filename 在vim窗口上半部分打开另一个文件,(同时编辑两个文件)
- ctrl +w 然后按下,就切换到下半文件窗口
- ctrl +w 然后按上,就切换到上半文件窗口
5.可视化模式
说明:
为了便于选取文本,VIM 引入了可视(Visual)模式。 要选取一段文本,首先将光标移到段首,在普通模式下按 v 进入可视模式,然后把光标移到段末。 需要注意,光标所在字符是包含在选区中的
-
v 进入字符可视化模式
-
V 进入行可视化模式
-
Ctrl+v 进入块可视化模式
-
用 v 命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
-
用 V 命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
-
用 ctrl-V 进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。
七、g++的使用(补充)
1. 预处理
- 主要进行宏替换,编译命令为
gcc -E hello.c -o hello.i
2. 编译
- 编译原理旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。将所有的源代码指令一次性成翻目标代码并执行
gcc -S hello.i -o hello.s
3. 汇编
- 汇编过程就是把汇编指令一对一地翻译成01机器码的过程。而采用这种处理方式的语言只有一类:汇编语言。
gcc -c hello.s -o hello.o
4. 链接
- 生成目标文件
gcc hello.o mymath.o -o hello
5. 执行
./hello