01.课程回顾

链接

ln 1.txt aaa.txt  硬链接

(两个相互独立 删除一个另外一个还在)

ln -s 1.txt aaa.txt软连接 (后面的是快捷方式)

硬链接只能是文件,软连接可以是文件夹

grep aaa 1.txt

tar -cvzf xxx.tar.gz *

tar -xvzf xxx.tar.gz

tar -cvjf xxx.tar.bz2 *

tar -xvjf xxx.tar.bz2 -C ./

为了兼容windows的zip:

zip -r aaa *

unzip -d ./ aaa.zip

*硬链接与软链接的区别

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode 。软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)

硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。

硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接

02常用命令 whoami、exit、su

查看当前谁在用:whoami

查看登陆记录:who

查看登陆记录:w: w显示的信息更详细一点

退出登录:exit

sudo命令的作用:

切换用户 sudo su root

sudo su

sudo su -

加 – 就会去到你用户所在目录

03 groupadd、groupdel、usermod(了解)

创建一个用户(系统默认创建一个用户组,这个用户组的名字和用户的名字是一样的)

查看用户组信息: cat /etc/group,看用户组名,用户组id  就好比QQ群

groupadd abc

sudo groupadd abc

sudo groupdel abc

修改用户所在组:usermod

查看用户信息: cat /etc/passwd  (←这个不是查看密码 是查看用户信息)

问题来了…1000这个号是哪个组呢?

04 删除用户组补充

组里没有人才能删,所以如果想删除应该先把用户换个组

05 useradd、passwd、userdel_rec

添加用户:

useradd -d(指定主目录) /home/abc  abc -m(如果abc不存在自动创建)

useradd -d(指定主目录) /home/abc  abc -m -g mike

sudo userdel hello (目录没有删除掉)

sudo userdel abc -r (连同目录一起删除)

sudo password abc

06 chmod(非常重要)

sudo last

有两种方式:一种是好理解,但是麻烦

一种是不好理解,但是简单

一、字母法:

ll 先查看一下:

chmod g+x 1.c

chmod g-x 1.c (在group组里面减去x(可执行))

第二种方式:

chmod o=rwx 1.c

二、数字法:

rwx

---

000 0代表没有任何权限

r—

100 4 代表有读权限

-w-

010 2 代表有写权限

--w

001 1 代表有执行权限

rw-

110 6 代表有读写权限

这种方法…

600 分别代表 用户 用户组 和 其他

6代表4+2

chmod 600 1.c

chmod 124 1.c第一个只有可执行 第二只有写 第三个只有读

******

chmod 777 1.c

******

文件夹权限说明:

chmod u-x ./abc

x:没有此权限,不允许用户进入

r:没有这个权限,无法查看文件夹的内容

w:没有这个权限,无法新建(就算 vi 1.c了也没法往里写东西)或删除文件

07_常用命令:chown、chgrp

sudo chown aaa 1.c (change own 改变文件所有者)

sudo chgrp root 1.c

08_常用命令:ps、top、kill_rec

查看日期

cal      (calender)

cal -y

date

ps

ps -aux

显示其他用户启动的进程(a)

查看系统中属于自己的进程(x)

启动这个进程的用户和它启动的时间(u)

-9 强力杀进程

top命令

区别于 ps -aux动态的显示

9.复习上面的内容..

10_常用命令:&、jobs、fg

举例:

直接运行hello是在前台运行

./hello & 加上这个取地址号以后就在后台运行着了

PID:4318在后台运行着

怎么让一个在运行着的程序切换到后台?

Ctrl + Z

jobs查看后台运行的进程

fg 3 把第三个调用到前台

fg 2

11_常用命令:字符图形切换、df、du

reboot   立即重启

shutdown -r now  给用户提示,重启

检测目录所占磁盘空间:du

du是查看某个目录的大小

df是检测磁盘的空间

如果是在ubuntu平台,软件的安装而可以通过互联网在线安装,更加方便快捷:

sudo apt-get update

sudo apt-get install xxx

sudo apt-get remove xxx

12_常用命令:ifconfig、ping

ifconfig 相当于Windows下的ipconfig

ping

13_课堂答疑:ping作用

ping代表我去你的路上是通的 但是你去我的路上不一定是通的

14_vi最基本的操作

  1. gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序。
  2. vim 是 vi的升级版本 敲vi和vim都一样的 都是调用的vim

退出保存的方式, 按一下ESC 然后两个大写的Z (可以按两次shift+z)

15_vi的插入模式和退出

:q! 代表退出不保存

:wq 保存退出

vi hello.c +5 打开并且在第五行

几个命令:

a  光标插入

I  在当前位置插入

o  光标位置下方开启新行

O 光标位置上方开启新行

I 光标所在行首插入文字

A 光标所在行尾插入文字

:wq 保存退出

:w 保存退出

:w 另存为

16_vi的配置 (这个可能需要重新看一下)

F9: 侧栏

\p< 头文件

\im 生成一个main函数

\ip 生成一个printf

ctrl+n 显示历史写的代码

1、 安装vim

sudo apt-get install vim

2、 安装ctags

sudo apt-get install ctags

3、 配置vim

1)     把文件夹<vim_configure>拷贝到虚拟机任意目录

2)     进入此文件夹,sudo运行copu_con.sh脚本

cd vim_configure

./copy_con.sh

拷贝成功后,出现copy successful

(如提示没有权限:请使用:chmod u+x copu+con.sh增加执行权限

17_vi其它常用命令

set指令 设置行号:

18_windows和linux相互远程操作

19_linux相互远程操作

windows远程登陆linux需要借助软件 xshell

1)     远程登录前 需要测试一下网络是否ping通

2)     使用软件连接

linux互相连

ssh -l username hostip

20_web服务器的搭建

20_web服务器的搭建

21_网页版helloworld 

后缀名一定是.cgi

C语言基础 (2) linux命令的更多相关文章

  1. C语言编程实现Linux命令——who

    C语言编程实现Linux命令--who 实践分析过程 who命令是查询当前登录的每个用户,它的输出包括用户名.终端类型.登录日期及远程主机,在Linux系统中输入who命令输出如下: 我们先man一下 ...

  2. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  3. Linux基础-1.Linux命令及获取帮助

    1.Linux命令的格式 1)了解Linux命令的语法格式: 命令 [选项] [参数] 2)掌握命令格式中命令.选项.参数的具体的含义 a)命令:告诉Linux(UNIX)操作系统做(执行)什么 b) ...

  4. 基础的linux命令(一)

    我练习使用的 Linux 系统是 CentOS 7 它是通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统. 首先你需要一台Linux虚拟机,如果没有,也没关系,点这里 一.命令格 ...

  5. 【Linux基础】Linux命令date 日期时间

    1.显示到纳秒 date +%F.%H:%M:%S.%N --:38.740127086 date +%Y-%m-%d.%H:%M:%S.%N2019-04-25.00:28:24.060756673 ...

  6. 林克的小本本之——记一些基础的linux命令

    查看shell cat /etc/shells 查看系统支持的shell echo $SHELL 查看目前正在使用的shell 快捷键 Ctrl+a 跳到行首 Ctrl+e 跳到行尾 Ctrl+u 删 ...

  7. 基础的Linux命令(二)

    本文介绍两大类命令,都是最基础的部分 系统状态监测命令 工作目录切换命令 一.系统状态监测命令 1. ifconfig 命令 用于获取网卡配置与网络状态等信息 如下图:inet后面是 IP 地址,et ...

  8. oracle-SQL语言基础-事务控制命令命令

    事务控制命令命令 COMMITROLLBACKSAVEPOINTSET TRANSACTION 当第一条可执行的SQL语句开始执行,数据库事务就开始.随着下面任一事件发生,数据库事务结束:执行COMM ...

  9. Linux基础与Linux下C语言编程基础

    Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...

随机推荐

  1. 路飞学城Python-Day30

    11-僵尸进程与孤儿进程 现象:运行程序会产生父进程,在父进程中开子进程,这两个进程公用一个打印终端,运行的时候就只运行父进程,父进程虽然自己结束了,但是要等子进程结束完才会结束. 父进程可以开多个子 ...

  2. node——由新闻列表跳转到新闻详情页

    当我们在浏览新闻列表页面的时候,想要看感兴趣的新闻内容,需要到详情页面去查看内容. 在之前写好了新闻列表页面,现在需要做列表页面到详情页面的跳转,需要考虑一下问题 1.点击新闻列表某一项跳转到详情页面 ...

  3. Day 02 - 01 计算机的操作系统

    操作系统 场景:有以下三个人 1.庄园主 -->相当于人类 2.管家 --> 把人类要传达的信息分配给奴隶,相当于操作系统 3.奴隶 -->为人类干活的机器 1.操作系统做了什么? ...

  4. 8、Collaborative Metric Learning

    一.摘要: 文章的核心思想:是如何把Metric learning 和 CF结合起来从而达到更好的推荐效果. 提出了CML(Collaborative Metric Learning),其学习一个联合 ...

  5. Xcode10适配——Error:Multiple commands produce

    今天苹果正式推送了iOS12,今天上午就更新了最新的iOS,及Xcode10.这次更新还行,不需要我们对以前的项目紧急修复,大动手术. 用Xcode10跑之前的项目,也就报了一种类型的错误:Multi ...

  6. Linux进程僵死原因排查思路

    常情况下脚本执行时间几秒完成,如果超过很长时间执行完成,可能是进程等待某些资源引起阻塞(假死状态). 场景:xx.perl读取文件并发送邮件 现象:执行脚本的进程僵死(卡住) 排查:ps -ef |g ...

  7. Qt编程—去掉标题栏和设置窗口透明用法

    学习Qt编程,有时候我们很想做出好看又比较炫的画面,这时就常用到qt上的一些技巧. 这里我以一个小例子来展示qt的这些技巧,此qt编程写的,如图:(去掉标题栏和设置窗口透明后) 代码实现部分: .h文 ...

  8. ubuntu 14.04服务器上使用nginx搭建wordpress博客详解

    过程详解 1.更新apt-get sudo apt-get update 2.安装nginx sudo apt-get install nginx 3.启动nginx sudo service ngi ...

  9. POJ 1721

    好像不需要用到开方什么的... 可以知道,一副牌即是一个循环,那么,由于GCD(L,K)=1,所以一次洗牌后,亦是一个循环.其实,K次洗牌等于是T^(2^K)了.既然是循环,必定有周期.那么,周期是多 ...

  10. 怎样利用JDBC连接并操作Oracle数据库

    之前学习.NET的时候.以前利用ODBC进行连接数据库,而在Java中通常採用JDBC连接数据库,这里以oracle数据库为例简单的总结一下利用JDBC怎样连接并操作数据库. 1.连接 public ...