Linux基本命令

Linux基本命令

在线速查手册

1、命令速查
whereis 命令 #寻找可执行程序的位置 
man 命令   #查看“命令”的使用手册
命令 --help
info 命令
2、文件颜色含义
  1. 蓝色=文件夹
  2. 绿色=可执行程序
  3. 白色=文本文件
  4. 红色=压缩文件
  5. 青色=链接文件
  6. 黄色=设备文件
  7. 灰色=其它文件
  8. 红色闪烁=无效链接
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、网络管理
  • 网络管理命令
    ifconfig // 查看网卡状态
    ping 192.168.59.129 // 检查网络是否连通
    

// 下载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

posted @ 2018-05-21 21:01  轻松学编程  阅读(85)  评论(0编辑  收藏  举报