整理常用的Linux操作及shell命令

整理常用的Linux操作及shell命令

目录

整理常用的Linux操作及shell命令

1.系统级别命令基本操作和命令:

2.磁盘操作

3.用户和组的操作

4.文件操作

5.文件权限        

6.打包tar原理

7.vi常用命令

8、man帮助手册

shell命令合集 字母排序shell命令解释


1.系统级别命令基本操作和命令:

Redhat 
   更改主机名命令:vi /etc/sysconfig/network
    查看当前Linux系统信息
        uname -a 显示系统及版本的所有信息
        uname -r 显示内核版本
        uname -m 显示计算机是多少位系统
        cat /proc/version Linux查看当前操作系统版本信息
        cat /etc/issue或cat /etc/redhat-release  Linux查看版本当前操作系统发行版本
    查看系统小版本
        cat /etc/redhat-release
    查看当前主机名
        hostname
    查看第一个网卡
        ifconfig eth0 等同于Windows的 ipconfig 查看ip地址
    查看和设置系统时间
        date
    显示当前在运行的进程包括对CPU内存使用量
        top -s
    管道:  |  竖线
        cmd1|cmd2将cmd1输出结果交给cmd2命令来执行
        比如:查看进程:ps-fe|grep redis(这里表示查看redis的进程)
    grep:过滤
        #grep  //输出包含指定字符串的行
            -i  //忽略大小写
            -r  //递归
            -v  //取反
            --color  //突出显示查找字符串

    重新启动Linux操作系统
        reboot
        init 6
    关闭Linux操作系统
        shutdown -h now
        init 0
    图形和命令行转换
        vi /etc/inittab
        init 3 命令行模式
        init 5 图形化
    查看虚拟机运行的运行级别(一般状态以5启动)
            cat /etc/inittab  
            1:单用户模式
            2和3一样的功能:多用户模式
            4:功能还没有定义(未使用)
            6:重启
    显示守护进程目录树
        pstree 或者 pstree -p(显示pid)
    查看正在运行的进程
        ps -aux
    显示所有的Java进程
        jps(如果没有安装JDK,就会显示没有该命令)
    结束正在运行的指定进程
        kill -9 pid(指的是进程的id ,-9强制)
    **进不去系统更改root密码:
        1.在grub选项菜单按e进入编辑模式
        2.编辑kernel那行 输入" 1"(空格键+1键),然后按enter键
        3.按b重启
        4.进入后执行下列命令
            
root@#passwd root  (配置root用户的密码)
            
Enter new unix password:输入新密码 
            root@#init 6  (进行重启)

  Table键的使用
    自动补全命令目录
    在某个目录下只有一个目录的时候可以不用输入首字母直接敲table计划科自动补全目录
    双击table时一般为显示所有名或者列出某个目录下的所有目录和文件

   man ls与ls --help与info ls:(man ls:分屏显示;--help:全部加载,不完整;info ls:无用信息比较多)
   Ctrl+R和方向键中的上下↑↓键:查找历时输入过的命令   

1、Ubuntu   按 Ctrl+Alt+t 快捷键或者双击桌面的“Terminal”调出伪终端(命令行窗口)。

       超级终端:

       Ctrl+Alt+F6:     tty6
       Ctrl+Alt+F5      tty5
       Ctrl+Alt+F4      主机与虚拟机的共享路径

       Ctrl+Alt+F3      tty3
       Ctrl+Alt+F1     返回正常使用的界面

2、[root@sh_c ~]# ls       ~:家目录(当前登录用户的主目录)
      ls:以列表方式罗列出当前目录的文件列出当前目录的所有文件信息 ls -la ;
      ls  -l 选项是以详细的列表方式罗列;-a选项是表示所有文件(all),即包括隐藏文件。      

3、切换界面鼠标 :使虚拟机获取鼠标:Ctrl+G;使宿主计算机获取鼠标:Ctrl+Alt
5、在终端窗口,按Ctrl+C 强行停止当前正在执行的命令或程序。Ctrl+C  Ctrl+Z: 终止或者退出当前操作

6、关机命令:在终端窗口,输入命令:poweroff或shutdown -h now 

2.磁盘操作

 显示系统的磁盘空间用量
        df -h   //显示磁盘分区信息
        mkfs.ext3  /dev/sdb1  fs format //格式化硬盘分区
        fdisk -l   //查看磁盘分区
        du -h -s  //查看目录或者磁盘分区的使用空间   
            比如:du -h /var/log/(表示查看var/log目录下的各文件所占空间大小)  
                 du -h -s /var/log/(表示查看整个log目录的使用空间)
    挂载
        mount -t vfat/dev/sdb1/media/umnt   //挂载
        mount -o remount rw/   //重新挂载,或者将根目录以读写方式重新加载
        umount /media/umnt    //卸载
    文件系统修复

        fsck -y /dev/sda1  (修复的可以是分区也可以是目录,最好在单用户模式下使用)
        //linux文件格式
             ext4 ext3 ext2 vfat(fat32)
        //windows文件格式
             ntfs fat32

3.用户和组的操作

   超级账户    root uid=0
   系统账户    uid=1~499
   普通账户    uid>=500
        /etc/passwd  //保存账户的密码信息
        /etc/shadow  //保存账户信息
        /root             //root用户(~)家目录
        /home/xxx   //普通用户xxx的(~)家目录
    添加用户和删除用户 useradd
        #useradd   //创建用户  比如:useradd admin  
           另外一种方式:useradd -G manager tom(附加到组manager)
        -u  指定uid
        -d  指定宿主目录
        -s  指定使用shell
        -e  指定用户过期时间expire
        -g  指定基本组
        -G  指定附加组
        #useradd testuser
        #gpasswd -a testuser grtest  //将用户加入到组中 
           比如:#gpasswd -a tom admin(将tom用户加入admin用户的组中)
        #gpasswd -d testuser  grtest  //将用户从组中删除  

           用法:gpasswd [选项] 组
           选项:
             -a, --add USER                向组 GROUP 中添加用户 USER
             -d, --delete USER             从组 GROUP 中添加或删除用户
             -h, --help                    显示此帮助信息并推出
             -Q, --root CHROOT_DIR         要 chroot 进的目录
             -r, --delete-password         remove the GROUP's password
             -R, --restrict                向其成员限制访问组 GROUP
             -M, --members USER,...        设置组 GROUP 的成员列表
             -A, --administrators ADMIN,...        设置组的管理员列表

        #echo"123456"|passwd--stdin feige  //不通过交互信息,直接修改密码
        #userdel -r        //连主目录一起删除
        #userdel           //删除用户  不删除用户文件
        #id testuser     //显示用户信息
        vipw  //查看用户
    创建用户组
        groupadd manager
        vigr 查看组
        groups manager 查看用户在哪些组中
    更改密码:    
        方式1:passwd tom  方式二:etho "root" |passwd --stdin root//不通过交互信息,直接修改密码
    锁定账户tom禁止其登录
        usermod -L tom
    切换当前账户为xiaoming
        su -xiaoming
    显示当前登录用户账户
        who am i (同记忆 pwd 显示当前路径)
    查看系统文件判断添加用户组和添加用户操作是否正确
        cat /etc/passwd   或者使用 vipw
        cat /etc/group      或者使用 vigr
 

4.文件操作

cd 进入操作 cd 根目录  .. 上级目录  ./ 当前所在目录  切换之前的目录 家目录
    pwd  查看当前目录
    mkdir  新建文件夹
    mkdir -p //递归创建多级文件夹  比如:mkdir -p ./test1/caimin/test2
        (./是指用户所在的当前目录,/是指根目录,Linux的根目录是/,root超级用户的家目录是/root)
    touch  /tmp/test1/file  创建空文件
    vi或vim file  //创建空文件进入编辑界面,按e(a, i)键进入编辑模式,按Esc键退出编辑
    :wq 保存编辑信息并退回命令行界面   :q  不保存并退回命令行界面  :q! 强制退出(不保存)
    列出文件和目录列表:
        ll -h /home/
        ls -s -h /home/    (ll相当于 ls -l)
    vi 和 vim 文本编辑
    文件内容查看
        cat -n  //查看内容时显示行号
        cat /etc/rehat-release  //不显示行号
        cat -n /etc/passwd  //查看内容时显示行号
    显示文件的头10行或者尾10行
        tail  //默认查看文件尾10行
        head   //默认查看文件头10行

 输出mysqld_multi.log日志15到20行的数据
[root@sh_c data]#  cat -n mysqld_multi.log | head -n +20 | tail -n +15
    15  error: 'Can't connect to local MySQL server through socket '/tmp/mysql3309.sock' 
    16  Check that mysqld is running and that the socket: '/tmp/mysql3309.sock' exists!
    17  mysqladmin: connect to server at 'localhost' failed
    18  error: 'Access denied for user 'root'@'localhost' (using password: NO)'
    19  mysqladmin: connect to server at 'localhost' failed
    20  error: 'Access denied for user 'root'@'localhost' (using password: NO)'
[root@sh_c data]# 
head表示以文件头开始,-n表示开始定位行号区间(没有-n,取数字绝对值),+20表示行号递增式20行为结束点范围输出数据,-20表示行号递减式20行(总行数-20)为结束点范围输出数据;
[root@sh_c data]#  cat -n mysqld_multi.log | head -n +20 | tail -n -15
     6  mysqld_multi log file version 2.16; run: 五 1月 31 13:40:25 2020
     7
     8  Starting MySQL servers
     9
    10  mysqld_multi log file version 2.16; run: 五 1月 31 14:06:04 2020
    11
    12  Stopping MySQL servers
    13
    14  mysqladmin: connect to server at 'localhost' failed
    15  error: 'Can't connect to local MySQL server through socket '/tmp/mysql3309.sock' 
    16  Check that mysqld is running and that the socket: '/tmp/mysql3309.sock' exists!
    17  mysqladmin: connect to server at 'localhost' failed
    18  error: 'Access denied for user 'root'@'localhost' (using password: NO)'
    19  mysqladmin: connect to server at 'localhost' failed
    20  error: 'Access denied for user 'root'@'localhost' (using password: NO)'
[root@sh_c data]# 
tail表示以文件末尾开始,-n表示开始定位行号区间(没有-n,取数字绝对值),+15表示行号递增式15行为为15结束点范围输出数据,-15表示行号递减式15行(总行数20-15)为6 结束点范围输出数据;

有-n 参数, +或-才起作用

       tail -f  动态监控文件数据  (按Ctrl+C退出)
        more  百分比查看,不能回滚看
        less   能往回滚看
    复制文件
        cp ./tmp/file.txt  /test
    复制目录
        cp -r ./tmp/test01  ./test02(递归复制文件)
    移动、剪切、重命名、删除
        mv -rf
    rename   批量重命名
    >    >>   覆盖和追加
    rm xxx/ 删除文件     rm -rf xxx/  (r递归 f强制)强制删除包括目录  rm -rf  * 强制删除所有

   uniq   //去掉相邻重复的行  uniq mydata.txt   //去除 file 中相邻的重复行

5.文件权限
        

pwd 查看当前位置
ls -al  ~/Desktop 显示~/Desktop目录的文件

chmod 777 my.cnf  改变文件的权限操作形式rwx

chown -R  mysql:mysql  /multi_mysql/data  授于mysql组:mysql用户操作文件的权利

6.打包tar原理

   /usr/bin/unzip     /bin/gzip    /bin/gunzip
-c 打包   -x 解包   -f 文件必须要   -C 指定解压位置
-v 显示命令执行的过程 (比如当前压缩到哪个文件等等信息)
-z 使用gzip压缩工具进行压缩、解压缩,文件后缀是.gz
-j 使用bzip2压缩工具进行压缩、解压缩,文件后缀是.bz2   

 打包案例(tar命令平常就替代了gz命令)
打包:
  tar -zcvf ./test.tar ./test(将test文件夹打包成test压缩包)
//将多个文件打包成一个包
  tar -zcvf folder.tar file1.txt file2.txt 
//将多个文件打包并压缩
  tar -zcvf ./test.tar.gz folder1 folder2
使用tar备份指定目录/data0/内容包括子目录中内容备份至/data3/data0.tar.gz
  tar -zcvf /data3/data0.tar.gz /data0

解压:
  tar -zxvf ./test.tar
//将一个文件解压到指定目录
  tar -zxvf ./test.tar -C /home/test/
//将多个文件解包并解压缩
  tar -zxvf ./test.tar.gz
恢复tar文件中的内容/data3/data0.tar.gz至/data2/
  tar -zxvf /data3/data0.tar.gz -C /data2

   which cmd 查找cmd命令所在路径    where is
    which reboot
    locate 文件查找-效率很快(用的是数据库)
    locate unzip(一个索引名)    //查找文件按所在
    updatedb        //更新数据库使之生效
    find文件查找-效率很慢
    find 路径 条件        find / -name unzip(在根目录下找名字为unzip的文件)
给shell命令取别名
    alias     (此操作只针对当前session<连接>有效,另外再开启一个连接还是没有这个别名)
    eg:alias cls=clear(为清屏命令clear取别名cle)
    unalias 取消别名设置  eg:unalias cls
永久设置:
  进入vi ~/.bashrc(家用户目录下的环境配置文件,这个文件只针对当前用户)
  进入e (a,i键)编辑模式后,加入alias cls='clear'  ,esc退出编辑模式保存退回(:!wq)命令行
  输入命令source ~/.bashrc就完成了
全部用户cls别名设置:

clear命令:实际上clear命令只是上拉屏幕,并没有清屏。自己实现一个类似windos的清屏命令:cls

    在/usr/bin/目录下。使用root用户,新建一个名为cls的文件,加上执行权限,写入如入内容:

#/bin/bash
printf "\033c"

注:普通用户切换到root用户,输入命令 sudo -s,然后回车,输入密码(密码不回显)。然后直接 vi cls,编辑内容,保存退出。添加权限命令:chmod 777 cls 。退出root状态,返回之前用户状态,输入命令:exit。然后就可以使用cls作为清屏命令了。

tree 命令,罗列目录的文件结构,后面可以跟一个目录(路径),默认是当前目录路径。

如果目录文件太多,可带参数执行,比如说根目录有非常多的文件,可使用命令 tree / -d -L 1     (-d     List directories only。
 -L level,Max display depth of the directory tree。数字1表示只列出一级目录),可以使用 man tree查询详细用法。         

mount命令。挂载硬盘、U盘,或远程共享目录等。        

举例挂载U盘:
  a)查找刚识别出的U盘分区:sudo fdisk -l(这是查看当前系统已识别的分区,比如说识别到的U盘分区为:/dev/sdb )
  b)将U盘分区挂载到/mnt目录下:sudo mount /dev/sdb /mnt之前的/mnt文件会被掩盖,直到卸载U盘分区)
  c)卸载U盘分区:sudo umount /mnt
  查看设备挂在路径信息:df -h

more命令:分屏(分页)显示信息,比如需要查看的一个文件内容比较大,而又不想打开时,可使用命令more test.txt进行分页浏览。按空格或者回车向下翻页,按b向上翻,按q退出less类似

<、>重定向(覆盖)比如命令ps -ef >1.txt ,将命令ps -efd输出内容输出到1.txt文件(不存在的话会创建,已存在则覆盖);

追加>>:ps -ef >>1.txt   (将命令ps -efd的输出内容追加到1.txt文件)。清空1.txt文件可以使用:> 1.txt 命令。< 重定向输入。

date命令,不带参数显示当前日期/时间。 设置时间日期/时间(需要超级权限)        
  设置时间命令:sudo date -s "20180723 19:00" (设置时间为2018年7月23日19:00时)
  格式化输出:date "+%Y-%m-%d %H:%M:%S"  年月日时分秒)
cal命令,显示日历
                                      

7.vi常用命令

        vi编辑器的键盘输入分成两种情况,一种情况下你的输入就是你编辑的文 档,另一种情况下你的输入是你要编辑器帮你完成的动作。简而言之,vim 需要两个操作模 式:一个模式下键入的信息,作为文本本身的内容,称之为编辑模式. 一个模式下键入的信息,作为执行的动作,称之为命令模式。刚一启动的 vim 编辑器自动进入命令模式,此模式下键入一个命令对应 vim 一个动作, 比如进入编辑模式、保存文本、复制黏贴、查找替换等等;在命令模式下再按下i按键,进入编辑模式。再编辑模式下,按Esc按键退出编辑模式,进入命令模式。

vim 命令

含义
:w
保存当前文件
:w filename
保存当前文件(如果进入 vim 的时候没有指定要编辑的文件名,需要
在保存文件的时候加上文件名 filename,如果进入 vim 的时候指定了 文件名,那么该用法相当于“另存为”)
:q
退出当前正在编辑的文件
:q!
强制退出当前正在编辑的文件并放弃最近一次保存到现在的所有操作
:wq
保存文件并退出
u
撤销最近一次操作。(按 Ctrl+r 恢复撤销掉的操作)
i
在光标所在的位置前面插入字符
a
在光标所在的位置后面插入字符
o
在光标所在行的下一行插入新的一行
O

在光标所在行的上一行插入新的一行
x
剪切光标处所在的字符。(x 前可先按一个数字,则剪切若干个字符)
dd
剪切光标处所在的一行。(dd 前可先按一个数字,则剪切若干行)
yy
复制光标处所在的一行。(yy 前可先按一个数字,则复制若干行)
p
将剪切板中的资料粘贴到光标所在处
r
修改光标所在的字符,r 之后接跟你要修正的字符(比如你要把 fox 中 的 o 改成 i,只需将光标停在 o 上,接着连续按下 r 和 i)
h
将光标向前移动一个字符
j
将光标向下移动一个字符
k
将光标向上移动一个字符
l(小写的 L)
将光标向后移动一个字符
gg
跳到文本的最初一行
G
跳到文本的最末一行
Ctrl + u
向上(up)翻页
Ctrl + d
向下(down)翻页
:%s/old/new
将文件中所有的 old 字符串替换成 new

/string
从光标处往下查找字符串 string,注意在输完你要查找的字符串 string
之后要按回车键。如果你要找的字符串 string 有多个,你可以按 n 将 光标跳到下一个位置,按 N 将光标跳到上一个位置

?string
跟上面的</string>是一样的,区别是它从光标处往上查找

常用vi操作:
1、进入编辑模式:        按i
2、进入命令模式:        按Esc
3、保存文件命令          :w
4、退出编辑命令          :q
5、保存并退出命令         :wq
6、复制行命令           yy
7、剪切行命令         dd         (或者说是删除效果)
8、粘贴命令         p
9、撤销命令         u
10、反撤销命令        Ctrl+r
11、查找命令        /str         (str是要查找的字符串)
12、替换命令        :%s/old/new    (将文件中所有的 old 字符串替换成 new)
13、去到到文件开头       gg
14、去到文件末尾      G
15、去到行首           ^
16、去到行尾           $
 
17、剪切从光标处(含)开始到该行行末的所有字符         d$
18、剪切从光标处(不含)开始到该行行首的所有字符        d^
19、复制从光标处(含)开始到该行行末的所有字符        y$
20、复制从光标处(不含)开始到该行行首的所有字符      y^
21、区块选择复制:
        复制方式1:鼠标选中,按y复制,p粘贴。
        复制方式2:按v键,进入Visual状态,按上下左右方向键进行区域选择(从当前光标处(含)开始),按y复制,p粘贴。
22、区块选择剪切 (删除效果):
        剪切方式1:鼠标选中,按y剪切(或者按Delete键),p粘贴。
        剪切方式2:按v键,进入Visual状态,按上下左右方向键进行区域选择(从当前光标处(含)开始),按d复制(或者按Delete键),p粘贴。
23、将一个文件中的内容复制到另外一个文件 
    例如将a文件中的一部分内容复制到b文件中
        a)打开终端  cat a文件       (显示a文件的内容,然后可以选择、右键复制(copy))
        b)用vi打开要粘贴到的文件 vi b文件
        c)右键粘贴(paste)
24、命令行模式下:ZZ       保存并退出
25、全选,在命令行模式,按ggvG (其中gg是回到开头,v是进入visual模式,相当于区块选择,大写G是到文章末尾,ggvG结合起来就是从开头选到结尾)     (或者是在终端cat出来再进行右键复制)
补充:

(1)【命令行模式】设置vi显示行号、自动缩进等,命令行模式下:set option (选项前加no 等于禁止)

选项:  
    number 显示行号
    ruler 屏幕底部显示光标所在行、列的位置
    autoindent 自动缩进
    all 列出所有选项

比如set number 设置侧边显示行号。set nonumber 设置为不显示行号

上面的设置方法仅仅在当前编辑的文档生效。全局生效需要设置vi的配置文件。所有用户的vim配置文件/etc/vim/vimrc,对某个用户的vim配置文件/home/用户名/.vimrc。

例如设置当前用户的配置文件,(若是还没有的话就创建)              
  set backspace=2  可随时用退格键进行删除
  set mouse=a   允许鼠标移动光标”  (我们习惯鼠标点到哪,哪就可以编辑的,但是有vi默认光标是通过方向键移动的)
  syntax on       语法检验,关键字着色 
  set tabstop=4   设置tab键的宽度
    配置所有用户则需要修改文件/etc/vim/vimsrc  (需要超级权限) 例如默认显示行号、自动缩进、允许鼠标移动光标

 (2)【命令行模式】Ctrl+v 方形选择,(类似与notepad++上的按着Shift+Alt键进行鼠标选择)  

(3)【编辑模式】Ctrl+n       自动补全        例如键入pri,然后按Ctrl+n,就会补上ntf。

8、man帮助手册

1、man 命令帮助我们查找需要的信息,而这些信息被归类为以下几大类别(详细的信息 可以用 man 命令查询自己):

实际上有 9 册 man 帮助文档来分别管理这些信息,但可能系统默认只安装了第 1 册(即查找 Shell 命令的 man 手册),其他的 man 手册需要手动安装。

   man
    1 Shell 命令(默认已安装)
    2 系统调用
    3 库函数
    4 特殊文件(通常出现在/dev 目录下)
    5 文件的特殊格式或协定(例如/etc/passwd 的格式)
    6 游戏
    7 杂项(例如一些宏定义)
    8 系统管理员命令(通常只能由管理员执行)
    9 非标准内核例程
2、有了完整 man 手册之后就可以查找想要的信息了,比如想要找关于 read 的用法和说明 的信息。
查找那本手册有read这个函数:

man -f read
    read (2) - read from a file descriptor
    read (1posix)- read a line from standard input 
    read (3posix) - read from a file
其中,read (1posix)提供的是 Shell 命令帮助信息,read (2)提供的是系统调用,read (3posix)提供的是库函数等等,假如你想要的是库函数 read 的帮助信息,输入命令:man 3posix read(或者简写为man 3 read)

=================================================================

shell命令合集 字母排序shell命令解释

记录平时常用到的shell 命令

shell是用户和Linux操作系统之间的接口。

C

cat命令的功能是显示或连结一般的ascii文本文件。cat是concatenate的简写,类似于dos下面的type命令。用法如下:

cat file1 显示file1文件内容

cat file1 file2 依次显示file1,file2的内容

cat file1 file2 > file3 把file1, file2的内容结合起来,再“重定向(>)”到file3文件中。

">"是右重定向符,表示将左边命令结果当成右边命令的输入,注意:如果右侧文件是一个已存在文件,其原有内容将会被清空,而变成左侧命令输出内容。如果希望以追加方式写入,请改用">>"重定向符。

如果">"左边没有指定文件,如: cat >file1,将会等用户输入,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会将用户的输入内容写入file1。

cat -n  mysql3306.log | tail -n 10       #查看mysql3306日志的,有行号的末尾10行;
head -n 20 mysql3306.log      #查看mysql3306日志的开头20行;

cd 回到起始目录,也即刚登陆到系统的目录,cd后面无参数
cd / 回到根目录   cd ~ 返回home目录
cd .. 返回上一级目录  cd - 返回到最近使用的目录

D
df -kh 查看磁盘信息

du -sh foldername 查看文件夹大小,-h表示以human readable格式显示大小,-s表示累加各个文件的大小。

H
history 显示命令历史记录 history > myhistory.txt
hostname 显示当前登录的主机名

L

ls -al 列出所有文件的完整信息,每行一个文件

ls -tl 按最后修改时间排序

ls -ul 按最后访问时间排序

ls -R 递归现实子目录中的文件及文件夹,这个命令配合grep可以方便的实现查找,比如在当前目录及子目录下查找文件zdd,ls -R | grep zdd

ls -F | grep / 只列出目录

less 分屏显示文件,按空格向下查看,并可使用上下箭头前后回看。按q键退出。

M

more 分屏显示文件,按空格向下查看,不支持回看,按q键退出。
man ls 查看ls命令的帮助,如果帮助有多页
空格    向下翻页
b    向上翻页
q    退出帮助

O

od 查看文件的ASCII编码。

P
pwd 显示当前目录
ps 列出当前用户的进程
ps -ef 以完整信息列出所有进程

R
rm -rf zdd 删除目录zdd及其子目录,即使目录不空
rm -rf zdd/* 删除目录zdd下的所有内容,但不删除zdd本身
rm -rf * 删除当前目录下所有文件,包括子文件加及其中的文件,-r表示递归,-f表示强制删除,不询问。
rmdir zdd 删除空目录zdd
mkdir zdd 创建目录zdd

S
set 查看已定义变量
ssh hostname 登录到hostname

T
tar [option] file or dir
tar -xvf zdd.tar 将zdd.tar解压,解压后将产生zdd文件夹,里面包含解压后的文件 x表示解压,v表示输出解压信息,f表示操作普通文件
tar -cvf tmp.tar tmp 将文件夹tmp打包成tmp.tar
tar -rvf tmp.tar zzz 将文件zzz追加到tmp.tar中

type xxx 查看xxx所在的路径。和which有何区别?

touch命令
touch [acm] -t time file
这个命令用来修改文件的时间,a-access time, m-modification time c-do not create if file not exists
如果不指定时间,则使用当前的系统时间,如果文件不存在,且未指定-c那么将创建新的文件。可以使用这个方法快速创建文件。time的格式如下
[[CC]YY]MMDDhhmm[.SS]
touch abc 如果文件abc存在,则更新其时间为当前时间,否则创建它
touch abc -a -t 
touch -m -t 201101230621 abc

W
who 查看有哪些人登陆了系统

who am i 查看自己的账户信息

which ls 查看ls程序所在的路径。

Z
zip 压缩
zip [options] dest_files source
zip -r9 ~/zdd /home/zdd/* 将目录/home/zdd下的所有文件压缩并放入当前目录下名为zdd。-r表示递归处理文件夹中的文件,9表示最大压缩率。

unzip 解压缩
unzip -d ~/zdd zdd.zip 将zdd.zip解压到当前目录下的zdd目录中,-d表示指定解压目录。

gzip 压缩/解压缩
gzip -d error_log.gz 将error_log.gz解压缩,-d表示解压缩,解压缩后error_log.gz将不复存在。

其他
在终端上翻页(Putty窗口也可以)
向上翻页    Shift+PageUp
向下翻页    Shift+PageDown

1   ls: 类似于dos下的dir命令

ls最常用的参数有三个: -a -l -F。
ls –a
Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。
ls –l
该参数显示更详细的文件信息。
ls –F
使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。

2cd: 用于切换用户当前工作目录

cd aaa 进入aaa目录
cd    命令后不指定目录,会切换到当前用户的home 目录
cd ~   作用同cd后不指定目录,切换到当前用户的home 目录
cd -   命令后跟一个减号,则会退回到切换前的目录
cd ..   返回到当前目录下的上一级目录

3pwd:用于显示用户当前工作目录

4mkdir  rmdir

midir:创建目录     rmdir:删除目录
两个命令都支持-p参数,对于mkdir命令若指定路径的父目录不存在则一并创建,对于rmdir命令则删除指定路径的所有层次目录,如果文件夹里有内容,则不能用rmdir命令
如下:
mkdir -p 1/2/3

5cp:复制命令

复制一个文件到另一目录:cp 1.txt ../test2

复制一个文件到本目录并改名:cp 1.txt 2.txt

复制一个文件夹a并改名为b:cp -r a b

6、mv:移动命令

将一个文件移动到另一个目录:mv 1.txt ../test1

将一个文件在本目录改名:mv 1.txt 2.txt

将一个文件一定到另一个目录并改名:mv 1.txt ../test1/2.txt

7、rm命令

rm命令用于删除文件,与dos下的del/erase命令相似,rm命令常用的参数有三个:-i,-r,-f。

–i :系统在删除文件之前会先询问确认,用户回车之后,文件才会真的被删除。需要注意,linux下删除的文件是不能恢复的,删除之前一定要谨慎确认。

–r:该参数支持目录删除,功能和rmdir命令相似。

–f:和-i参数相反,-f表示强制删除

8、du、df命令

du命令可以显示目前的目录所占用的磁盘空间,df命令可以显示目前磁盘剩余空间。

如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了目录的话,就是这个目录在磁盘上的使用情况。

du -hs 指定目录  查看指定目录的总大小

du -hs ./* 查看当前目录下的所有文件夹和文件的大小

这两个命令都支持-k,-m和-h参数,-k和-m类似,都表示显示单位,一个是k字节一个是兆字节,-h则表示human-readable,即友好可读的显示方式。

9cat命令

cat命令的功能是显示或连结一般的ascii文本文件。cat是concatenate的简写,类似于dos下面的type命令。用法如下:
cat file1 显示file1文件内容
cat file1 file2 依次显示file1,file2的内容
cat file1 file2 > file3 把file1, file2的内容结合起来,再“重定向(>)”到file3文件中。

">"是右重定向符,表示将左边命令结果当成右边命令的输入,注意:如果右侧文件是一个已存在文件,其原有内容将会被清空,而变成左侧命令输出内容。如果希望以追加方式写入,请改用">>"重定向符。

如果">"左边没有指定文件,如: cat >file1,将会等用户输入,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会将用户的输入内容写入file1。

10echo命令

echo命令的使用频率不少于ls和cat,尤其是在shell脚本编写中。
语法:echo [-ne][字符串]
功能:echo会将输入的字符串送往标准输出,输出的字符串间以空白字符隔开, 并在最后加上换行符。
参数:
-n 显示字串时在最后自动换行
-e 支持以下格式的转义字符, -E 不支持以下格式的转义字符
/a 发出警告声;
/b 删除前一个字符;
/c 最后不加上换行符号;
/f 换行但光标仍旧停留在原来的位置;
/n 换行且光标移至行首;
/r 光标移至行首,但不换行;
/t 插入tab;
/v 与/f相同;
// 插入/字符;
/nnn 插入nnn(八进制)所代表的ASCII字符;
注意事项:
在Linux使用的bash下,单引号’’和双引号是有区别的,单引号忽略所有的转义,双引号不会忽略以下特殊字符:
Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory mark(!)
示例如下:
:~> echo "`TEST`"
-bash: TEST: command not found
:~> echo '`TEST`'
`TEST`
:~> echo "$TEST"
:~> echo '$TEST'
$TEST
:~> echo "//TEST"
/TEST
:~> echo '//TEST'
//TEST
:~> echo "Hello!"
echo "Hello"
Hello
:~> echo 'Hello!'
Hello!

11morelessclear

more,less命令
   这两个命令用于查看文件,如果一个文件太长,显示内容超出一个屏幕,用cat命令只能看到最后的内容,用more和less两个命令可以分页查看。more指令可以使超过一页的文件内容分页暂停显示,用户按键后才继续显示下一页。而less除了有more的功能以外,还可以用方向键往上或往下的滚动文件,更方便浏览阅读。
less的常用动作命令:
回车键 向下移动一行;
y 向上移动一行;
空格键 向下滚动一屏;
b 向上滚动一屏;
d 向下滚动半屏;
h less的帮助;
u 向上洋动半屏;
w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;
g 跳到第一行;
G 跳到最后一行;
p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
v 调用vi编辑器;
q 退出less
!的命令 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;
clear命令
clear命令是用来清除当前屏幕显示的,不需任何参数,和dos下的cls命令功能相同。

12headtail

head和tail命令都用于查看文本文件,区别在于: head显示文件的头n行,tail显示文件的尾n行,缺省情况n都为10行。可以通过-n方式指定行数,如:

   head -100 file和tail -100 file分别表示显示文件头100行和尾100行内容。

tail -f命令可以实时查看文件新增内容

13wc命令

该命令用于统计指定文件中的字节数、字数、行数。该命令各选项含义如下:
-l 统计行数
-w 统计字数
-c 统计字节数
这些选项可以组合使用。输出列的顺序和数目不受选项的顺序和数目的影响。总是按下述顺序显示并且每项最多一列。
行数、字数、字节数、文件名
如果命令行中没有文件名,则输出中不出现文件名。
例如:
:~> wc 1.txt 2.txt
  460  1679 16353 1.txt
  300  1095 10665 2.txt
  760  2774 27018 总用量
:~> wc -l 1.txt
460 1.txt
缺省参数为-lcw,即wc file1 file2命令的执行结果与上面一样。

14grep 命令

grep是(global search regular expression(RE) and print out the line的缩写,用于从文件面搜索包含指定模式的行打印出来,
它是一种强大的文本搜索工具,支持使用正则表达式搜索文本。grep的工作方式是这样的,它在一个多个文件中搜索字符串模板。如果
模板包括空格,则必须被””引用,模板后的所有字符串被看作文件名。搜索结果送到屏幕,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1
如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

示例:
$ ls -l | grep '^a'
通过管道过滤ls -l输出的内容,只显示以a开头的行。
$ grep 'test' d*
显示所有以d开头的文件中包含test的行。
$ grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep '[a-z]/{5/}' aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep 'w/(es/)t.*/1' aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(/1),找到就显示
该行。如果用egrep或grep -E,就不用"/"号进行转义,直接写成'w(es)t.*/1'就可以了。

15manlogout命令

man命令

man是manual的缩写,相当于Unix/Linux的联机Help,每个系统命令和调用都有非常详细的说明,绝大多数都是英文。如:man ls即是查看ls命令的使用说明,一般还有另一种方法用来查看帮助,如:ls –help,这种方式绝大多数命令都支持。

logout命令

该命令用于退出系统,与login命令对应。

16、管道和xargs
管道 | :  

利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

注意:管道左边命令的输入作为管道右边命令的输入(命令的输入是一定的),不是参数,并不是所有命令都支持管道

例子:ls | grep a  查看当前目录下名称包含a的文件或文件夹

xargs

大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);你能处理输出,使其仅显示文件名,目前你希望将这些名称传递给 ls -l命令以查看时间戳记。xargs 命令就是用来完成此项工作的。
注意:find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去

例子:

1、在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

$ find / -name "core" -print | xargs echo "" >/tmp/core.log

2、当一个目录下文件太多时,直接用rm * 命令会包参数过长,用如下方法可以全部删除

$ls | xargs rm

17basename  dirname

basename用于查看文件不含路径的名字,dirname则用于查看文件路径,使用效果我们测试一下便知:

> basename /home/shc/test.txt
test.txt
> dirname  /home/shc/test.txt
/home/shc

18.date 和 cal

date命令,不带参数显示当前日期/时间。 设置时间日期/时间(需要超级权限)        
设置时间命令:sudo date -s "20200203 06:05" 
格式化输出:date "+%Y-%m-%d %H:%M:%S" (年月日时分秒)

https://blog.csdn.net/u010565545/article/details/104150414

发布了24 篇原创文章 · 获赞 25 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u010565545/article/details/104150587