zoukankan      html  css  js  c++  java
  • Linux常用命令



    • 查看系统当前登录用户状态
    • w: 可以看到登录用户的信息与cpu占用率。
    • last:查看最近登录的用户信息。

    • useradd与adduser添加用户
      注意: 这两条命令是一样的,参数也是一样的,adduser是useradd的一个perl脚本,作用是提供交人机互式操作。

    • 参数说明

    • -c:加上备注文字,备注文字保存在passwd的备注栏中。

    • -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>

    • -D:变更预设值。

    • -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。

    • -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.

    • -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。

    • -G:指定用户所属的附加群组。

    • -m:自动建立用户的登入目录。

    • -M:不要自动建立用户的登入目录。

    • -n:取消建立以用户名称为名的群组。

    • -r:建立系统账号。

    • -s:指定用户登入后所使用的shell。默认值为/bin/bash。

    • -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。


    例:

    • useradd admin -u 512 -d /home/em -g root -c "测试" -e 14/10/2018 -n: 创建一个名为admin的用户,设置用户id为512,替换默认/home/admin目录为/home/em,并且添加此用户为root组用户,添加备注,设置账号失效日期,取消建立以用户名称为名的群组。 如图1-11所示
    • passwd admin:给admin设置密码为123456。
    • ssh登录新用户: 如图1-12
    • groups: 查看当前用户用户组 如图1-13所示
    • 进入根目录下etc目录中,查看passwd文件,里面包含了用户信息: 如图1-14所示
    admin:x:512:0:测试:/home/em:/bin/bash
    

    说明:从左到右数据依此为:用户名:密码:用户id:用户组id:备注:用户主目录:shell命令主目录。

    • 删除用户userdel
    • userdel username: 删除用户
    • userdel -f username: 删除用户账号与相关的文件

    • 切换用户
    • su username:需要输入切换用户的密码。

    • Part Two 文件操作相关

    • 查看文件
    • ls命令及参数
    • a : 显示所有文件及目录 (包括以.开头的隐藏文件或文件夹)
    • -l : 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
    • -r : 将文件以相反次序显示(原定依英文字母次序)
    • -t : 将文件依建立时间之先后次序列出
    • -A : 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
    • -F : 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
    • -R : 若目录下有文件,则以下之文件亦皆依序列出(递归文件夹显示所有文件)

    • 查看文件内容
    • cat 文件名 :显示文件内容。
    • cat -n 文件名 : 显示行号。
    • cat 文件 | head -3: 查看文件前三行。
    • cat 文件1 文件2 :将两个文件连接起来输出显示。
    • head -3 文件: 查看文件前三行。
    • tail -5 文件 : 查看文件后5行。
    • less 文件 : 分页查看文件,less分页内容少。
    • more 文件: 分页查看文件,more分页内容多。

    • 创建空文件
    • touch : touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。显示时间记录可用ls -l查看文件信息。
    • touch a 文件 : 改变档案的读取时间记录。
    • touch m 文件 : 改变档案的修改时间记录。
    • 创建空文件夹
    • mkdir folder : 创建名为folder的空文件夹。
    • mkdir -p a/b : 创建二级目录,a文件夹下有b文件夹。

    • 删除文件与文件夹
    • rm:删除文件与文件夹。
    • -i: 删除前逐一询问确认。
    • -f: 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
    • -r:将目录及以下之档案亦逐一删除。
    • rm -f 文件:删除文件且以yes跳过询问操作。
    • rm -rf 文件夹:删除文件夹及文件夹内的文件。

    • 复制文件
    • cp复制
    • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
    • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
    • -f:覆盖已经存在的目标文件而不给出提示。
    • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
    • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
    • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
    • -l:不复制文件,只是生成链接文件。
    • cp 文件 路径/新文件名 :复制文件到新路径并重命名。例:cp a.py code/aa.py
    • cp 文件 路径 :复制文件到其他路径,不更改文件名字。例: cp b.py code
    • cp 文件夹 -r 路径 :复制文件夹所有内容到新的路径,不会复制文件夹本身。
    • cp 文件夹 -r 路径/新文件夹名字 : 复制文件夹内容到路径下的新文件夹中。
    • mv为文件或目录改名、或将文件或目录移入其它位置。
    • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件。
    • -f: 在mv操作要覆盖某已有的目标文件时不给任何指示。
    • mv 文件 文件 :将文件1改名为文件2。
    • mv 文件 文件夹:将文件移动到文件夹。
    • mv 文件夹 文件夹:目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名。

    • 更改文件权限
    • chmod
    • u: 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    • +: 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    • r: 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
    • -c : 若该文件权限确实已经更改,才显示其更改动作
    • -f : 若该文件权限无法被更改也不要显示错误讯息
    • -v : 显示权限变更的详细资料
    • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
    drwxr-xr-x 2 root root 4096 Oct 13 15:49 abc
    -rwxr--r-- 1 root root 1158 Oct 10 15:04 a.py
    -rwxr--r-- 1 root root  440 Oct 10 15:07 b.py
    -rw-r--r-- 1 root root   56 Oct 13 15:03 code
    

    说明:d表示文件夹,-rwxr--r-- 意思是,当前用户可执行操作为rwx,可读写执行,同组用户可对该文件执行r--读操作,其他用户可对改文件执行r--读操作。

    • 新建一个c.py文件
      用 ll 命令查看c.py的权限为 -rwxr--r--
      注: ll = ls -l
    -rw-r--r--  1 root root        0 Oct 13 16:02 c.py
    
    • chmod修改权限方法一
    • chmod u+x c.py:修改c.py文件为当前用户的可执行文件。
    -rwxr--r--  1 root root        0 Oct 13 16:02 c.py
    
    • 二进制修改权限
    • chmod 754 a.py:修改c.py为当前用户和同组可执行文件。
    -rwxr-xr--  1 root root        0 Oct 13 16:02 c.py
    

    说明:7代表rwx,5代表r-x,4代表r--,如果将三位权限看成三位二进制,为0就是没有权限,为1就是有权限,那rwx就是二进制的111,r-x就是二进制的101,r--就是二进制的100,所以权限754就是给c.py添加当前用户和同组用户的可执行文件。

    • chown 更改文件的所有者
    • user : 新的文件拥有者的使用者 ID
    • group: 新的文件拥有者的使用者组(group)
    • chown user 文件:改变文件的所有者
    • chown root:user 文件:将文件拥有着设置为root组的用户user。
    • chown -R root:admin 文件夹:将文件夹所有文件所有者设置为root下admin用户。

    • Part Three 其他Linux命令

    • clear:清屏。
    • logout/exit:退出登录。
    • cd:切换目录。cd ~ 回到根目录
    • pwd:查看当前工作目录。
    • man 命令:获得某个命令的帮助文档。
    • 命令 --help:获得命令的参数说明。
    • wget 网址:下载网址的内容。
    • wall 内容:给所有线上设置mesg y的用户发消息,设置为mesg n的用户不会收到,注意root用户发的消息不能拒绝。wall 加 某个用户就是对某个用户发消息,不加参数就是给所有人发。
    • history:查看所有历史命令。
    • history -c :清除历史命令。
    • history -d 命令编号:删除某条历史命令。
    • !+历史命令编号:执行某条命令。
    • date:查看当前时间。
    • cal:查看日历。
    • cal 12 2018:查看某年某月的日历。
    • cal 2018:查看某年日历。
    • alias 别名="命令":给命令起别名,可以通过别名来执行命令。例:alias ca="cal"
    • unalias 别名: 撤销别名。
    • wc 文件:统计文件内容行数,字节数,单词个数。
    • wc -l 文件:只看文件内容行数。
    • sort a.txt | uniq |wc -l:排序文件去重再查看行数。sort排序,uniq去重。
    • diff 文件1 文件2:比较两个文件的不同的地方。
    • gzip/gunzip:压缩/解压缩文件。
    • tar -xvf:解归档。
    • ln -s /a/b/c/d.txt haha:创建一个haha的软链接可以直接访问d.txt文件,如果不加 -s 就是硬链接,相当于文件的引用,只要引用数不为0 ,文件就会一直存在。
    • echo输出语句
    • echo 内容 > 文件 :再次写入会覆盖上次内容。
    • echo 内容 >> 文件 : 追加写入。
    • echo 内容 > 文件1 2>文件2 :错误输出重定向,正确的结果输入文件1,出错就输出文件2。
    a=10
    b=3
    echo $a
    10
    echo $[a+b]
    13
    

    • Part Four 进程

    • ps
    • -w: 显示加宽可以显示较多的资讯
    • -au: 显示较详细的资讯
    • rss: 占用的记忆体大小
    • r: 正在执行中
    • s: 静止状态
    • t: 暂停执行
    • n: 低优先序的行程
    • ps -ef:显示所有的进程
    • 关闭进程
    • kill 进程编号:关闭进程
    • kill -9 进程编号:强制杀死某个进程
    • ps -ef | grep httpd | grep -v grep---进程不包含搜索操作本身这条进程

    • top
    • top:实时显示进程的状态

    中止运行中的进程ctrl+c
    暂停进程并置于后台-ctrl+z

    • redis-server &:服务名后面加&放在后台运行。
    • jobs ---查看后台进程
    • bg %编号 --- 让后台暂停的进程继续再后台运行,编号为后台进程编号
    • fg %编号 --- 让后台进程再前台运行

    • netstat
    • netstat -nap | grep 80 :查某个端口被谁占用。
      参考

    • Part Five Linux启动过程与目录说明

    • 启动过程

    • 内核的引导。

    • 运行 init。

    • 系统初始化。

    • 建立终端 。

    • 用户登录系统。

    • Linux系统有7个运行级别(runlevel)

    • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

    • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

    • 运行级别2:多用户状态(没有NFS)

    • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

    • 运行级别4:系统未使用,保留

    • 运行级别5:X11控制台,登陆后进入图形GUI模式

    • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

    • shutdown: 关机

    • shutdown -c:取消关机

    • init 0 :关机且不发送通知

    • init 6:重启

    • rebot:重启


    • linux目录说明

    • /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。

    • /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    • /dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

    • /etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

    • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

    • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

    • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

    • /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
      这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    • /root:该目录为系统管理员,也称作超级权限者的用户主目录。

    • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    • /selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

    • /srv:该目录存放一些服务启动之后需要提取的数据。

    • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
      该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

    • /tmp:这个目录是用来存放一些临时文件的。

    • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

    • /usr/bin:系统用户使用的应用程序。

    • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

    • /usr/src:内核源代码默认的放置目录。

    • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。


    • Part Six 进程管道通信与短路运算

    • 管道通信语法
    • 命令1 | 命令2:命令1的输出作为命令2的输入。
    • ls | grep codes:查询codes目录是否存在。
    • 短路运算
    • 命令1 || 命令2 || 命令3:从左至右依此执行,谁正确就执行谁,后面不再执行。
    • 命令1 && 命令2 && 命令3 :从左到右,依此执行。

    • Part Seven linux安装软件

    • yum安装
    • yum search git ---查找软件
    • yum install git --- 安装软件 yun -y install git ---跳过yes步骤,以yes来安装
    • yum remove git --- 卸载软件
    • yum info git --- 查看软件信息
    • yum update 软件名字 更新软件
    • yum update ----- 更新所有的软件
    • yum list installed --- 列出已经安装的文件

    • code安装以python3环境为准
    • step 1:下载源代码 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
    • step 2:解压缩 gunzip Python-3.7.0.tgz
    • step 3:解归档 tar -xvf Python-3.7.0.tar
    • step 4:安装底层依赖库 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
    • step 5:进到解归档后的文件夹路径 cd Python-3.7.0
    • step 6:执行可执行文件./configure --prefix=/usr/local/python37 --enable-optimizations
    • step 7:构建安装 make && make install 源代码构建安装
    • step 8:配置PATH环境变量 export PATH=$PATH:/usr/local/python37/bin
    • step 9:注册软链接(符号链接) ln -s /usr/local/python37/bin/python/3 /usr/bin/python3

    • Part Eight web服务器配置与防火墙

    • nginx

    先yum安装nginx服务器,命令yum install nginx

    • systemctl start 服务名字 --- 启动服务

    • systemctl stop 服务名字 停止服务 ----

    • systemctl restart 服务名字 重复服务 ----

    • systemctl status 服务名字 查看信息 ----

    • systemctl enable 服务名字 ---- 开机自启

    • systemctl disable 服务名字---- 关闭自启

    • journalctl -xe ---查看启动服务失败的错误原因

    • systemctl status 服务.service --- 查看失败错误原因

    • httpd---Apache

    yum安装httpd服务器,yum install nginx

    • 注意 : 两个服务器默认使用的是80端口,要想同时使用必须修改其中一个端口号。修改方法,进入/etc目录下找到安装文件夹/nginx,修改nginx.conf文件中listen。参考

    • 防火墙

    阿里云服务器自带防火墙,我们可以不使用它而自己配置,配之前需要关闭阿里云的防火墙。关闭阿里云的防火墙-----打开安全组规则,设置端口为1-65535,打开全部端口。

    Linux自带防火墙firewalld

    • 配置firewalld防火墙
    • systemctl start firewalld : 启动防火墙服务
    • firewalld-cmd --add-service = 服务 : ---添加服务 配置防火墙---
    • firewalld-cmd --add-port=80/tcp :---打开端口
    • firewalld-cmd --permanent --add-port=80/tcp: ---永久打开端口
    • firewalld-cmd --query-port=443/tcp: ---查询端口是否打开
    • firewalld-cmd --query-service=ssh :---查询是否有某个服务
    • firewalld-cmd --remove-port=443/tcp :---删除端口

    firewalld默认打开22端口用于ssh连接,所以要用什么服务,就开一个端口,并且设置这个服务默认使用端口为开的端口。


    • Part Nine vim编辑器

    • 使用方法
    • vim 文件:进入命令模式,命令模式下按shift + 两次zshift + 冒号进入末行模式,在末行模式下输入wq保存退出,q退出,wq!是强制保存退出,按i进入编辑模式,按Esc退出编辑模式。
    • 设置编辑模式下的格式
    • vim .vimrc.vimrc文件是vim的配置文件
    set nu --- 设置行号显示
    syntax on --- 设置语法高亮显示
    set tabstop =4 --- 设置一个tab为4个空格
    map <F2> gg99999dd --- 设置功能键,按F2删除所有内容
    inoremap _main if __name__ == '__main__': --- 设置快捷键,输入_main快捷输入
    inoremap _#  #!/usr/bin/python3 --- 设置快捷键,输入_#快捷输入#!/usr/bin/python3 
    
    • 命令模式下

    • 0 :--光标移动到当前行最开始

    • $ :--光标移动到当前行最末尾

    • h : --光标向左移动

    • l: --光标向右移动

    • k :--光标向上移动

    • ``j```: --光标向下移动

    • gg --光标移到最开始

    • G: --光标移动到最末尾

    • nG :--光标移动到第几行 == ngg

    • yy: --复制光标当前行

    • nyy :--复制光标当前行到下面n行

    • p: --粘贴

    • dd :--删除光标当前行

    • ndd: --删除光标下n行包含当前光标行

    • ctrl+e: --下翻一行

    • ctrl+y :--上翻一行

    • ctrl+f: --向前翻页

    • ctrl+b :--向后翻页

    • u :--撤销操所

    • ctrl+r: --恢复操作

    • ctrl+x ctrl+o :--代码提示

    • /word :-- 查找当前光标下内容中word这个词

    • ?word: --查找当前光标上内容中word这个词

    • vim -d 文件1 文件2 --比较两个文件的区别

    • 末行模式下

    • :n1,n2s/world1/world2/gice --- n1行到n2行进行替换

    • :1,$s/world1/world2/gice --全文替换world1为world2
      --g:全局模式,正则表达式的全局匹配 i忽略大小写,c每次替换都要确认 ,-e允许错误,静默处理,忽略错误

    • :w : --保存

    • :q : --退出

    • :set nu: --设置行号

    • :set ts =4: --设置tab为4个空格

    • :set autoindent :--自动缩进

    如果vim打开了多个文件,可以在末行模式下通过:b<编号>切换到其他文件 :ls查看打开文件编号

    • 打开多个文件:
    • :vs anotherfile 垂直拆分两个窗户显示不同文件,两次ctrl+w 切换光标到另一个文件
    • :sp anotherfile 水平拆分
    • :wqa: --退出全部窗口
    • :map <F1> gg999999dd ---映射快捷键 删除所有(命令模式下的映射)
    • :inoremap _main if __name__ == '__main__'::---输入模式下的映射 nore---非递归 避免_main死循环

    改配置

    • vim .vimrc --- 必须叫.vimrc这个名字

    • Part Else 远程连接与拷贝

    • 远程连接

    • ssh root@112.74.164.93:远程连接用户名为root,主机为112.74.164.93的服务器。

    • 远程拷贝

    • scp 文件1 root@112.74.164.93:/root/a.py --将文件1拷贝到ip93的root目录下并且名为a.py

    • scp root@ip1+绝对路径 root@ip2+绝对路径 ---将一台机器的文件 传到另一个机器

    • sftp root@112.74.164.93 ---ftp远程下载


    • python配置

    python 代码加 #!/usr/bin/python3 然后再修改.py文件为可执行权限,再./文件执行python文件,如./a.py即可执行,但前提是将python的安装文件中的执行程序软连接到/usr/bin/python3目录下。

    • Linux向windows互输文件

    xshll 与 xftp的传输,点击圈的按钮。

    image.png

    想要不可替代,必须与众不同
  • 相关阅读:
    拓扑排序笔记
    Codeforces Round #683 (Div. 2, by Meet IT)(A->C)(构造,思维,贪心)
    Acwing 846. 树的重心(DFS枚举删除每一个点)
    Acwing 125. 耍杂技的牛(贪心)(从局部到全局)
    Acwing 802. 区间和(下标离散化+vector+二分)
    Acwing 799. 最长连续不重复子序列(双指针)
    Acwing 139. 回文子串的最大长度(前缀+后缀处理+哈希+二分)
    Linux shell 变量$#,$@,$0....的含义
    一双不锈钢筷子 的测试用例?
    OSI模型 TCP/IP模型 再整理
  • 原文地址:https://www.cnblogs.com/xcool/p/9814921.html
Copyright © 2011-2022 走看看