Linux基本命令
Linux基本命令
在线速查手册
1、命令速查
whereis 命令 #寻找可执行程序的位置
man 命令 #查看“命令”的使用手册
命令 --help
info 命令
2、文件颜色含义
- 蓝色=文件夹
- 绿色=可执行程序
- 白色=文本文件
- 红色=压缩文件
- 青色=链接文件
- 黄色=设备文件
- 灰色=其它文件
- 红色闪烁=无效链接
3、文本命令
cat #连接文件并打印到标准输出设备上
gedit #以编辑器模式打开一个文件
echo #用于在shell中打印shell变量的值,或者直接输出指定的字符串
grep #强大的文本搜索工具,正则表达式
----------
head # 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
tail #ail命令默认在屏幕上显示指定文件的末尾10行
cut #用来显示行中的指定部分,删除文件中指定字段
sort #将文件进行排序,并将排序结果标准输出
uniq #用于报告或忽略文件中的重复行,一般与sort命令结合使用
4、管道与重定向
- 重定向 >>(追加), > (覆盖)
- 管道 |
5、软件的安装
红帽系的yum
5.1 安装包安装
-
安装包类型
- rpm #红帽系统安装包
- deb #由Debian创始,为Ubuntu所采用
dpkg -i <package-name> #安装软件包 dpkg -r <app-name> #卸载 dpkg -P <app-name> #卸载并移除配置 dpkg -L <app-name> #罗列安装包信息 dpkg-deb -c <package-name> #罗列安装包信息 dpkg --info <package-name> #查看安装包详细信息
5.2 apt包管理器安装
sudo apt update #更新软件源(到本地源)
sudo apt upgrade #将本地类库升级到最新版本(很慢)
sudo apt install vim #安装vim,自动下载和安装依赖
sudo apt install -f #修复依赖包关系
sudo apt remove --purge vim #完全卸载vim
sudo apt search ncurse # 搜索ncurse相关的包
支持类库筛选时的经验:libxxx-dev
阅读包说明
----------
apt-cache show vim #显示包信息
apt-cache policy vim #显示包安装状态
apt-cache depends vim #查看包的依赖信息
apt-cache search vim #查询类似软件源
-
相关文件存放位置
- /etc/apt/souce.list #软件源管理文档 - /var/lib/apt/lists/* #本地包索引 - /var/cache/apt/archives/* #本地包缓存 - ... #参见man apt-get
5.3 源码编译安装
sudo apt update // 更新软件源
sudo apt install python-pip //安装pip
./configure 源码包中执行配置
make clean 清除一些编译的垃圾
make 执行编译
make install 安装
make uninstall 卸载
5.4 更新软件源
- sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
- 备份软件源
- gedit /etc/apt/sources.list
- 使用国内源(此处为科大源)
- sudo apt update
- 更新软件信息
参考网址:https://blog.csdn.net/qq_37193603/article/details/72900797
5.5 常用工具的安装
-
搜狗拼音
下载deb,sudo dpkg -i xxx.deb 修复依赖关系:sudo apt-get install -f 再次安装:sudo dpkg -i xxx.deb 在SystemSetting中将默认输入法切换为fcitx 重启 点击桌面右上角键盘图标,添加输入法(取消勾选只看当前输入法), 搜索并添加sogoupinyin 将搜狗拼音位置上调到顶部
6、文件管理
-
文件操作
cd - 回上次目录 - 回根目录:cd ~ 或 cd - ---------- ls -l 查看详细信息 ls -a 查看所有文件包括隐藏文件 ls pycharm* 查看所有以pycharm开头的文件 ll #等于ls -al - ---------- touch shit 创建空白文件 mkdir shit 创建目录 #一次性创建 text/1/2/3/4 mkdir -p text/1/2/3/4 rmdir:删除一个空的目录 rm -r fuck 递归删除文件夹 rm -rf ~/.Pycharm/ ~/Download/pycharm-/ #递归强制删除多个文件夹 sudo rm -rf fuck 使用管理员权限强制递归删除文件夹 - ---------- echo "It is a test" > myfile 输出字符到文件 echo $name #输出变量name的值 cat myfile 查看myfile cat -n myfile #带行号查看myfile cat -b myfile #带非空行号查看myfile more xxx #就地查看xxx文件 file myfile #查看文件信息 gedit myfile - ---------- cp myfile mynewfile 拷贝文件 mv myfile shit/ 移动文件到文件夹下 mv mynewfile shit/yournewfile 移动并重命名 mv myfile yourfile 重命名 - ---------- pwd:显示目前目录的绝对路径 man cp 查看某命令的使用文档 - ---------- chown newowner myfile #修改文件的owner chgrp newgroup myfile #修改文件的所属组 chmod 777 myfile #修改文件的权限为所有人可读可写可执行 chmod o+x myfile #为其他人增加可执行权限(a,u,g,o) chomd g=rw myfile #修改用户组的权限为读写 - ---------- grep "fuck" myfile #在文件中查找关键字 find / -name myfile 全盘检索文件
解析:
. 在此表示当前目录
-name core 表示查找文件名为core的文件
-exec 表示执行什么命令。后面跟要执行的命令。此处是rm
{} ;表示把查找到的结果发送到此来。
locate myfile #快速全盘检索文件,但通常要先updatedb
ln -s ./h /bin/h #建立软链接快捷方式
##### 7、压缩
```shell
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
- ----------
tar -xvf abc.tar 解压普通tar包
tar -zxvf abc.tar.gz 解压gz压缩包
tar -jxvf abc.tar.bz2 解压bz2压缩包
- ----------
zip xxx.zip ./* 压缩
unzip xxx.zip #解压zip压缩包
- ----------
gzip hello.c #打包
gzip -d hello.gz #解包
8、文件类型
\- #一般文件
d #文件夹
l #链接文件(快捷方式)
b #块文件
c #字符文件
s #socket
p #管道文件
9、磁盘管理
df #查看磁盘使用情况(disk free)
du #查看目录使用详情(directory usage)
du | more #分页查看目录使用详情
du -sh #简介可读地查看目录使用情况
#查看/etc所占的磁盘空间
du -sh /etc
fdisk -l #识别Linux下磁盘数据
fdisk /dev/sdb #对设备进行分区(后续步骤通过查看命令帮助逐步完成)
mkfs -t ext4 /dev/sdb1 #在设备分区上建立文件系统(此时的sdb1是一个块文件,
还不能作为文件夹使用)
mount -t ext4 /dev/sdb1 /mnt/mydisk #挂载磁盘设备(将块文件映射为文件夹)
vi /etc/fstab #编辑文件系统注册表(将挂载设备注册到系统,才能永久生效)
umount /mnt/mydisk #卸载磁盘设备
10、系统管理
su uname #切换用户
exit #退出当前会话
sudo 命令 #super user do
$PATH #当前环境变量
export PATH=$PATH:/home/ldc/Desktop/ #追加环境变量
#----------
shutdown -h 21:00 #定时关机
halt #完成当前任务并关机
poweroff #关机
reboot #重启
#----------
ps -ef #完整打印所有进程快照
ps -ef | grep nginx #查看服务是否运行
kill -9 26528 #强制杀死进程
top #显示所有系统任务(任务管理器)
free #查看内存占用
uname -a #打印操作系统信息
uptime -p #查看系统运行了多久
cal/date/ #查看日历日期
time #命令执行时长
11、服务管理
-
系统运行级别
系统运行级别(单多网留图) 0=停机模式 1=单用户安全模式 2=多用户安全模式 3=多用户网络模式 4=系统保留模式 5=图形化界面模式 6=重启模式 runlevel #查看当前运行级别 sudo init 6 #进入指定运行级别
-
程序后台运行
nohup python machine.py >> machineLog.out &
nohup后台执行脚本并把输出都指定文件.
12、systemctl 服务管理
systemctl status xxx #查看服务状态
systemctl start xxx #启动服务
systemctl stop xxx #停止服务
systemctl restart xxx #重启服务
systemctl is-enabled xxx #查看是否开机启动
systemctl enable xxx #设置服务开机自启
systemctl disable xxx #禁止服务开机自启
13、用户和权限管理
-
登录状态、查看日志、权限管理、用户管理
last 查看用户近期登陆情况 last -2 最近登陆的两个用户 last -2 root 查看root用户最近两次登陆情况 chmod +x ./hello.sh #为文件增加执行权限 ---------- sudo useradd uname #添加用户(home为根目录) sudo useradd -m uname #添加用户并将自动添加home目录 sudo useradd -g xxx uname #添加用户到用户组xxx sudo useradd -u 0 -o -g root -p123456 uname #创建id为0用户组为root密码 为123456的(超级)用户 sudo passwd #修改密码 sudo passwd uname #添加密码 su uname #切换用户 sudo usermod -g xxx uname #修改用户所属的用户组 sudo userdel -r uname #删除用户及其home目录 -------- groupadd、groupmod、groupdel #组的添加修改和删除 id #显示用户及其群组信息 groups #查看当前用户所加入的组 who #查看所有当前已登录的用户 whoami #显示当前用户名称
/etc/passwd文件说明:
是用户管理工作涉及的最重要的一个文件 内容包含7个字段,例如 him:x:200:50:Sam san:/usr/sam:/bin/sh 含义分别为 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
14、网络管理
// 下载redis
traceroute -m 100 baidu.com 追踪路由信息,最大100跳
netstat -at 列出所有TCP端口
netstat -r 显示路由表
netstat -i 显示接口列表
netstat -tpnl 查看已连接的TCP端口和程序名
netstat -anp | grep 3306 -c 查看MySQL的连接数
- ###### 在Ubuntu上开启SSH服务
```shell
1、sudo apt-get update 更新源列表
2、sudo apt-get install openssh-server 安装openssh-server
3、sudo ps -ef | grep ssh 查看SSH服务是否启动
4、sudo service ssh start 如果没有启动则启动SSH服务
5、ssh root@127.0.0.1 访问远程主机
6、exit 退出远程访问
-
远程登录
假设远程主机为:sname@192.168.158.129
sudo apt-get install openssh-server 安装openssh-server sudo ps -ef | grep ssh 查看SSH服务是否启动 sudo service ssh start 如果没有启动则启动SSH服务 ssh root@127.0.0.1 访问远程主机 exit 退出远程访问
从远程主机拷贝内容到本地
scp -r sname@192.168.158.129:/abc /home/wife/Desktop/
从本地拷贝内容弄到远程主机(对方没有本地的公钥时需要密码认证)
scp -r /abc sname@192.168.158.129:/home/sname/Desktop/
ssh公钥交换过程:远程主机持有本地的公钥时,ssh以及scp可以免密执行
ssh-keygen -t rsa 生成ssh秘钥对
#上传公钥给远程主机
scp ~/.ssh/id_rsa.pub sname@192.168.158.129:/home/sname/.ssh/
ssh sname@192.168.158.129 ssh登录远程主机
操作远程主机添加公钥认证(今后远程对本地ssh免密)
#让远程持有自己的公钥(对方不必添加公钥到authorized_keys)
ssh-copy-id sname@192.168.158.128 cat Desktop/id_rsa.pub >>
~/.ssh/authorized_keys
##### 15、vim使用
- 模式与切换
命令模式 Command
插入模式(编辑模式)Edit
底行模式 Ex
\----------
```shell
Command=>Edit:i=前插入;a=后插入;o=换行插入
Edit=>Command:ESC
Command=>Ex:冒号
Ex=>Command:Enter
Ex与Edit间无法互切,必须以Command做跳板
-
底行命令
:q! 不保存强制离开 wq 保存退出(x) w filename #另存为 set nu #设置行号 set nonu #设置无行号 ---------- %s/old/new/g #执行全文替换 %s/old/new/gc #全文逐一待确认地进行替换 n1,n2s/old/new/g #执行局部替换
-
命令模式
ctrl +f / b #向前/后翻页 0 / $ #行首/行尾 1G #文件开头 G #文件末尾 78G #移动到第78行开头 5+ 下移5行 6- 上移6行 ---------- dd #删除整行 5dd #向下删除5行 x #删除当前字符 ---------- yy #复制当前行 5yy #向下复制5行 p #粘贴 ---------- u #恢复上一步操作 /keywords #向下查找关键字 ?keywords #向上查找关键字 n/N #向下/上查看关键字
-
o #插入
-
d #插入前删除内容
16、其它命令
ls -i /usr/bin/python //查看文件的inode
ln /usr/bin/python ./phln // 创建硬链接(共享文件入口)(硬链接不能跨磁盘)
source ~/.bashrc // 使修改后的bashrc生效
转载自:https://blog.csdn.net/u010986776/article/details/79841990