Linux简单命令操作(上)

1.Linux常见命令

  1. 查看当前所在的工作目录

    pwd

  2. 查看当前系统的时间

    date : Thu May 3 01:37:01 CST 2018

    date +%Y-%m-%d : 2018-05-03

    date +”%Y-%m-%d %H:%M:%S” : 2018-05-03 01:42:40

    除此之外还支持时间计算

    date –date=”-1 day” :Wed May 2 01:43:57 CST 2018

  3. 查看有谁在线(哪些人登陆到了服务器)

    who 查看当前在线
    last 查看最近的登陆历史记录

2. 文件系统操作

  1. 切换目录

    cd /home 在主目录下查找home

    cd .. 返回上一层目录

    cd ~ 返回登陆用户的主目录

    cd - 返回进入此目录之前所在的目录;

  2. 创建文件夹

    mkdir aaa 这是相对路径的写法
    mkdir -p aaa/bbb/ccc 循环创建文件夹(如果文件夹不存在)
    mkdir /data 这是绝对路径的写法

  3. 删除文件夹

    rmdir 可以删除空目录(非空目录删除失败)
    rm -r aaa 可以把aaa整个文件夹及其中的所有子节点全部删除(询问是否需要删除)
    rm -rf aaa 强制删除aaa

  4. 修改文件夹名称

    mv aaa angelababy

  5. 创建文件

    touch somefile.1 创建一个空文件
    echo “i miss you,my baby” > somefile.2 利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中,会覆盖原文件内容
    echo “huangxiaoming ,gun dan” >> somefile.2 将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容

  6. 拷贝文件

    cat somefile.1 > somefile.2

    cp somefile.1 ./somefile.2

3. vi/vim文本编辑器使用

最基本用法
vi somefile.4 使用vi编辑器打开somefile.4文件
1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容
2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容
3、编辑完成之后,按Esc键退出编辑模式,回到一般模式;
4、再按:,进入“底行命令模式”,输入wq命令,回车即可

常用快捷键
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 删除行,如果 5dd ,则一次性删除光标后的5行
yy 复制当前行, 复制多行 p 粘贴
v 进入字符选择模式,选择完成后,按y复制,按p粘贴
ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴

查找并替换(在底行命令模式中输入)
:%s/sad/8888888888 效果:查找文件中所有sad,替换为8888888888
/you 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)w

4. 查找命令、文件、特定字符串的字符串

  1. 查找可执行的命令:

    which ls

  2. 查找可执行的命令和帮助的位置:

    whereis ls

  3. 从某个文件夹开始查找

    find / -name “hadooop*”
    find / -name “hadooop*” -ls 自带文件格式的查看方式


    查找并删除
    find / -name "hadooop*" -ok rm {} \;
    find / -name "hadooop*" -exec rm {} \;

    查找用户为hadoop的文件
    find /usr -user hadoop -ls

    查找用户为hadoop并且(-a)拥有组为root的文件
    find /usr -user hadoop -a -group root -ls

    查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件
    find /usr -user hadoop -o -group root -a -type d

    查找权限为777的文件
    find / -perm -777 -type d -ls
****************************************************
  1. 显示命令历史

    history

  2. 查看带有某个字符串的文件所在的行

    cat /etc/passwd 查看文件内容

    grep hadoop /etc/password 查找文件/etc/password内容附带hadoop的那一行

  3. 查看不包含某个字符串的文件所在的行

    grep -v hadoop /etc/password

5. 打包压缩

  1. gzip压缩

    gzip a.txt

  2. 解压

    gzip -d a.txt.gz

  3. 将当前目录的文件打包

    tar -cvf bak.tar . // -c 创建一个打包文件 -v 显示打包进度 -f 指定文件名称
    将/etc/password追加文件到bak.tar中(r)
    tar -rvf bak.tar /etc/password // -r 追进内容进行 -f指定的文件中

  4. 解压

    tar -xvf bak.tar

  5. 打包并压缩gzip

    tar -zcvf a.tar.gz … // -z 压缩 其他参数同上 最后加上需要打包的文件路径

  6. 解压缩

    tar -zxvf a.tar.gz // -x 解压
    解压到/usr/下
    tar -zxvf a.tar.gz -C /us

6. 查看文件内容

  1. more somefile 翻页查看文件

    空格-> 查看下一页 b-> 查看上一页 ctrl+c / q -> 退出

  2. less somefile 翻页查看文件 与上面的效果一样 可以使用上下方向键查看上下一行的文本

    gg 跳到文件首行

    G 跳到文件末尾

    q 退出

  3. tail 查看文件末尾

    tail -10 somefile 查看somefile文件的尾部10行

    tail +10 somefile 从文件第10行查看somefile,直到尾部

    tail -f somefile 跟踪文件唯一的inode号,就算文件改名后,还是跟踪原来这个 inode表示的文件。

    tail -F somefile 按照文件名来跟踪

  4. head 查看文件头部

    head -10 install.log 查看文件前10行数据。

7. 文件的权限

7.1 Linux文件权限解读

drwxr-xr-x

  • 第一位:d表示文件夹 - 表示普通文件 l表示链接
  • 权限:r表示可读 w表示可写 x表示可执行。
  • 权限用二进制表示 111 101 101 ==> 775

第一组rwx : 表示这个文件的拥有者对该文件的权限,可读可写可执行。

第二组r - x : 表示创建该文件用户所在组用户对该文件的权限,可读不可写可执行。

第三组r - x : 表示该文件的其他用户(除了上面2个类型)对该文件的权限,可读不可写可执行。

7.2 修改文件的权限

创建a.txt和b.txt文件,将他们设为其拥有者和所在组可写入,但其他以外的人则不可写入:
chmod ug+w,o-w a.txt b.txt

创建c.txt文件所有人都可以写和执行
chmod a=wx c.txt 或chmod 666 c.txt

将/wolfcode目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r /wolfcode

将/wolfcode目录下的所有文件与子目录的拥有者设为root,用户拥有组为users
chown -R root:users /wolfcode

7.3 细化权限

对于普通用户来说:

​ r :对文件来说,是可读的内容,对于文件夹来说,决定了能否 ls。

​ w:对文件来说,是可修改的文件内容,对于文件夹来说,是可以创建/删除子文件。

​ x :对文件来说,是能否运行这个文件,对于文件夹来说,是能否cd到这个目录。

8.基本的用户管理&sudo权限

8.1 用户管理

当需要为linux添加一个用户的时候,使用 useradd Xxx

为用户设置新的密码 使用passwd Xxx

删除用户的命令是:userdel -r Xxx //-r表示将用户及用户的主目录删掉

8.2 sudo权限

使用Linux系统时,经常会被要求使用超级权限,如果拥有root账户那还好,可以直接进行任何操作,但是这并不一个好方法,也不推荐使用。root的权限太过大了,慎用!
对于普通用户来说,一个简单的sudo即可解决大部分问题。然而当我们在使用sudo时(尤其对于一个新的用户第一次使用sudo),会发现终端反馈了XXX is not in the sudoers file. This incident will be reported.(XXX是用户名称)。以下为解决办法:

  1. 进入超级用户模式。也就是输入”su root”,系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root进入修改)
  2. 添加文件的写权限。也就是输入命令”chmod u+w /etc/sudoers”。
  3. 编辑/etc/sudoers文件。也就是输入命令”vim /etc/sudoers”,进入编辑模式,找到这一 行:”root ALL=(ALL) ALL”(会用vim编辑器的可以使用“/root ALL=(ALL)ALL”定位)在起下面添加”xxx ALL=(ALL) ALL”(这里的xxx是你的用户名),然后保存退出。
  4. 撤销文件的写权限。也就是输入命令”chmod u-w /etc/sudoers”。

9.挂载存储设备

假如我们去买一个软件,该软件可以是一个光盘,我们通过挂载光盘来读取光盘的内容;也可以是一个镜像文件,通过挂载镜像文件来读取里面的内容。接下来介绍如何挂载这2种不同类型的存储设备:

9.1 挂载光驱

这里写图片描述

这里写图片描述
我们也可以通过代码的形式来挂载:

  1. 创建需要挂载的目录:

    mkdir /mnt/cdroom

  2. 找到光驱的句柄:

    cd /dev

    ll

  3. 挂载光驱,iso9660是文件系统的规范/标准。

    mount -t iso9660 -o ro /dev/cdrom /mnt/cdroom

9.2 挂载镜像文件

有的时候设备没有光驱 或者买的软件没有只有镜像文件,就需要直接挂载镜像文件,执行的操作如下:

  1. 为当前用户创建存储iso文件的目录 .

  2. 选中CRT的某个登陆用户的tab 模块。右键Connect SFTP Session 打开SFTP窗口。

  3. cd /home/Xxx/cdrom

  4. put put -r “/Users/lean/Downloads/CentOS-6.8-x86_64-bin-DVD1.iso”

  5. 返回用户的命令窗口,挂载镜像文件。

    sudo mount -t iso9660 -o loop CentOS-6.8-x86_64-bin-DVD1.iso /mnt/cdroom

9.3 卸载设备

不管是挂载光驱还是镜像文件,实际上都是对原有文件的映射,可以通过卸载的形式来取消映射,命令如下:

umount /mnt/cdroom

10.统计文件大小

[root@mini1 mnt]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_mini1-lv_root
                       18G  3.5G   13G  22% /
tmpfs                 491M  224K  491M   1% /dev/shm
/dev/sda1             477M   35M  418M   8% /boot
/dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.8_Final
  • df -h //disk free 获取当前系统剩余空间 -h指让空间附带了单位,可以更加清楚看出变化。
  • /dev/mapper/vg_mini1-lv_root 系统分区,采用逻辑卷磁盘分区技术,挂载到系统根目录。
  • /dev/sda1 系统分区 挂载到/boot下。
  • /dev/sr0 磁盘光驱挂载到 /media/CentOS_6.8_Final
  • tmpfs 临时文件系统,是一种基于内存的文件系统 挂载到/dev/shm
[root@mini1 /]# du -sh *
4.0K    1.txt
7.7M    bin
32M     boot
432K    dev
40M     etc
792K    home
201M    lib
28M     lib64
...
  • du -sh * //disk usage -s 统计 -h容量单位 * 表示当前目录的所有文件
  • 该命令旨在获取当前目录所有文件/文件夹的大小

11.系统启动/运行级别管理

linux启动/运行的时候,有7个级别, 每个级别都有不同的运行模式,级别的定义在/etc/inittab文件中:

vi /etc/inittab

# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
  • 运行级别2:多用户状态(没有NFS)
  • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
  • 运行级别4:系统未使用,保留
  • 运行级别5:X11控制台,登陆后进入图形GUI模式
  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

我们可以以 init X 指定以哪种级别启动系统。

12. 服务管理

linux服务的管理与windows差不多,无非就是启动服务,关闭服务,查看服务的状态,甚至还可以指定开机的时候对服务的预处理。

12.1 服务的状态操作

service –status-all : 查看系统所有服务的进程状态

[root@mini1 init.d]# service --status-all
abrt-ccpp hook is installed
abrtd (pid  1858) is running...
abrt-dump-oops is stopped
acpid (pid  1581) is running...
atd (pid  1885) is running...
auditd (pid  1366) is running...
automount (pid  1668) is running...
...

service –status-all | grep “ssh” : 搜索系统是否存在某个服务 | 表示管道,后者是在前者的基础上继续搜索的。

[root@mini1 init.d]# service --status-all | grep "ssh"
dnsdomainname: Host name lookup failure
grep: /proc/fs/nfsd/portlist: No such file or directory
openssh-daemon (pid  1715) is running...

service sshd status :查看指定服务的状态

[root@mini1 init.d]# service sshd status
openssh-daemon (pid  1715) is running...

除了查看状态,我们还能够对服务进程进行启动,关闭等。如下启动了静态网页服务,停止了防火墙的功能:

service httpd start
service iptables stop
//检验:http://192.168.7.100/

service iptables restart  //重启服务

12.2 服务的开机预操作

服务的预操作主要与系统运行级别有关,为了能够让服务实现预操作,我们可以设置如下命令:

[root@mini1 ~]# chkconfig httpd off
[root@mini1 ~]# chkconfig --list | grep httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@mini1 ~]# chkconfig httpd on
[root@mini1 ~]# chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

当然我们可以指定服务在哪个系统运行级别下的预操作,如下:

[root@mini1 ~]# chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@mini1 ~]# chkconfig --level 35 httpd off 
[root@mini1 ~]# chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:off   4:on    5:off   6:off

13. 进程管理

进程的显示:

[root@mini1 ~]# ps -ef 
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 11:13 ?        00:00:02 /sbin/init
root          2      0  0 11:13 ?        00:00:00 [kthreadd]
root          3      2  0 11:13 ?        00:00:00 [migration/0]
root          4      2  0 11:13 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 11:13 ?        00:00:00 [stopper/0]
root          6      2  0 11:13 ?        00:00:00 [watchdog/0]
...

也可以查看某一个服务进程,如下1715是当前进程号,而1是父进程:

[root@mini1 ~]# ps -ef | grep sshd
root       1715      1  0 11:13 ?        00:00:00 /usr/sbin/sshd
root       2873   1715  0 11:18 ?        00:00:00 sshd: hadoop [priv]
hadoop     2877   2873  0 11:18 ?        00:01:58 sshd: hadoop@pts/2
root      10945   1715  0 16:21 ?        00:00:00 sshd: root@pts/1 
root      11027  10949  0 16:43 pts/1    00:00:00 grep sshd

杀死某个进程,-9表示强制杀掉 不带任何条件:

[root@mini1 ~]# kill -9 1715

猜你喜欢

转载自blog.csdn.net/qq285016127/article/details/78237951