1. 文件和目录操作
tree: 以树状形式显示当前文件和目录,需要安装该软件: sudo apt-get install tree (ubuntu下)
ls:查看指定目录下所有文件和目录信息
参数:-a(all) -- 列出当前目录下所有文件内容,包括 .和 ..、隐藏文件、普通文件;
-R(recursive ) -- 同时列出所有子目录层;
-l -- 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来;
cd: 进入指定目录,相对路径,绝对路径,.. -> 当前目录的上一级,. -> 当前目录;
进入家目录: cd cd ~ cd 家目录绝对路径
pwd: 查看当前所在目录( printf working directory);
mkdir: 创建目录,创建多级目录加参数-p( mkdir -p world/china/b );
touch : 创建文件,touch + 文件名;
cp: 拷贝文件
cp file1 file2 : 将file1中的内容拷贝到file2,文件不存在创建文件, 文件存在,覆盖原文件;
cp -r dir1 dir2 : 将目录dir1中的内容拷贝到dir2中,dir2 目录不存在创建目录;
rm: 删除目录必须加参数 -r(递归删除, rm -r dir )
注意: rm 删除的文件或目录是不易恢复的,数据不会放入回收站中
参数: -i :提示用户是否需要删除目录或文件;
-f :强制删除,使用rm命令的时候默认已经添加了 -f 参数;
2. 查看文件内容
cat: 将文件内容一次性输出到终端,如果文件太长,无法再终端全部显示;
more:文件内容分页显示到终端,但是只能一直向下浏览,不能回退;
【回车:显示下一行, 空格:显示下一页, ctrl+c 或 q:退出】
less: 文件内容分页显示到终端,可以自由上下浏览;
【回车:显示下一行, 空格:显示下一页, ctrl+c 或 q:退出】
【ctrl+p 或 ↑:滚动到上一行, ctrl+n 或 ↓:滚动到下一行】
head: 从文件头部开始查看前 x 行的内容,如果没有指定行数,默认显示前10行内容( head -5 hello.c );
tail: 从文件尾部开始查看后 x 行的内容,如果没有指定行数,默认显示后10行内容( tail -5 hello.c );
软连接(符号链接): 相当于windows下快捷方式,软连接大小:源文件+路径 的总字节数,允许给目录创建软连接,
ln -s /home/a.txt(源文件名+绝对路径) a.test(软链接的名字)
硬链接: 以文件副本的形式存在(映射),不占用实际空间,不允许为目录创建硬链接且只有在同一个文件系统中才能创建;
特点:硬链接能够同步更新,创建硬链接后,两个文件的Inode是相同,查看文件的 inode: stat a.txt
ln 源文件名 软链接名字
3. 文件或目录属性
wc: 查看文件的行数 字数 字节数 文件名
参数: -c: 只显示字节数 -l: 只显示行数 -w:只显示字数
od: 查看二进制文件信息,- t 指定数据的显示格式
参数: c --> ASCII字符 d --> 有符号十进制数 f --> 浮点数
o --> 八进制数 u --> 无符号十进制数 x --> 十六进制数
du:查看某个目录的大小(disk use), 一般加参数 -h(human) 以人类能看懂的方式显示 ;
df: 查看磁盘的使用情况(disk free), 一般加参数 -h;
4. 文件权限, 用户, 用户组
which: which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果;
whoami: 查看当前登录用户;
chmod: 修改文件属性(访问权限)
文字设定法:chmod 操作对象 [权限] 文件名
操作对象:u -- 用户(user) g -- 同组用户(group) o -- 其他用户(other) a -- all用户【默认】
操作符:+ 添加权限 - 取消权限 = 赋予给定权限并取消其他权限
权限:r -- 读 w -- 写 x -- 执行
数字设定法:0 -- 没有权限(-) 1 -- 执行权限(x) 2 -- 写权限(w) 4 -- 读权限(r)
chown: change owner,将指定文件的拥有者改为指定的用户或组, chown + 文件所属用户:文件所属组(可省略) + 文件或目录名
chgrp: 改变文件或目录的所属群组, chgrp + 用户组 + 文件或目录名
5. 文件的查找和检索
find: 按文件名查询[-name]: find + 路径 + -name + 文件名
按文件大小查询[-size]: find + 路径 + -size + 范围 【等于100k的文件: find ~/ -size 100k
】
【大于100k的文件: find ~/ -size +100k
】
【大于50k, 小于100k的文件: find ~/ -size +50k -size -100k
】
按文件类型查询[-type]: find + 路径 + -type + 类型
类型:1. 普通文件类型用 f 表示而不是 - 2. d -> 目录 3. l -> 符号链接 4. b -> 块设备文件
5. c -> 字符设备文件 6. s -> socket文件,网络套接字 7. p -> 管道
grep: 按文件内容查找, grep -r + “查找的关键字” + 路径
6. 软件的安装和卸载
在线安装:apt-get 安装: sudo apt-get install xxx软件名
移除: sudo apt-get remove xxx软件名
更新软件列表: sudo apt-get update
清理所有软件安装包: sudo apt-get clean (实际清理的是: /var/cache/apt/archives
目录下的 .deb 文件)
aptitude 安装: sudo aptitude install tree
重新安装:sudo aptitude reinstall tree
更新:sudo apt-get update
移除:sudo aptitude remove tree
显示状态: sudo aptitude show tree
deb包安装:安装: sudo dpkg -i xxx.deb
删除:sudo dpkg -r xxx
源码安装:略
7. U盘的挂载和卸载
mount:系统默认挂载目录:/media
手动挂载目录:/mnt
挂载方式: mount + 设备名 + 挂载目录 【检测设备名称: sudo fdisk -l 】
注意:若挂载到/mnt以外的目录, 挂载成功后会遮蔽掉目录中原有文件,卸载设备之后才能看原数据;
umount:sudo umount /mnt
注意:卸载时,用户的当前位置不能位于 /mnt(/media)或者挂载的目录下,否则无法卸载
8. 压缩包管理
gzip / gunzip:.gz格式的压缩包 gzip 文件名 ,压缩过程中不保留源文件,不能对目录进行压缩,不能对多个文件进行打包压缩;
bzip2 / bunzip2 :.bz2格式的压缩包 bzip2 -k 文件名 ,通过使用参数 -k(keep) 保留源文件,不能对目录进行压缩,不能对多个文件进行打包压缩;
tar 压缩: tar + 参数(zcvf) + 压缩包名字.tar.gz + 原材料(要打包压缩的文件或目录)
tar + 参数(jcvf) + 压缩包名字.tar.bz2 + 原材料(要打包压缩的文件或目录)
解压缩: tar + 参数(zxvf) + 已有的压缩包(test.tar.gz)
tar + 参数(jxvf) + 已有的压缩包(test.tar.bz2)
参数: z -> 用 gzip 来压缩/解压缩文件 j -> 用 bzip2 来压缩/解压缩文件 C -> 指定解压目录 tar zxvf xx.tar.gz -C + 解压目录(./mytest)
;
c -> create,创建新的压缩文件 x -> 从压缩文件中释放文件 v -> 详细报告tar处理的文件信息 f -> 指定压缩文件的名字
rar 打包: rar a -r + 压缩文件名 + 压缩的目录 ,注意,打包的生成的新文件不需要指定后缀;
解包: rar x xx.rar + 解压得指定目录
zip 打包: zip -r + 打包之后的文件名 + (打包的目录) ,对目录打包需要添加参数: -r;
解包: unzip xxx.zip -d 解压的指定目录
,使用参数 -d 来指定目录;
9. 进程管理
who:查看当前在线用户的情况
$ who #登录的用户名 使用的设备终端(pts) 登录到系统的时间 mrwang :0 [表tty7图形界面] 2021-10-23 22:05 (:0) mrwang pts/2 2022-03-14 22:19 (192.168.31.153)
tty1 - tty6 表示文字界面 【ctrl + alt + [F1-F6]
】 tty7 图形界面【ctrl + alt + F7
】
ps: 查看整个系统内部所运行的进程状况
- a:当前系统所有用户的进程(all);
- u:查看进程所有者及其他一些信息;
- x:显示没有控制终端的进程【TTY,不能与用户进行交互的进程】;
对显示的进程过滤: ps aux | grep xxx
管道(|): 指令1 | 指令2 指令1的输出作为指令2的输入,指令2处理完毕,将信息输出到屏幕;
- grep查询是需要占用一个进程的,所有结果 > 2 才能说明查询结果存在;
- 如果结果有一条,表示没有查询的进程;
- 查询结果中PID表示进程ID;
kill: 用来终止指定的进程(terminate a process)的运行;
$ kill -l # 查看信号编号 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
杀死进程:kill -SIGKILL 89899
【PID-进程标识号】,向当前进程发送了9号信号(SIGKILL)
env: 查看当前进程环境变量(当前系统下用户的配置路径信息);
格式为键值对:key=value:value (多个值之间用 : 分隔);
$ env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PATH:该环境变量中记录着shell命令解析器去查找命令的目录位置,从前往后的顺序查找;
top: 相当于windows下的任务管理器,文字版,不能翻页;
10. 网络管理
ifconfig:获取网络接口配置信息,也可修改配置;
ping: 测试与目标主机的连通性,命令格式 ping [参数] [主机名或IP地址]
-c 数目:在发送指定数目的包后停止;
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次;
nslookup: 查看服务器域名对应的IP地址;
$ nslookup www.baidu.com Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 110.242.68.4 Name: www.a.shifen.com Address: 110.242.68.3
11. 用户管理
创建用户: ①. sudo adduser + 用户名 ,adduser为脚本(不支持用户名中有大写)
②. sudo useradd -s /bin/bash -g itcast -d /home/itcast -m itcast
-s 指定新用户登陆时shell类型
-g 指定所属组,该组必须已经存在
-d 用户家目录
-m 用户家目录不存在时,自动创建该目录
设置用户组: sudo groupadd itcast
删除用户: ①. sudo deluser + 用户名 ,deluser为脚本
②. sudo userdel -r itcast
,选项 -r 的作用是把用户的主目录一起删除
切换用户: su + 用户名
root用户: sudo su
设置密码: sudo passwd + 用户名
退出登录用户: sudo passwd + 用户名
$ vi /etc/passwd # 查看用户信息
12. 其他命令
终端翻页: Shift + PageUp 【上翻页】 Shift + PageDown 【下翻页】
创建终端: Ctrl + Alt + T 添加新标签页: Ctrl + Shift +T
清屏: clear 【快捷键 Ctrl + l
】
重启:
poweroff
reboot
shutdown
shutdown -r now 立刻重新开机;
shutdown -h now 立刻关机;
shutdown -h 10:42 'Hey! Go away!' 10:42 分关机;
shutdown -r 10 'Hey! Go away!' 10 分钟后关机;
shutdown -c 将刚才下的 shutdown 指令取消,必须切换至其它tty, 登入之後, 才能下此一指令;
man手册:
1. 可执行程序或shell命令
2. 系统调用(内核提供的函数)
3. 库调用(程序库中提供的函数)
4. 特殊文件(通常位于/dev)
5. 文件格式和规范(如:/etc/passwd)
6. 游戏
7. 杂项
8. 系统管理命令
9. 内核例程
alias: 设置或查看别名,例如 alias pag='ps aux | grep'
需要长久有效需要去设置配置文件: .bashrc ;
echo: 在显示器上显示数据;
普通数据: echo 字符串
显示环境变量: echo $PATH
显示上一次程序退出值: echo $?